[cfe-commits] r118481 - in /cfe/trunk: lib/Sema/SemaDeclCXX.cpp test/Sema/bitfield.c
Douglas Gregor
dgregor at apple.com
Mon Nov 8 19:31:16 PST 2010
Author: dgregor
Date: Mon Nov 8 21:31:16 2010
New Revision: 118481
URL: http://llvm.org/viewvc/llvm-project?rev=118481&view=rev
Log:
Fix source locations in unnamed bitfield diagnostic, from Jakub
Wieczorek! Fixes PR8025.
Modified:
cfe/trunk/lib/Sema/SemaDeclCXX.cpp
cfe/trunk/test/Sema/bitfield.c
Modified: cfe/trunk/lib/Sema/SemaDeclCXX.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclCXX.cpp?rev=118481&r1=118480&r2=118481&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDeclCXX.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDeclCXX.cpp Mon Nov 8 21:31:16 2010
@@ -843,6 +843,11 @@
DeclarationNameInfo NameInfo = GetNameForDeclarator(D);
DeclarationName Name = NameInfo.getName();
SourceLocation Loc = NameInfo.getLoc();
+
+ // For anonymous bitfields, the location should point to the type.
+ if (Loc.isInvalid())
+ Loc = D.getSourceRange().getBegin();
+
Expr *BitWidth = static_cast<Expr*>(BW);
Expr *Init = static_cast<Expr*>(InitExpr);
Modified: cfe/trunk/test/Sema/bitfield.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/bitfield.c?rev=118481&r1=118480&r2=118481&view=diff
==============================================================================
--- cfe/trunk/test/Sema/bitfield.c (original)
+++ cfe/trunk/test/Sema/bitfield.c Mon Nov 8 21:31:16 2010
@@ -34,3 +34,7 @@
__typeof__((x.x+=1)+1) y;
__typeof__(x.x<<1) y;
int y;
+
+struct PR8025 {
+ double : 2; // expected-error{{anonymous bit-field has non-integral type 'double'}}
+};
More information about the cfe-commits
mailing list