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 | 48a3410e25beb5277bfaad914f40aa9b22dc89d8 (patch) | |
tree | 6c4b9e5f39ed11279186dd27a7ae2b61887cd799 | |
parent | 68d73d19f1be5c3810ce5778f23abcdb6188bc79 (diff) | |
download | bcm5719-llvm-48a3410e25beb5277bfaad914f40aa9b22dc89d8.tar.gz bcm5719-llvm-48a3410e25beb5277bfaad914f40aa9b22dc89d8.zip |
Fixed regression in SymbolManager introduced in r48272.
llvm-svn: 48273
-rw-r--r-- | clang/include/clang/Analysis/PathSensitive/SymbolManager.h | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/clang/include/clang/Analysis/PathSensitive/SymbolManager.h b/clang/include/clang/Analysis/PathSensitive/SymbolManager.h index e3eedd736b4..a740302c8dd 100644 --- a/clang/include/clang/Analysis/PathSensitive/SymbolManager.h +++ b/clang/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); |