[Bug c++/70744] preincrements possibly double-evaluated in GNU ternaries
mpolacek at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Apr 21 17:50:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70744
--- Comment #4 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
A possible fix seems to be
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -4255,6 +4255,12 @@ stabilize_reference (tree ref)
volatiles. */
return stabilize_reference_1 (ref);
+ case POSTDECREMENT_EXPR:
+ case POSTINCREMENT_EXPR:
+ case PREDECREMENT_EXPR:
+ case PREINCREMENT_EXPR:
+ return stabilize_reference_1 (ref);
+
/* If arg isn't a kind of lvalue we recognize, make no change.
Caller should recognize the error for an invalid lvalue. */
default:
but not sure if these belong into stabilize_reference ...
More information about the Gcc-bugs
mailing list