summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaAttr.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-05-27 02:25:27 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-05-27 02:25:27 +0000
commit4dbe15d437808d48ec1b5147e9d332f82b800460 (patch)
treebfb78e167f688fb156158eb245b9aca22f747a78 /clang/lib/Sema/SemaAttr.cpp
parent1cfca7292a0b730e7aa39da24992ec0311b90490 (diff)
downloadbcm5719-llvm-4dbe15d437808d48ec1b5147e9d332f82b800460.tar.gz
bcm5719-llvm-4dbe15d437808d48ec1b5147e9d332f82b800460.zip
Sema: Factor out struct for alignment stack entries.
llvm-svn: 104799
Diffstat (limited to 'clang/lib/Sema/SemaAttr.cpp')
-rw-r--r--clang/lib/Sema/SemaAttr.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/clang/lib/Sema/SemaAttr.cpp b/clang/lib/Sema/SemaAttr.cpp
index ee6aef06299..2075f9aa935 100644
--- a/clang/lib/Sema/SemaAttr.cpp
+++ b/clang/lib/Sema/SemaAttr.cpp
@@ -24,10 +24,15 @@ using namespace clang;
//===----------------------------------------------------------------------===//
namespace {
+ struct PackStackEntry {
+ unsigned Alignment;
+ IdentifierInfo *Name;
+ };
+
/// PragmaPackStack - Simple class to wrap the stack used by #pragma
/// pack.
class PragmaPackStack {
- typedef std::vector< std::pair<unsigned, IdentifierInfo*> > stack_ty;
+ typedef std::vector<PackStackEntry> stack_ty;
/// Alignment - The current user specified alignment.
unsigned Alignment;
@@ -45,7 +50,8 @@ namespace {
/// push - Push the current alignment onto the stack, optionally
/// using the given \arg Name for the record, if non-zero.
void push(IdentifierInfo *Name) {
- Stack.push_back(std::make_pair(Alignment, Name));
+ PackStackEntry PSE = { Alignment, Name };
+ Stack.push_back(PSE);
}
/// pop - Pop a record from the stack and restore the current
@@ -62,7 +68,7 @@ bool PragmaPackStack::pop(IdentifierInfo *Name) {
// If name is empty just pop top.
if (!Name) {
- Alignment = Stack.back().first;
+ Alignment = Stack.back().Alignment;
Stack.pop_back();
return true;
}
@@ -70,9 +76,9 @@ bool PragmaPackStack::pop(IdentifierInfo *Name) {
// Otherwise, find the named record.
for (unsigned i = Stack.size(); i != 0; ) {
--i;
- if (Stack[i].second == Name) {
+ if (Stack[i].Name == Name) {
// Found it, pop up to and including this record.
- Alignment = Stack[i].first;
+ Alignment = Stack[i].Alignment;
Stack.erase(Stack.begin() + i, Stack.end());
return true;
}
OpenPOWER on IntegriCloud