https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64893
Bug ID: 64893 Summary: [5 Regression] ICE while doing a bootstrap with the latest compiler Product: gcc Version: 5.0 Status: UNCONFIRMED Keywords: build, ice-on-valid-code Severity: blocker Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target: aarch64* Compile the following with -O0: typedef __Uint32x2_t uint32x2_t; __extension__ static __inline unsigned __attribute__ ((__always_inline__))vget_lane_u32 (uint32x2_t __a, const int __b) { return __extension__ ({ __builtin_aarch64_im_lane_boundsi ((sizeof (__a) / sizeof (__a[0])), __b); __a[__b]; }); } int search_line_fast (uint32x2_t t) { return vget_lane_u32 (t, 0); } -- CUT --- With the C front-end, it works correctly but with the C++ front-end it fails due to (int) (8 / 4) not being folded into just 2.