summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-03-05 23:01:03 +0000
committerChris Lattner <sabre@nondot.org>2009-03-05 23:01:03 +0000
commitd26760aecbb2629eeb6bbcb869db086ca39c500f (patch)
tree6bc075d3837dc60bf97f8f6050d9eda956e80915 /clang/lib/Sema/SemaDecl.cpp
parentf804897ee94fe082cc840c5eca54ae6698324452 (diff)
downloadbcm5719-llvm-d26760aecbb2629eeb6bbcb869db086ca39c500f.tar.gz
bcm5719-llvm-d26760aecbb2629eeb6bbcb869db086ca39c500f.zip
refactor C++ bitfield checking a bit (haha)
llvm-svn: 66213
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r--clang/lib/Sema/SemaDecl.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index f9c1691e853..953e39f92d6 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -3152,12 +3152,14 @@ void Sema::ActOnTagFinishDefinition(Scope *S, DeclTy *TagD) {
bool Sema::VerifyBitField(SourceLocation FieldLoc, IdentifierInfo *FieldName,
QualType FieldTy, const Expr *BitWidth) {
// C99 6.7.2.1p4 - verify the field type.
-
+ // C++ 9.6p3: A bit-field shall have integral or enumeration type.
if (!FieldTy->isIntegralType()) {
// Handle incomplete types with specific error.
if (FieldTy->isIncompleteType())
- return Diag(FieldLoc, diag::err_field_incomplete) << FieldTy;
- return Diag(FieldLoc, diag::err_not_integral_type_bitfield) << FieldName;
+ return Diag(FieldLoc, diag::err_field_incomplete)
+ << FieldTy << BitWidth->getSourceRange();
+ return Diag(FieldLoc, diag::err_not_integral_type_bitfield)
+ << FieldName << BitWidth->getSourceRange();
}
llvm::APSInt Value;
OpenPOWER on IntegriCloud