diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-01-16 23:33:44 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-01-16 23:33:44 +0000 |
commit | 692b01b0bea4540f389f776c2ea3c53b5e5bc01b (patch) | |
tree | 7787d4c839a5a58a099780e74d372cb076ed24b7 | |
parent | 7be1528004e6a8d6d8dc1b1373159c7d8fcc2120 (diff) | |
download | llvm-692b01b0bea4540f389f776c2ea3c53b5e5bc01b.zip llvm-692b01b0bea4540f389f776c2ea3c53b5e5bc01b.tar.gz llvm-692b01b0bea4540f389f776c2ea3c53b5e5bc01b.tar.bz2 |
Changed sorting criteria for DSPtr to sort Decl* before Expr*, and
to sort sub-expressions before Block-level expressions.
llvm-svn: 46100
-rw-r--r-- | clang/Analysis/GRConstants.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/Analysis/GRConstants.cpp b/clang/Analysis/GRConstants.cpp index 5acaf79..6c0958e 100644 --- a/clang/Analysis/GRConstants.cpp +++ b/clang/Analysis/GRConstants.cpp @@ -47,7 +47,7 @@ namespace { class VISIBILITY_HIDDEN DSPtr { uintptr_t Raw; public: - enum VariantKind { IsValueDecl=0x1, IsBlkLvl=0x2, IsSubExp=0x3, Flags=0x3 }; + enum VariantKind { IsValueDecl=0x0, IsSubExp=0x1, IsBlkLvl=0x2, Flags=0x3 }; inline void* getPtr() const { return reinterpret_cast<void*>(Raw & ~Flags); } inline VariantKind getKind() const { return (VariantKind) (Raw & Flags); } @@ -63,7 +63,10 @@ public: } inline bool operator==(const DSPtr& X) const { return Raw == X.Raw; } inline bool operator!=(const DSPtr& X) const { return Raw != X.Raw; } - inline bool operator<(const DSPtr& X) const { return Raw < X.Raw; } + inline bool operator<(const DSPtr& X) const { + VariantKind k = getKind(), Xk = X.getKind(); + return k == Xk ? getPtr() < X.getPtr() : k < Xk; + } }; } // end anonymous namespace |