diff options
Diffstat (limited to 'include/llvm/IR/GlobalObject.h')
-rw-r--r-- | include/llvm/IR/GlobalObject.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/include/llvm/IR/GlobalObject.h b/include/llvm/IR/GlobalObject.h index 1057f564aab3..f3789bafefe3 100644 --- a/include/llvm/IR/GlobalObject.h +++ b/include/llvm/IR/GlobalObject.h @@ -63,8 +63,17 @@ public: } void setAlignment(unsigned Align); - unsigned getGlobalObjectSubClassData() const; - void setGlobalObjectSubClassData(unsigned Val); + unsigned getGlobalObjectSubClassData() const { + unsigned ValueData = getGlobalValueSubClassData(); + return ValueData >> GlobalObjectBits; + } + + void setGlobalObjectSubClassData(unsigned Val) { + unsigned OldData = getGlobalValueSubClassData(); + setGlobalValueSubClassData((OldData & GlobalObjectMask) | + (Val << GlobalObjectBits)); + assert(getGlobalObjectSubClassData() == Val && "representation error"); + } /// Check if this global has a custom object file section. /// |