aboutsummaryrefslogtreecommitdiff
path: root/libcody/server.cc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2024-07-18 13:35:33 +0200
committerRichard Biener <rguenth@gcc.gnu.org>2024-07-18 14:53:31 +0200
commit3670c70c561656a19f6bff36dd229f18120af127 (patch)
tree993c6a499893fc9540627b724a58e514109ae31e /libcody/server.cc
parentebac11afbcb7a52536da5f04fc524b870f5d76e0 (diff)
downloadgcc-master.zip
gcc-master.tar.gz
gcc-master.tar.bz2
middle-end/115641 - invalid address constructionHEADtrunkmaster
fold_truth_andor_1 via make_bit_field_ref builds an address of a CALL_EXPR which isn't valid GENERIC and later causes an ICE. The following simply avoids the folding for f ().a != 1 || f ().b != 2 as it is a premature optimization anyway. The alternative would have been to build a TARGET_EXPR around the call. To get this far f () has to be const as otherwise the two calls are not semantically equivalent for the optimization. PR middle-end/115641 * fold-const.cc (decode_field_reference): If the inner reference isn't something we can take the address of, fail. * gcc.dg/torture/pr115641.c: New testcase.
Diffstat (limited to 'libcody/server.cc')
0 files changed, 0 insertions, 0 deletions