Date: prev next · Thread: first prev next last
2014 Archives by date, by thread · List index


On 09/20/2014 04:39 AM, Jan Hubicka wrote:
/usr/include/X11/Xlib.h:948:3: warning: type ‘struct XAnyEvent’ violates one definition rule 
[-Wodr]
 } XAnyEvent;
   ^
/usr/include/X11/Xlib.h:948:3: note: a different type is defined in another translation unit
 } XAnyEvent;
   ^
/usr/include/X11/Xlib.h:947:9: note: the first difference of corresponding definitions is field 
‘window’
  Window window; /* window on which event was requested in event mask */
         ^
/usr/include/X11/Xlib.h:947:9: note: a field of same name but different type is defined in 
another translation unit
  Window window; /* window on which event was requested in event mask */
         ^
/usr/include/X11/X.h:96:13: note: type ‘XLIB_Window’ should match type ‘Window’
 typedef XID Window;
             ^
/usr/include/X11/X.h:96:13: note: the incompatible type is defined here
 typedef XID Window;
             ^

...so unwinding of typedefs (a la, "note: type 'XID' is defined
here") could be helpful in tracking this down.

Typedefs are transparent for type mangling, so I do not thing you get warnings
on those at all.  Here I think the problem is that someone gets idea to #define
Window ZLIB_Window perhaps here
http://dev-builds.libreoffice.org/lcov_reports/master~2014-04-11_00.55.10/extensions/source/plugin/inc/plugin/unx/plugcon.hxx.gcov.html

I am not sure if that can be warned about better. One problem is that I
probably should name the incompatible type that I don't because the unified way
I output warnings.

Concerning include stack, I am honestly not sure why it is not output - will
try to track it down.  Also do not know why the ^ markers tends to be output on
beggining of the line in some cases.  I also plan to store actual compilation
unit name in case single source is used to be built with multiple #defines, so
that would give at least the top of inline stack.

Honza

Stephan

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.