[LLVMdev] Macro redefinitions
    OvermindDL1 
    overminddl1 at gmail.com
       
    Sun Dec  6 21:55:35 PST 2009
    
    
  
In DataTypes.h starting on line 121 are these lines:
#define INT8_C(C)   C
#define UINT8_C(C)  C
#define INT16_C(C)  C
#define UINT16_C(C) C
#define INT32_C(C)  C
#define UINT32_C(C) C ## U
#define INT64_C(C)  ((int64_t) C ## LL)
#define UINT64_C(C) ((uint64_t) C ## ULL)
They are conflicting with the cstdint when we have updated headers in
our MSVC build.  I could have sworn I talked about this before along
with a patch, guess no one ever fixed it, hence consider this a poke.
The above lines should be changed into:
#ifndef INT8_C
# define INT8_C(C)   C
#endif
#ifndef UINT8_C
# define UINT8_C(C)  C
#endif
#ifndef INT16_C
# define INT16_C(C)  C
#endif
#ifndef UINT16_C
# define UINT16_C(C) C
#endif
#ifndef INT32_C
# define INT32_C(C)  C
#endif
#ifndef UINT32_C
# define UINT32_C(C) C ## U
#endif
#ifndef INT64_C
# define INT64_C(C)  ((int64_t) C ## LL)
#endif
#ifndef UINT64_C
# define UINT64_C(C) ((uint64_t) C ## ULL)
#endif
Do note, the above is not correct anyway since it does not cast the
value, but meh, it still works.
I am not sure about the size macro's or the typedefs, but I am not
getting any issues on those...
    
    
More information about the llvm-dev
mailing list