[LLVMdev] The first two lines of llvm tutorial don't compile.

Mike Stump mrs at apple.com
Mon Jun 2 10:04:12 PDT 2008


On Jun 2, 2008, at 9:43 AM, Hendrik Boom wrote:
> I took the first two lines of the sample program in the tutorial:

> /usr/include/llvm/Support/DataTypes.h:38:3: error: #error "Must  
> #define __STDC_LIMIT_MACROS before #including Support/DataTypes.h"

The #error is unfortunate.  It all comes about because the C standards  
committee tried to define C++ and they got it wrong.  Then this wrong  
concept was burned into stdint.h, for poor project folks to deal with.

 From the header itself:

// Note that this header's correct operation depends on  
__STDC_LIMIT_MACROS
// being defined.  We would define it here, but in order to prevent  
Bad Things
// happening when system headers or C++ STL headers include stdint.h  
before
// we define it here, we define it on the g++ command line (in  
Makefile.rules).
#if !defined(__STDC_LIMIT_MACROS)
# error "Must #define __STDC_LIMIT_MACROS before #including Support/ 
DataTypes.h"
#endif

So, for now, it looks like you have to define the on the command  
line.  :-(


This code is bogus however, working stdint.h files don't need this  
defined and checking it like this is wrong.



More information about the llvm-dev mailing list