[LLVMdev] COFF.h and windows.h conflict

Virgile Bello virgile.bello at gmail.com
Tue Aug 27 17:41:07 PDT 2013


Hello,

I noticed that if include\llvm\Support is included alongside Windows.h,
there will be many define conflict leading to compilation errors, such as:

COFF.h (enum): enum MachineTypes { IMAGE_FILE_MACHINE_UNKNOWN   = 0x0, ...
};

and

winnt.h (same but define): #define IMAGE_FILE_MACHINE_UNKNOWN 0

Of course I could try to avoid to include both (but it's rather difficult
and would require lot of refactoring -- we have this clash currently in
LLDB MinGW32 port).
I was wondering if instead it was possible to simply rename those enum
little bit differently in COFF.h so that it doesn't clash?
I know windows.h is quite invasive, so maybe it's better not try to collide
with any of its weird define.

If that makes sense I'm fine with doing the patch.
If yes, feel free to propose an alternative naming prefix or scheme.

Note that if tools depend on COFFDumper::printFileHeaders output, it might
still need to print as it was before -- so the easiest choice might be to
maybe just drop the IMAGE_ (anyway it's in llvm::COFF so it shouldn't
matter). Is it important?

Thanks,
Virgile
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130828/7ac44c8f/attachment.html>


More information about the llvm-dev mailing list