Stream ODR types

Jason Merrill jason@redhat.com
Thu Sep 11 16:53:00 GMT 2014


On 09/11/2014 03:06 AM, Jan Hubicka wrote:
> http://kam.mff.cuni.cz/~hubicka/odr-warnings-firefox.txt

> /aux/hubicka/firefox4/content/media/fmp4/ffmpeg/libav53/include/libavcodec/avcodec.h:997:0: note: the first difference of corresponding definitions is field ‘data’
>      uint8_t *data[AV_NUM_DATA_POINTERS];
>  ^
> /aux/hubicka/firefox4/content/media/fmp4/ffmpeg/libav54/include/libavcodec/avcodec.h:997:0: note: a field of same name but different type is defined in another translation unit
>      uint8_t *data[AV_NUM_DATA_POINTERS];
>  ^
> /usr/include/stdint.h:49:24: note: type ‘uint8_t’ should match type ‘uint8_t’
>  typedef unsigned char  uint8_t;
>                         ^
> /usr/include/stdint.h:49:24: note: the incompatible type is defined here

Hmm, how can uint8_t be incompatible with itself?

> /aux/hubicka/firefox4/dom/base/nsJSEnvironment.cpp:311:0: note: a field with different name is defined in another translation unit

This should print the different name in case the difference is due to a 
macro (as it is here).

> +	 Eventually we should start saving mangled names in TYPE_NAME.
> +	 Then this condition will become non-trivial.  */

I think this sentence is out of date now.  :)

Looks good otherwise.

Jason



More information about the Gcc-patches mailing list