/// is an error for two (or more) llvm.module.flags with the
/// same ID to have the Override behavior but different
/// values.
- enum ModAttrBehavior { Error = 1, Warning = 2, Require = 3, Override = 4 };
+ enum ModFlagBehavior { Error = 1, Warning = 2, Require = 3, Override = 4 };
struct ModuleFlagEntry {
- unsigned Behavior;
+ ModFlagBehavior Behavior;
MDString *Key;
Value *Val;
- ModuleFlagEntry(unsigned B, MDString *K, Value *V)
+ ModuleFlagEntry(ModFlagBehavior B, MDString *K, Value *V)
: Behavior(B), Key(K), Val(V) {}
};
/// addModuleFlag - Add a module-level flag to the module-level flags
/// metadata. It will create the module-level flags named metadata if it
/// doesn't already exist.
- void addModuleFlag(ModAttrBehavior Behavior, StringRef Key, Value *Val);
- void addModuleFlag(ModAttrBehavior Behavior, StringRef Key, uint32_t Val);
+ void addModuleFlag(ModFlagBehavior Behavior, StringRef Key, Value *Val);
+ void addModuleFlag(ModFlagBehavior Behavior, StringRef Key, uint32_t Val);
void addModuleFlag(MDNode *Node);
/// @}