From: Daniel Dunbar Date: Wed, 19 Nov 2008 10:32:38 +0000 (+0000) Subject: Fix silly code, use IdentifierInfo* instead of std::string in X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=06550395dd70d0c65a1d8dbb8a9639262f158414;p=clang 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 --- 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 > stack_ty; + typedef std::vector< std::pair > 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());