summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-03-12 02:00:37 +0000
committerTed Kremenek <kremenek@apple.com>2008-03-12 02:00:37 +0000
commit48a3410e25beb5277bfaad914f40aa9b22dc89d8 (patch)
tree6c4b9e5f39ed11279186dd27a7ae2b61887cd799
parent68d73d19f1be5c3810ce5778f23abcdb6188bc79 (diff)
downloadbcm5719-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.h23
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);
OpenPOWER on IntegriCloud