summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/Sema/SemaExprCXX.cpp4
-rw-r--r--clang/test/SemaCXX/operator-arrow-depth.cpp2
2 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp
index 2e71270b4e8..4c3b49ad245 100644
--- a/clang/lib/Sema/SemaExprCXX.cpp
+++ b/clang/lib/Sema/SemaExprCXX.cpp
@@ -5219,7 +5219,7 @@ Sema::ActOnStartCXXMemberReference(Scope *S, Expr *Base, SourceLocation OpLoc,
while (BaseType->isRecordType()) {
if (OperatorArrows.size() >= getLangOpts().ArrowDepth) {
Diag(OpLoc, diag::err_operator_arrow_depth_exceeded)
- << BaseType << getLangOpts().ArrowDepth << Base->getSourceRange();
+ << StartingType << getLangOpts().ArrowDepth << Base->getSourceRange();
noteOperatorArrows(*this, OperatorArrows);
Diag(OpLoc, diag::note_operator_arrow_depth)
<< getLangOpts().ArrowDepth;
@@ -5239,7 +5239,7 @@ Sema::ActOnStartCXXMemberReference(Scope *S, Expr *Base, SourceLocation OpLoc,
if (NoArrowOperatorFound) {
if (FirstIteration) {
Diag(OpLoc, diag::err_typecheck_member_reference_suggestion)
- << StartingType << 1 << Base->getSourceRange()
+ << BaseType << 1 << Base->getSourceRange()
<< FixItHint::CreateReplacement(OpLoc, ".");
OpKind = tok::period;
break;
diff --git a/clang/test/SemaCXX/operator-arrow-depth.cpp b/clang/test/SemaCXX/operator-arrow-depth.cpp
index 4e098823ae8..3e2ba8e4522 100644
--- a/clang/test/SemaCXX/operator-arrow-depth.cpp
+++ b/clang/test/SemaCXX/operator-arrow-depth.cpp
@@ -22,5 +22,5 @@ A<MAX/2> good;
int n = good->n;
B<MAX/2 + 1> bad;
-int m = bad->n; // expected-error-re {{use of 'operator->' on type 'B<(1|5|64)>' would invoke a sequence of more than (2|10|128) 'operator->' calls}}
+int m = bad->n; // expected-error-re {{use of 'operator->' on type 'B<(2|10|128) / 2 \+ 1>' would invoke a sequence of more than (2|10|128) 'operator->' calls}}
// expected-note@-1 {{use -foperator-arrow-depth=N to increase 'operator->' limit}}
OpenPOWER on IntegriCloud