[Bug c++/92105] New: [7/8/9/10 Regression] decltype(decltype(decltype)) prints exponential number of fix-it hints
redi at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Oct 15 14:50:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92105
Bug ID: 92105
Summary: [7/8/9/10 Regression] decltype(decltype(decltype))
prints exponential number of fix-it hints
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Keywords: diagnostic
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: redi at gcc dot gnu.org
Target Milestone: ---
decltype(decltype) x = 42;
prints:
dt.cc:1:10: error: expected primary-expression before 'decltype'
1 | decltype(decltype) x = 42;
| ^~~~~~~~
dt.cc:1:10: error: expected ')' before 'decltype'
1 | decltype(decltype) x = 42;
| ~^~~~~~~~
| )
dt.cc:1:10: error: expected primary-expression before 'decltype'
1 | decltype(decltype) x = 42;
| ^~~~~~~~
dt.cc:1:10: error: expected primary-expression before 'decltype'
dt.cc:1:10: error: expected primary-expression before 'decltype'
dt.cc:1:10: error: expected primary-expression before 'decltype'
dt.cc:1:1: error: expected unqualified-id before 'decltype'
1 | decltype(decltype) x = 42;
| ^~~~~~~~
but with an extra (decltype) it prints:
dt.cc:1:19: error: expected primary-expression before 'decltype'
1 | decltype(decltype(decltype)) x = 42;
| ^~~~~~~~
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:10: error: expected primary-expression before 'decltype'
1 | decltype(decltype(decltype)) x = 42;
| ^~~~~~~~
dt.cc:1:10: error: expected ')' before 'decltype'
1 | decltype(decltype(decltype)) x = 42;
| ~^~~~~~~~
| )
dt.cc:1:19: error: expected primary-expression before 'decltype'
1 | decltype(decltype(decltype)) x = 42;
| ^~~~~~~~
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:10: error: expected primary-expression before 'decltype'
1 | decltype(decltype(decltype)) x = 42;
| ^~~~~~~~
dt.cc:1:19: error: expected primary-expression before 'decltype'
1 | decltype(decltype(decltype)) x = 42;
| ^~~~~~~~
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:10: error: expected primary-expression before 'decltype'
1 | decltype(decltype(decltype)) x = 42;
| ^~~~~~~~
dt.cc:1:19: error: expected primary-expression before 'decltype'
1 | decltype(decltype(decltype)) x = 42;
| ^~~~~~~~
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:10: error: expected primary-expression before 'decltype'
1 | decltype(decltype(decltype)) x = 42;
| ^~~~~~~~
dt.cc:1:19: error: expected primary-expression before 'decltype'
1 | decltype(decltype(decltype)) x = 42;
| ^~~~~~~~
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:19: error: expected primary-expression before 'decltype'
dt.cc:1:10: error: expected primary-expression before 'decltype'
1 | decltype(decltype(decltype)) x = 42;
| ^~~~~~~~
dt.cc:1:1: error: expected unqualified-id before 'decltype'
1 | decltype(decltype(decltype)) x = 42;
| ^~~~~~~~
Add another (decltype) and you get 272 lines. Another gives 1342, then 6722,
and so on to 4 millions lines for:
decltype(decltype(decltype(decltype(decltype(decltype(decltype(decltype(decltype(decltype)))))))))
x = 42;
More information about the Gcc-bugs
mailing list