forked from OSchip/llvm-project
				
			Make it possible to include llvm-c without including C++ headers. Patch by Filip Pizlo.
llvm-svn: 178713
This commit is contained in:
		
							parent
							
								
									c2d5bf5c53
								
							
						
					
					
						commit
						51a7a9d712
					
				| 
						 | 
				
			
			@ -17,14 +17,15 @@
 | 
			
		|||
 | 
			
		||||
#include "llvm/Support/DataTypes.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
 | 
			
		||||
#if defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS)
 | 
			
		||||
/* Need these includes to support the LLVM 'cast' template for the C++ 'wrap' 
 | 
			
		||||
   and 'unwrap' conversion functions. */
 | 
			
		||||
#include "llvm/IR/IRBuilder.h"
 | 
			
		||||
#include "llvm/IR/Module.h"
 | 
			
		||||
#include "llvm/PassRegistry.h"
 | 
			
		||||
#endif /* defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS) */
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2669,7 +2670,9 @@ LLVMBool LLVMIsMultithreaded();
 | 
			
		|||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS)
 | 
			
		||||
namespace llvm {
 | 
			
		||||
  class MemoryBuffer;
 | 
			
		||||
  class PassManagerBase;
 | 
			
		||||
| 
						 | 
				
			
			@ -2763,6 +2766,6 @@ namespace llvm {
 | 
			
		|||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* !defined(__cplusplus) */
 | 
			
		||||
#endif /* defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS) */
 | 
			
		||||
 | 
			
		||||
#endif /* !defined(LLVM_C_CORE_H) */
 | 
			
		||||
#endif /* defined(LLVM_C_CORE_H) */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -138,7 +138,9 @@ void *LLVMGetPointerToGlobal(LLVMExecutionEngineRef EE, LLVMValueRef Global);
 | 
			
		|||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS)
 | 
			
		||||
namespace llvm {
 | 
			
		||||
  struct GenericValue;
 | 
			
		||||
  class ExecutionEngine;
 | 
			
		||||
| 
						 | 
				
			
			@ -157,7 +159,6 @@ namespace llvm {
 | 
			
		|||
  
 | 
			
		||||
  #undef DEFINE_SIMPLE_CONVERSION_FUNCTIONS
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
#endif /* defined(__cplusplus) */
 | 
			
		||||
#endif /* defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS) */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,9 +22,11 @@
 | 
			
		|||
#include "llvm-c/Core.h"
 | 
			
		||||
#include "llvm/Config/llvm-config.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
#if defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS)
 | 
			
		||||
#include "llvm/Object/ObjectFile.h"
 | 
			
		||||
#endif /* defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS) */
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -99,7 +101,9 @@ const char *LLVMGetRelocationValueString(LLVMRelocationIteratorRef RI);
 | 
			
		|||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS)
 | 
			
		||||
namespace llvm {
 | 
			
		||||
  namespace object {
 | 
			
		||||
    inline ObjectFile *unwrap(LLVMObjectFileRef OF) {
 | 
			
		||||
| 
						 | 
				
			
			@ -142,8 +146,8 @@ namespace llvm {
 | 
			
		|||
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
#endif /* defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS) */
 | 
			
		||||
 | 
			
		||||
#endif /* defined(__cplusplus) */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -235,7 +235,9 @@ void LLVMDisposeTargetData(LLVMTargetDataRef);
 | 
			
		|||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS)
 | 
			
		||||
namespace llvm {
 | 
			
		||||
  class DataLayout;
 | 
			
		||||
  class TargetLibraryInfo;
 | 
			
		||||
| 
						 | 
				
			
			@ -257,7 +259,6 @@ namespace llvm {
 | 
			
		|||
    return reinterpret_cast<LLVMTargetLibraryInfoRef>(X);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* defined(__cplusplus) */
 | 
			
		||||
#endif /* defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS) */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -119,7 +119,9 @@ LLVMBool LLVMTargetMachineEmitToFile(LLVMTargetMachineRef T, LLVMModuleRef M,
 | 
			
		|||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS)
 | 
			
		||||
namespace llvm {
 | 
			
		||||
  class TargetMachine;
 | 
			
		||||
  class Target;
 | 
			
		||||
| 
						 | 
				
			
			@ -138,6 +140,6 @@ namespace llvm {
 | 
			
		|||
    return reinterpret_cast<LLVMTargetRef>(const_cast<Target*>(P));
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
#endif /* defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS) */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,8 +18,11 @@
 | 
			
		|||
 | 
			
		||||
typedef struct LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef;
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
#if defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS)
 | 
			
		||||
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -86,7 +89,9 @@ void LLVMPassManagerBuilderPopulateLTOPassManager(LLVMPassManagerBuilderRef PMB,
 | 
			
		|||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS)
 | 
			
		||||
namespace llvm {
 | 
			
		||||
  inline PassManagerBuilder *unwrap(LLVMPassManagerBuilderRef P) {
 | 
			
		||||
    return reinterpret_cast<PassManagerBuilder*>(P);
 | 
			
		||||
| 
						 | 
				
			
			@ -96,6 +101,6 @@ namespace llvm {
 | 
			
		|||
    return reinterpret_cast<LLVMPassManagerBuilderRef>(P);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
#endif /* defined(__cplusplus) && !defined(LLVM_DO_NOT_INCLUDE_CPP_HEADERS) */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue