aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema/SemaType.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Sema/SemaType.cpp')
-rw-r--r--lib/Sema/SemaType.cpp50
1 files changed, 24 insertions, 26 deletions
diff --git a/lib/Sema/SemaType.cpp b/lib/Sema/SemaType.cpp
index 945082ad46..8c46fab586 100644
--- a/lib/Sema/SemaType.cpp
+++ b/lib/Sema/SemaType.cpp
@@ -203,14 +203,14 @@ QualType Sema::ConvertDeclSpecToType(const DeclSpec &DS) {
// incomplete type.
if (!EltTy->isIncompleteOrObjectType()) {
Diag(DS.getRestrictSpecLoc(),
- diag::err_typecheck_invalid_restrict_invalid_pointee,
- EltTy.getAsString(), DS.getSourceRange());
+ diag::err_typecheck_invalid_restrict_invalid_pointee)
+ << EltTy.getAsString() << DS.getSourceRange();
TypeQuals &= ~QualType::Restrict; // Remove the restrict qualifier.
}
} else {
Diag(DS.getRestrictSpecLoc(),
- diag::err_typecheck_invalid_restrict_not_pointer,
- Result.getAsString(), DS.getSourceRange());
+ diag::err_typecheck_invalid_restrict_not_pointer)
+ << Result.getAsString() << DS.getSourceRange();
TypeQuals &= ~QualType::Restrict; // Remove the restrict qualifier.
}
}
@@ -228,8 +228,8 @@ QualType Sema::ConvertDeclSpecToType(const DeclSpec &DS) {
"Has CV quals but not C or V?");
Loc = DS.getVolatileSpecLoc();
}
- Diag(Loc, diag::warn_typecheck_function_qualifiers,
- Result.getAsString(), DS.getSourceRange());
+ Diag(Loc, diag::warn_typecheck_function_qualifiers)
+ << Result.getAsString() << DS.getSourceRange();
}
// C++ [dcl.ref]p1:
@@ -275,8 +275,8 @@ QualType Sema::GetTypeForDeclarator(Declarator &D, Scope *S) {
case DeclaratorChunk::Pointer:
if (T->isReferenceType()) {
// C++ 8.3.2p4: There shall be no ... pointers to references ...
- Diag(DeclType.Loc, diag::err_illegal_decl_pointer_to_reference,
- D.getIdentifier() ? D.getIdentifier()->getName() : "type name");
+ Diag(DeclType.Loc, diag::err_illegal_decl_pointer_to_reference)
+ << (D.getIdentifier() ? D.getIdentifier()->getName() : "type name");
D.setInvalidType(true);
T = Context.IntTy;
}
@@ -285,9 +285,8 @@ QualType Sema::GetTypeForDeclarator(Declarator &D, Scope *S) {
// object or incomplete types shall not be restrict-qualified."
if ((DeclType.Ptr.TypeQuals & QualType::Restrict) &&
!T->isIncompleteOrObjectType()) {
- Diag(DeclType.Loc,
- diag::err_typecheck_invalid_restrict_invalid_pointee,
- T.getAsString());
+ Diag(DeclType.Loc, diag::err_typecheck_invalid_restrict_invalid_pointee)
+ << T.getAsString();
DeclType.Ptr.TypeQuals &= QualType::Restrict;
}
@@ -327,9 +326,8 @@ QualType Sema::GetTypeForDeclarator(Declarator &D, Scope *S) {
// object or incomplete types shall not be restrict-qualified."
if (DeclType.Ref.HasRestrict &&
!T->isIncompleteOrObjectType()) {
- Diag(DeclType.Loc,
- diag::err_typecheck_invalid_restrict_invalid_pointee,
- T.getAsString());
+ Diag(DeclType.Loc, diag::err_typecheck_invalid_restrict_invalid_pointee)
+ << T.getAsString();
DeclType.Ref.HasRestrict = false;
}
@@ -355,39 +353,39 @@ QualType Sema::GetTypeForDeclarator(Declarator &D, Scope *S) {
// C99 6.7.5.2p1: If the element type is an incomplete or function type,
// reject it (e.g. void ary[7], struct foo ary[7], void ary[7]())
if (T->isIncompleteType()) {
- Diag(D.getIdentifierLoc(), diag::err_illegal_decl_array_incomplete_type,
- T.getAsString());
+ Diag(D.getIdentifierLoc(), diag::err_illegal_decl_array_incomplete_type)
+ << T.getAsString();
T = Context.IntTy;
D.setInvalidType(true);
} else if (T->isFunctionType()) {
- Diag(D.getIdentifierLoc(), diag::err_illegal_decl_array_of_functions,
- D.getIdentifier() ? D.getIdentifier()->getName() : "type name");
+ Diag(D.getIdentifierLoc(), diag::err_illegal_decl_array_of_functions)
+ << (D.getIdentifier() ? D.getIdentifier()->getName() : "type name");
T = Context.getPointerType(T);
D.setInvalidType(true);
} else if (const ReferenceType *RT = T->getAsReferenceType()) {
// C++ 8.3.2p4: There shall be no ... arrays of references ...
- Diag(D.getIdentifierLoc(), diag::err_illegal_decl_array_of_references,
- D.getIdentifier() ? D.getIdentifier()->getName() : "type name");
+ Diag(D.getIdentifierLoc(), diag::err_illegal_decl_array_of_references)
+ << (D.getIdentifier() ? D.getIdentifier()->getName() : "type name");
T = RT->getPointeeType();
D.setInvalidType(true);
} else if (const RecordType *EltTy = T->getAsRecordType()) {
// If the element type is a struct or union that contains a variadic
// array, reject it: C99 6.7.2.1p2.
if (EltTy->getDecl()->hasFlexibleArrayMember()) {
- Diag(DeclType.Loc, diag::err_flexible_array_in_array,
- T.getAsString());
+ Diag(DeclType.Loc, diag::err_flexible_array_in_array)
+ << T.getAsString();
T = Context.IntTy;
D.setInvalidType(true);
}
} else if (T->isObjCInterfaceType()) {
- Diag(DeclType.Loc, diag::warn_objc_array_of_interfaces,
- T.getAsString());
+ Diag(DeclType.Loc, diag::warn_objc_array_of_interfaces)
+ << T.getAsString();
}
// C99 6.7.5.2p1: The size expression shall have integer type.
if (ArraySize && !ArraySize->getType()->isIntegerType()) {
- Diag(ArraySize->getLocStart(), diag::err_array_size_non_int,
- ArraySize->getType().getAsString(), ArraySize->getSourceRange());
+ Diag(ArraySize->getLocStart(), diag::err_array_size_non_int)
+ << ArraySize->getType().getAsString() << ArraySize->getSourceRange();
D.setInvalidType(true);
delete ArraySize;
ATI.NumElts = ArraySize = 0;