summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaInit.cpp
diff options
context:
space:
mode:
authorRichard Trieu <rtrieu@google.com>2015-05-16 01:27:03 +0000
committerRichard Trieu <rtrieu@google.com>2015-05-16 01:27:03 +0000
commitf956a49e6da306c9ec3ac805822035043626481c (patch)
treeadd6aaebf96b5a5347c6b45c2a4f599b07ec4041 /clang/lib/Sema/SemaInit.cpp
parentbb642e54564a605c71f4ee9a57e9ed430ac8f68f (diff)
downloadbcm5719-llvm-f956a49e6da306c9ec3ac805822035043626481c.tar.gz
bcm5719-llvm-f956a49e6da306c9ec3ac805822035043626481c.zip
When emitting a dropped qualifier error, show which qualifiers are dropped.
llvm-svn: 237505
Diffstat (limited to 'clang/lib/Sema/SemaInit.cpp')
-rw-r--r--clang/lib/Sema/SemaInit.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp
index 32570c71757..7dd93e8de58 100644
--- a/clang/lib/Sema/SemaInit.cpp
+++ b/clang/lib/Sema/SemaInit.cpp
@@ -6852,12 +6852,19 @@ bool InitializationSequence::Diagnose(Sema &S,
<< Args[0]->getSourceRange();
break;
- case FK_ReferenceInitDropsQualifiers:
+ case FK_ReferenceInitDropsQualifiers: {
+ QualType SourceType = Args[0]->getType();
+ QualType NonRefType = DestType.getNonReferenceType();
+ Qualifiers DroppedQualifiers =
+ SourceType.getQualifiers() - NonRefType.getQualifiers();
+
S.Diag(Kind.getLocation(), diag::err_reference_bind_drops_quals)
- << Args[0]->getType()
- << DestType.getNonReferenceType()
+ << SourceType
+ << NonRefType
+ << DroppedQualifiers.getCVRQualifiers()
<< Args[0]->getSourceRange();
break;
+ }
case FK_ReferenceInitFailed:
S.Diag(Kind.getLocation(), diag::err_reference_bind_failed)
OpenPOWER on IntegriCloud