aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2020-04-04 11:04:55 -0400
committerJason Merrill <jason@redhat.com>2020-04-04 11:06:31 -0400
commit9f143008c73c60e02634d6b433139a035ef7bb65 (patch)
treedde2a0566499fe03a7c93a2f784d3b3cad280477 /libgcc
parent2523d721cfc861a3abea6e97736446c99ba8b52d (diff)
downloadgcc-9f143008c73c60e02634d6b433139a035ef7bb65.zip
gcc-9f143008c73c60e02634d6b433139a035ef7bb65.tar.gz
gcc-9f143008c73c60e02634d6b433139a035ef7bb65.tar.bz2
c++: Fix reuse of class constants [PR94453]
The testcase hit an ICE trying to expand a TARGET_EXPR temporary cached from the other lambda-expression. This patch fixes this in two ways: 1) Avoid reusing a TARGET_EXPR from another function. 2) Avoid ending up with a TARGET_EXPR at all; the use of 'p' had become <TARGET_EXPR<NON_LVALUE_EXPR<TARGET_EXPR ...>>>, which doesn't make any sense. gcc/cp/ChangeLog 2020-04-04 Jason Merrill <jason@redhat.com> PR c++/94453 * constexpr.c (maybe_constant_value): Use break_out_target_exprs. * expr.c (mark_use) [VIEW_CONVERT_EXPR]: Don't wrap a TARGET_EXPR in NON_LVALUE_EXPR.
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions