diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-03-12 02:00:37 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-03-12 02:00:37 +0000 |
commit | a8b53643b618e2f0b094b8c86ec9650e0625a486 (patch) | |
tree | f69717091cb5a367cbcb7c81938f4c4f1395864e | |
parent | 00a3a5f024ac54088ab887712b292171188064f0 (diff) |
Fixed regression in SymbolManager introduced in r48272.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48273 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/Analysis/PathSensitive/SymbolManager.h | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/include/clang/Analysis/PathSensitive/SymbolManager.h b/include/clang/Analysis/PathSensitive/SymbolManager.h index e3eedd736b..a740302c8d 100644 --- a/include/clang/Analysis/PathSensitive/SymbolManager.h +++ b/include/clang/Analysis/PathSensitive/SymbolManager.h @@ -24,24 +24,23 @@ namespace clang { + class SymbolManager; - + class SymbolID { unsigned Data; - public: + SymbolID() : Data(~0U - 2) {} SymbolID(unsigned x) : Data(x) {} - - operator unsigned() const { return Data; } - unsigned getNumber() const { return Data; } - + + bool isInitialized() const { return Data != (unsigned) (~0U - 2); } + operator unsigned() const { return getNumber(); } + unsigned getNumber() const { assert (isInitialized()); return Data; } + void Profile(llvm::FoldingSetNodeID& ID) const { + assert (isInitialized()); ID.AddInteger(Data); } - - static inline void Profile(llvm::FoldingSetNodeID& ID, SymbolID X) { - X.Profile(ID); - } }; } // end clang namespace @@ -208,11 +207,11 @@ public: Op(op), Val(V) {} BinaryOperator::Opcode getOpcode() const { return Op; } - SymbolID getSymbol() const { return Symbol; } + const SymbolID& getSymbol() const { return Symbol; } const llvm::APSInt& getInt() const { return Val; } static inline void Profile(llvm::FoldingSetNodeID& ID, - const SymbolID& Symbol, + SymbolID Symbol, BinaryOperator::Opcode Op, const llvm::APSInt& Val) { Symbol.Profile(ID); |