[Bug c/100789] [9/10/11/12 Regression] ICE with __transaction_relaxed and left shit signed overflow

2022-03-29 Thread mpolacek at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100789

--- Comment #5 from Marek Polacek  ---
The problem is that we're creating a C_MAYBE_CONST_EXPR inside of a
TRANSATION_EXPR, but c_fully_fold doesn't walk into TRANSATION_EXPRs, so the
C_MAYBE_CONST_EXPR leaks into the gimplifier.

__transaction_relaxed
{
  <<< Unknown tree: c_maybe_const_expr

8526495038820057088 >>>
}

I don't know if it's OK to fold the insides of a TRANSATION_EXPR.  Another
option would to avoid creating C_MAYBE_CONST_EXPRs inside a transaction expr,
like in_late_binary_op?

[Bug c/100789] [9/10/11/12 Regression] ICE with __transaction_relaxed and left shit signed overflow

2022-01-17 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100789

Richard Biener  changed:

   What|Removed |Added

Version|tree-ssa|12.0
   Priority|P3  |P2

[Bug c/100789] [9/10/11/12 Regression] ICE with __transaction_relaxed and left shit signed overflow

2021-08-29 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100789

Andrew Pinski  changed:

   What|Removed |Added

Summary|[9/10/11/12 Regression] |[9/10/11/12 Regression] ICE
   |ICE: in gimplify_expr, at   |with __transaction_relaxed
   |gimplify.c:14750|and left shit signed
   ||overflow

--- Comment #4 from Andrew Pinski  ---
Most likely due to this part of the patch from c-typeck.c:
+ else if (TREE_CODE (op0) == INTEGER_CST
+  && maybe_warn_shift_overflow (location, op0, op1)
+  && flag_isoc99)
+   int_const = false;