[FFmpeg-devel] Clang run from 20100402

matthieu castet castet.matthieu
Sat Apr 3 21:14:57 CEST 2010


Hi,


Justin Ruggles <justin.ruggles <at> gmail.com> writes:

> 
> Michael Niedermayer wrote:
> 
> 
> All of the FLAC and AC-3 reports are false warnings.
> 
> At least the clang mistakes seem to be similar in nature.  I'm finding
> mostly that they have to do with value bounds.  Where we correctly
> assume certain bounds for a variety of reasons, but clang does not
> recognize those bounds and takes branch combinations that cannot exist.
> 
May be building without assembler optimisation could help clang to analyse 
bound checking.

For flac [1] in decode_subframe, clang have no way to know that 
"type = get_bits(&s->gb, 6);" will return something between 0 and 1<<6 - 1.
get_bits use SHOW_UBITS that use NEG_USR32 that is an asm inline for x86.
With the C version (a shift on a unsigned), clang will know the bound of 
get_bits.


Matthieu

[1] http://tranquillity.ath.cx/clang/2010-04-02-1/report-Y0SzSn.html#EndPath




More information about the ffmpeg-devel mailing list