[cfe-commits] PATCH : change clang Attrs.td to avoid conflict w/MinGW basetyps.h
dgregor at apple.com
Sun Mar 6 11:00:36 PST 2011
On Feb 14, 2011, at 10:56 AM, kirk.beitz at nokia.com wrote:
> Incorrectly originally posted to llvm-commits . Hopefully someone can take a look at this and see that it is a very small, simple patch that will allow easier porting to Win32 under MinGW .
> LLDB is attempting to use clang, and ran into a conflict attempting to port to MinGW .
> Attached, please find a 1-line patch to tools/clang/include/clang/Basic/Attrs.td
> It is used to generate tools/clang/includes/clang/AST/Attrs.inc, which gets #included by Attr.h (which in turn is getting #included several nested levels deep in our effort to build lldb under MinGW ).
> Without this change, one of the classes to be generated defined "Args=Interface".
> This causes the generated class to contain a private member named "interface".
> Under MinGW, when code #includes Attr.h and "basetyps.h" from MinGW before it, a conflict results, because MinGW's basetyps.h will (under certain circumstances) pull in windows headers which have the following macro definition:
> #define interface struct
> This is a fairly common win32 occurrence.
> The patch shows that 'Interface' is simply changed to 'InterFace' (with the F capitalized) so that the private member variable that gets generated becomes "interFace".
> This mimics style elsewhere in Attrs.td (e.g. "Args=>FormatIdx" causes a private member formatIdx to be generated).
> The capitalization difference leads to the resolution of the conflict with MinGW's basetyps.h .
> Thanks in advance for any review/comments/feedback.
Thanks, I've committed this as r127127 with one fix in CIndex.cpp.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-commits