Rename END_WITH_NULL to LLVM_END_WITH_NULL and move to Compiler.h

We shouldn't put this kind of attribute stuff in DataTypes.h.

Leave the END_WITH_NULL name for now so I can update clang without
making build spam.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221215 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Kleckner 2014-11-04 01:12:21 +00:00
parent 67bcf74b14
commit d282ca71b0
7 changed files with 17 additions and 21 deletions

View File

@ -386,7 +386,7 @@ protected:
public: public:
// ConstantStruct accessors // ConstantStruct accessors
static Constant *get(StructType *T, ArrayRef<Constant*> V); static Constant *get(StructType *T, ArrayRef<Constant*> V);
static Constant *get(StructType *T, ...) END_WITH_NULL; static Constant *get(StructType *T, ...) LLVM_END_WITH_NULL;
/// getAnon - Return an anonymous struct that has the specified /// getAnon - Return an anonymous struct that has the specified
/// elements. If the struct is possibly empty, then you must specify a /// elements. If the struct is possibly empty, then you must specify a

View File

@ -218,7 +218,7 @@ public:
StringRef Name, StringRef Name,
bool isPacked = false); bool isPacked = false);
static StructType *create(LLVMContext &Context, ArrayRef<Type*> Elements); static StructType *create(LLVMContext &Context, ArrayRef<Type*> Elements);
static StructType *create(StringRef Name, Type *elt1, ...) END_WITH_NULL; static StructType *create(StringRef Name, Type *elt1, ...) LLVM_END_WITH_NULL;
/// StructType::get - This static method is the primary way to create a /// StructType::get - This static method is the primary way to create a
/// literal StructType. /// literal StructType.
@ -233,7 +233,7 @@ public:
/// structure types by specifying the elements as arguments. Note that this /// structure types by specifying the elements as arguments. Note that this
/// method always returns a non-packed struct, and requires at least one /// method always returns a non-packed struct, and requires at least one
/// element type. /// element type.
static StructType *get(Type *elt1, ...) END_WITH_NULL; static StructType *get(Type *elt1, ...) LLVM_END_WITH_NULL;
bool isPacked() const { return (getSubclassData() & SCDB_Packed) != 0; } bool isPacked() const { return (getSubclassData() & SCDB_Packed) != 0; }
@ -263,7 +263,7 @@ public:
/// setBody - Specify a body for an opaque identified type. /// setBody - Specify a body for an opaque identified type.
void setBody(ArrayRef<Type*> Elements, bool isPacked = false); void setBody(ArrayRef<Type*> Elements, bool isPacked = false);
void setBody(Type *elt1, ...) END_WITH_NULL; void setBody(Type *elt1, ...) LLVM_END_WITH_NULL;
/// isValidElementType - Return true if the specified type is valid as a /// isValidElementType - Return true if the specified type is valid as a
/// element type. /// element type.

View File

@ -352,11 +352,11 @@ public:
/// function arguments, which makes it easier for clients to use. /// function arguments, which makes it easier for clients to use.
Constant *getOrInsertFunction(StringRef Name, Constant *getOrInsertFunction(StringRef Name,
AttributeSet AttributeList, AttributeSet AttributeList,
Type *RetTy, ...) END_WITH_NULL; Type *RetTy, ...) LLVM_END_WITH_NULL;
/// Same as above, but without the attributes. /// Same as above, but without the attributes.
Constant *getOrInsertFunction(StringRef Name, Type *RetTy, ...) Constant *getOrInsertFunction(StringRef Name, Type *RetTy, ...)
END_WITH_NULL; LLVM_END_WITH_NULL;
/// Look up the specified function in the module symbol table. If it does not /// Look up the specified function in the module symbol table. If it does not
/// exist, return null. /// exist, return null.

View File

@ -513,9 +513,9 @@ public:
} }
}; };
template<class DataType> template <class DataType>
ValuesClass<DataType> END_WITH_NULL values(const char *Arg, DataType Val, ValuesClass<DataType> LLVM_END_WITH_NULL
const char *Desc, ...) { values(const char *Arg, DataType Val, const char *Desc, ...) {
va_list ValueArgs; va_list ValueArgs;
va_start(ValueArgs, Desc); va_start(ValueArgs, Desc);
ValuesClass<DataType> Vals(Arg, Val, Desc, ValueArgs); ValuesClass<DataType> Vals(Arg, Val, Desc, ValueArgs);

View File

@ -139,6 +139,14 @@
#define LLVM_LIBRARY_VISIBILITY #define LLVM_LIBRARY_VISIBILITY
#endif #endif
#if __has_attribute(sentinel) || LLVM_GNUC_PREREQ(3, 0, 0)
#define END_WITH_NULL __attribute__((sentinel))
#define LLVM_END_WITH_NULL __attribute__((sentinel))
#else
#define END_WITH_NULL
#define LLVM_END_WITH_NULL
#endif
#if __has_attribute(used) || LLVM_GNUC_PREREQ(3, 1, 0) #if __has_attribute(used) || LLVM_GNUC_PREREQ(3, 1, 0)
#define LLVM_ATTRIBUTE_USED __attribute__((__used__)) #define LLVM_ATTRIBUTE_USED __attribute__((__used__))
#else #else

View File

@ -123,12 +123,6 @@ typedef signed int ssize_t;
# define UINT64_MAX 0xffffffffffffffffULL # define UINT64_MAX 0xffffffffffffffffULL
#endif #endif
#if __GNUC__ > 3
#define END_WITH_NULL __attribute__((sentinel))
#else
#define END_WITH_NULL
#endif
#ifndef HUGE_VALF #ifndef HUGE_VALF
#define HUGE_VALF (float)HUGE_VAL #define HUGE_VALF (float)HUGE_VAL
#endif #endif

View File

@ -116,12 +116,6 @@ typedef signed int ssize_t;
# define UINT64_MAX 0xffffffffffffffffULL # define UINT64_MAX 0xffffffffffffffffULL
#endif #endif
#if __GNUC__ > 3
#define END_WITH_NULL __attribute__((sentinel))
#else
#define END_WITH_NULL
#endif
#ifndef HUGE_VALF #ifndef HUGE_VALF
#define HUGE_VALF (float)HUGE_VAL #define HUGE_VALF (float)HUGE_VAL
#endif #endif