[llvm-bugs] [Bug 34507] New: Assertion failure (DelayedTypos.empty() && "Uncorrected typos!") in case of multiple typos in expression
via llvm-bugs
llvm-bugs at lists.llvm.org
Wed Sep 6 09:21:10 PDT 2017
https://bugs.llvm.org/show_bug.cgi?id=34507
Bug ID: 34507
Summary: Assertion failure (DelayedTypos.empty() &&
"Uncorrected typos!") in case of multiple typos in
expression
Product: clang
Version: unspecified
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P
Component: Frontend
Assignee: unassignedclangbugs at nondot.org
Reporter: oranevskyy at accesssoftek.com
CC: llvm-bugs at lists.llvm.org
Created attachment 19115
--> https://bugs.llvm.org/attachment.cgi?id=19115&action=edit
Reproducer
If a chain of member function calls has multiple typos in it clang -cc1 fails
with the assertion failure if built with assertion enabled.
To reproduce compile the attached test case:
clang -cc1 typo.cpp
In the expression "z_obj.getY2().getM();" both getY2() and getM() calls are
mistyped. The initial AST for this expression:
CallExpr 0xcda1b01428 '<dependent type>'
`-CXXDependentScopeMemberExpr 0xcda1b013d0 '<dependent type>' lvalue .getM
`-CallExpr 0xcda1b013a8 '<dependent type>'
`-TypoExpr 0xcda1b01398 '<dependent type>' lvalue
The TypoExpr here stands for the getY2() call.
During typo resolution TransformCXXDependentScopeMemberExpr() detects that
getM() is also a typo and transforms the whole CXXDependentScopeMemberExpr into
a single TypoExpr. The resulting expression after the transformation looks like
this:
CallExpr 0xcda1b01768 '<dependent type>'
`-TypoExpr 0xcda1b01758 '<dependent type>' lvalue
This newly created TypoExpr does not get into the TypoExprs container and it is
not processed by the transform, thereby causing the assertion failure with
clang built with assertions enabled or missing typo diagnostics for getM() if
assertions are disabled.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170906/8b7b11e1/attachment.html>
More information about the llvm-bugs
mailing list