From 60b1e3ebe4ced60f7d65027c610fb3cda0a3cf70 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 10 Apr 2008 06:15:14 +0000 Subject: [PATCH] Simplify lifetime of location object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49467 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Parse/ParseDecl.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp index a7c638532d..77287043a5 100644 --- a/lib/Parse/ParseDecl.cpp +++ b/lib/Parse/ParseDecl.cpp @@ -665,14 +665,14 @@ void Parser::ParseStructDeclaration(DeclTy *TagDecl, // Parse the common specifier-qualifiers-list piece. DeclSpec DS; - SourceLocation SpecQualLoc = Tok.getLocation(); + SourceLocation DSStart = Tok.getLocation(); ParseSpecifierQualifierList(DS); // TODO: Does specifier-qualifier list correctly check that *something* is // specified? // If there are no declarators, issue a warning. if (Tok.is(tok::semi)) { - Diag(SpecQualLoc, diag::w_no_declarators); + Diag(DSStart, diag::w_no_declarators); return; } @@ -689,11 +689,10 @@ void Parser::ParseStructDeclaration(DeclTy *TagDecl, if (Tok.is(tok::colon)) { ConsumeToken(); ExprResult Res = ParseConstantExpression(); - if (Res.isInvalid) { + if (Res.isInvalid) SkipUntil(tok::semi, true, true); - } else { + else BitfieldSize = Res.Val; - } } // If attributes exist after the declarator, parse them. @@ -701,7 +700,8 @@ void Parser::ParseStructDeclaration(DeclTy *TagDecl, DeclaratorInfo.AddAttributes(ParseAttributes()); // Install the declarator into the current TagDecl. - DeclTy *Field = Actions.ActOnField(CurScope, TagDecl, SpecQualLoc, + DeclTy *Field = Actions.ActOnField(CurScope, TagDecl, + DS.getSourceRange().getBegin(), DeclaratorInfo, BitfieldSize); FieldDecls.push_back(Field); -- 2.40.0