diff options
author | Daniel Dunbar <daniel@zuster.org> | 2008-11-19 10:32:38 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2008-11-19 10:32:38 +0000 |
commit | 06550395dd70d0c65a1d8dbb8a9639262f158414 (patch) | |
tree | 97c50c4773e6e6c3e6f3ef2dc058bb086b0c6785 | |
parent | ed3849b456d64d124bddc7ac044f3ce590bd9d69 (diff) |
Fix silly code, use IdentifierInfo* instead of std::string in
PragmaPackStack. Thanks Chris!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59616 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Sema/Sema.h | 11 | ||||
-rw-r--r-- | lib/Sema/SemaDecl.cpp | 2 |
2 files changed, 6 insertions, 7 deletions
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h index 7890070945..29994d41c3 100644 --- a/lib/Sema/Sema.h +++ b/lib/Sema/Sema.h @@ -71,12 +71,13 @@ namespace clang { /// PragmaPackStack - Simple class to wrap the stack used by #pragma /// pack. class PragmaPackStack { - typedef std::vector< std::pair<unsigned, std::string> > stack_ty; + typedef std::vector< std::pair<unsigned, IdentifierInfo*> > stack_ty; /// Alignment - The current user specified alignment. unsigned Alignment; - /// Stack - Entries in the #pragma pack stack. + /// Stack - Entries in the #pragma pack stack, consisting of saved + /// alignments and optional names. stack_ty Stack; public: @@ -86,11 +87,9 @@ public: unsigned getAlignment() { return Alignment; } /// push - Push the current alignment onto the stack, optionally - /// using the given \arg Name for the record, if non-zero, + /// using the given \arg Name for the record, if non-zero. void push(IdentifierInfo *Name) { - // FIXME: Why does this push 'Name' as an std::string?? - Stack.push_back(std::make_pair(Alignment, - std::string(Name ? Name->getName() : ""))); + Stack.push_back(std::make_pair(Alignment, Name)); } /// pop - Pop a record from the stack and restore the current diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index f9d946e546..d6d9845af7 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -3197,7 +3197,7 @@ bool PragmaPackStack::pop(IdentifierInfo *Name) { // Otherwise, find the named record. for (unsigned i = Stack.size(); i != 0; ) { --i; - if (Name->isName(Stack[i].second.c_str())) { + if (Stack[i].second == Name) { // Found it, pop up to and including this record. Alignment = Stack[i].first; Stack.erase(Stack.begin() + i, Stack.end()); |