- 23 Jan, 2020 10 commits
-
-
The definitions of the integer types for ILP32 newlib make the resolution of some of the bool-related tests ambiguous. 2020-01-23 Richard Sandiford <richard.sandiford@arm.com> gcc/testsuite/ * g++.target/aarch64/sve/acle/general-c++/whilele_1.C: Skip for ILP32.
Richard Sandiford committed -
The load, store, prefetch and alias-check test functions require extra zero extends for ILP32, so they don't match the expected function bodies. This patch therefore skips those parts of the tests for ILP32, but keeps the compile/assemble parts. 2020-01-23 Richard Sandiford <richard.sandiford@arm.com> gcc/testsuite/ * gcc.target/aarch64/sve/acle/asm/ld1_f16.c: Skip check-function-bodies test for ILP32. * gcc.target/aarch64/sve/acle/asm/ld1_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1_gather_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1_gather_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1_gather_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1_gather_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1_gather_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1_gather_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1_s8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1_u8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ro_f16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ro_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ro_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ro_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ro_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ro_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ro_s8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ro_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ro_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ro_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ro_u8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1rq_f16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1rq_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1rq_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1rq_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1rq_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1rq_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1rq_s8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1rq_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1rq_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1rq_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1rq_u8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sb_gather_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sb_gather_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sb_gather_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sb_gather_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sb_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sb_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sb_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sb_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sb_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sb_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sh_gather_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sh_gather_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sh_gather_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sh_gather_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sh_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sh_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sh_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sh_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sw_gather_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sw_gather_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sw_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1sw_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ub_gather_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ub_gather_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ub_gather_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ub_gather_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ub_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ub_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ub_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ub_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ub_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1ub_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1uh_gather_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1uh_gather_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1uh_gather_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1uh_gather_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1uh_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1uh_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1uh_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1uh_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1uw_gather_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1uw_gather_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1uw_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld1uw_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld2_f16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld2_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld2_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld2_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld2_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld2_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld2_s8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld2_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld2_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld2_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld2_u8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld3_f16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld3_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld3_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld3_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld3_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld3_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld3_s8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld3_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld3_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld3_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld3_u8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld4_f16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld4_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld4_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld4_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld4_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld4_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld4_s8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld4_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld4_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld4_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ld4_u8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_f16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_gather_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_gather_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_gather_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_gather_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_gather_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_gather_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_s8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1_u8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sb_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sb_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sb_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sb_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sb_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sb_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sh_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sh_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sh_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sh_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sw_gather_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sw_gather_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sw_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1sw_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1ub_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1ub_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1ub_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1ub_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1ub_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1ub_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1uh_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1uh_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1uh_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1uh_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1uw_gather_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1uw_gather_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1uw_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldff1uw_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1_f16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1_s8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1_u8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1sb_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1sb_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1sb_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1sb_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1sb_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1sb_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1sh_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1sh_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1sh_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1sh_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1sw_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1sw_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1ub_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1ub_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1ub_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1ub_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1ub_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1ub_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1uh_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1uh_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1uh_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1uh_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1uw_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnf1uw_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnt1_f16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnt1_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnt1_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnt1_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnt1_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnt1_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnt1_s8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnt1_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnt1_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnt1_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/ldnt1_u8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/prfb.c: Likewise. * gcc.target/aarch64/sve/acle/asm/prfb_gather.c: Likewise. * gcc.target/aarch64/sve/acle/asm/prfd.c: Likewise. * gcc.target/aarch64/sve/acle/asm/prfd_gather.c: Likewise. * gcc.target/aarch64/sve/acle/asm/prfh.c: Likewise. * gcc.target/aarch64/sve/acle/asm/prfh_gather.c: Likewise. * gcc.target/aarch64/sve/acle/asm/prfw.c: Likewise. * gcc.target/aarch64/sve/acle/asm/prfw_gather.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_f16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_s8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_scatter_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_scatter_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_scatter_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_scatter_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_scatter_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_scatter_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1_u8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1b_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1b_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1b_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1b_scatter_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1b_scatter_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1b_scatter_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1b_scatter_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1b_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1b_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1b_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1h_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1h_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1h_scatter_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1h_scatter_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1h_scatter_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1h_scatter_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1h_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1h_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1w_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1w_scatter_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1w_scatter_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st1w_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st2_f16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st2_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st2_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st2_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st2_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st2_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st2_s8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st2_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st2_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st2_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st2_u8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st3_f16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st3_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st3_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st3_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st3_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st3_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st3_s8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st3_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st3_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st3_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st3_u8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st4_f16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st4_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st4_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st4_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st4_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st4_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st4_s8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st4_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st4_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st4_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/st4_u8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/stnt1_f16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/stnt1_f32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/stnt1_f64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/stnt1_s16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/stnt1_s32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/stnt1_s64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/stnt1_s8.c: Likewise. * gcc.target/aarch64/sve/acle/asm/stnt1_u16.c: Likewise. * gcc.target/aarch64/sve/acle/asm/stnt1_u32.c: Likewise. * gcc.target/aarch64/sve/acle/asm/stnt1_u64.c: Likewise. * gcc.target/aarch64/sve/acle/asm/stnt1_u8.c: Likewise. * gcc.target/aarch64/sve/acle/general/temporaries_1.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1sw_gather_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1sw_gather_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1uw_gather_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/ldnt1uw_gather_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1w_scatter_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/stnt1w_scatter_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilerw_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilerw_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilerw_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilerw_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilerw_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilerw_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilerw_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilerw_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilerw_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilerw_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilerw_u8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilewr_f16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilewr_f32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilewr_f64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilewr_s16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilewr_s32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilewr_s64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilewr_s8.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilewr_u16.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilewr_u32.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilewr_u64.c: Likewise. * gcc.target/aarch64/sve2/acle/asm/whilewr_u8.c: Likewise.
Richard Sandiford committed -
check-function-bodies allows individual function tests to be annotated with target/xfail selectors, but sometimes it's useful to have the same selector for all functions. 2020-01-23 Richard Sandiford <richard.sandiford@arm.com> gcc/ * doc/sourcebuild.texi (check-function-bodies): Add an optional target/xfail selector. gcc/testsuite/ * lib/scanasm.exp (check-function-bodies): Add an optional target/xfail selector.
Richard Sandiford committed -
In this PR, auto-inc-dec was trying to turn: (set (reg X) (plus (reg X) (const_int N))) (clobber (mem (reg X))) into: (clobber (mem (pre_modify (reg X) ...))) But bare clobber insns are just there to describe dataflow. They're not supposed to generate any code. 2020-01-23 Richard Sandiford <richard.sandiford@arm.com> gcc/ PR rtl-optimization/93124 * auto-inc-dec.c (merge_in_block): Don't add auto inc/decs to bare USE and CLOBBER insns. gcc/testsuite/ * gcc.dg/torture/pr93124.c: New test.
Richard Sandiford committed -
Type descriptors are normally weak and nm will report them as V, so we will skip them when collecting the list of symbols. But when not using GNU nm, they may be reported as D, so also skip them in symstogo. This fixes go/doc/check on Solaris. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/215900
Ian Lance Taylor committed -
The ICE in PR analyzer/93382 is a validation error. The global variable "idx" acquires a "tainted" state from local array n1[0]. When the frame is popped, the svalue for n1[0] is purged, but the "taint" sm_state_map's entry for "idx" has a svalue_id referencing the now-purged svalue. This is caught by program_state::validate as an assertion failure. This patch fixes the issue by resetting the origin id within sm_state_map entries for the case where the origin id has been purged. gcc/analyzer/ChangeLog: PR analyzer/93382 * program-state.cc (sm_state_map::on_svalue_purge): If the entry survives, but the origin is being purged, then reset the origin to null. gcc/testsuite/ChangeLog: PR analyzer/93382 * gcc.dg/analyzer/pr93382.c: New test.
David Malcolm committed -
When adding namespaces to the analyzer in r10-6151-g75038aa6 I messed up the nesting of the #endif for #if CHECKING_P and the closing of namespace ana. This patch fixes it. gcc/analyzer/ChangeLog: * sm-signal.cc: Fix nesting of CHECKING_P and namespace ana.
David Malcolm committed -
The problem here is arc looks at current_output_insn unconditional but sometimes current_output_insn is NULL. With patchable-function-entry, it will be. This is similar to how the nios2, handles "%.". Committed as obvious after a simple test with -fpatchable-function-entry=1. ChangeLog: * config/arc/arc.c (output_short_suffix): Check insn for nullness.
Andrew Pinski committed -
This reverts commit 9085381f as it was causing default dg-do to be set incorrectly on most targets. Instead move testcases that are vect related testcase that use "dg-require-effective-target vect_*" to the vect test area. ChangeLog: * gcc.dg/tree-ssa/pr88497-1.c: Move to ... * gcc.dg/vect/pr88497-1.c: This. * gcc.dg/tree-ssa/pr88497-2.c: Move to ... * gcc.dg/vect/pr88497-2.c: This. * gcc.dg/tree-ssa/pr88497-3.c: Move to ... * gcc.dg/vect/pr88497-3.c: This. * gcc.dg/tree-ssa/pr88497-4.c: Move to ... * gcc.dg/vect/pr88497-4.c: This. * gcc.dg/tree-ssa/pr88497-5.c: Move to ... * gcc.dg/vect/pr88497-5.c: This. * gcc.dg/tree-ssa/pr88497-6.c: Move to ... * gcc.dg/vect/pr88497-6.c: This. * gcc.dg/tree-ssa/pr88497-7.c: Move to ... * gcc.dg/vect/pr88497-7.c: This. Revert: * tree-ssa.exp: Set DEFAULT_VECTCFLAGS and DEFAULT_VECTCFLAGS. Call check_vect_support_and_set_flags also.
Andrew Pinski committed -
GCC Administrator committed
-
- 22 Jan, 2020 30 commits
-
-
Fixes a build breakage introduced in the 1.14beta1 upgrade. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/215857
Ian Lance Taylor committed -
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/215342
Andrew Pinski committed -
blender in SPEC is built with -funsigned-char, which is also the default on PPC, and exposed -Wsign-conversion issues that weren't seen by the x86_64 testsuite. In blender we were complaining about operands to an expression that we didn't't previously complain about as a whole. So only check operands after we check the whole expression. Also, to fix the PR 40752 testcases on -funsigned-char targets, don't consider -Wsign-conversion for the second operand of PLUS_EXPR, especially since fold changes "x - 5" to "x + (-5)". And don't use SCHAR_MAX with plain char. PR testsuite/93391 - PR 40752 test fails with unsigned plain char. PR c++/40752 * c-warn.c (conversion_warning): Check operands only after checking the whole expression. Don't check second operand of + for sign.
Jason Merrill committed -
My earlier change removed the warning calls from this function, so the location is no longer useful. * c-common.c (unsafe_conversion_p): Remove location parm.
Jason Merrill committed -
tree-ssa testcases sometimes check autovect effective target but does not set it up. On MIPS, those testcases fail with some TCL error messages. This fixes the issue by calling check_vect_support_and_set_flags inside tree-ssa.exp. There might be other .exp files which need to be done this way too but I have not checked all of them. Tested on x86_64-linux-gnu and a cross to mips64-octeon-linux-gnu. Both full run of the testsuite and running tree-ssa.exp by itself. testsuite/ChangeLog: * tree-ssa.exp: Set DEFAULT_VECTCFLAGS and DEFAULT_VECTCFLAGS. Call check_vect_support_and_set_flags also.
Andrew Pinski committed -
gcc/testsuite/ChangeLog: PR analyzer/93378 * gcc.dg/analyzer/setjmp-pr93378.c: Use setjmp rather than _setjmp.
David Malcolm committed -
PR analyzer/93378 reports an ICE at -O1 -g when analyzing a rewind via longjmp to a setjmp call with. The root cause is that the rewind_info_t::get_setjmp_call attempts to locate the setjmp GIMPLE_CALL via within the exploded_node containing it, but the exploded_node has two stmts: a GIMPLE_DEBUG, then the GIMPLE_CALL, and so erroneously picks the GIMPLE_DEBUG, leading to a failed as_a <const gcall *>. This patch reworks how the analyzer stores information about a setjmp so that instead of storing an exploded_node *, it instead introduces a "setjmp_record" struct, for use by both setjmp_svalue and rewind_info_t. Hence we store the information directly, rather than attempting to reconstruct it, fixing the bug. gcc/analyzer/ChangeLog: PR analyzer/93378 * engine.cc (setjmp_svalue::compare_fields): Update for replacement of m_enode with m_setjmp_record. (setjmp_svalue::add_to_hash): Likewise. (setjmp_svalue::get_index): Rename... (setjmp_svalue::get_enode_index): ...to this. (setjmp_svalue::print_details): Update for replacement of m_enode with m_setjmp_record. (exploded_node::on_longjmp): Likewise. * exploded-graph.h (rewind_info_t::m_enode_origin): Replace... (rewind_info_t::m_setjmp_record): ...with this. (rewind_info_t::rewind_info_t): Update for replacement of m_enode with m_setjmp_record. (rewind_info_t::get_setjmp_point): Likewise. (rewind_info_t::get_setjmp_call): Likewise. * region-model.cc (region_model::dump_summary_of_map): Likewise. (region_model::on_setjmp): Likewise. * region-model.h (struct setjmp_record): New struct. (setjmp_svalue::m_enode): Replace... (setjmp_svalue::m_setjmp_record): ...with this. (setjmp_svalue::setjmp_svalue): Update for replacement of m_enode with m_setjmp_record. (setjmp_svalue::clone): Likewise. (setjmp_svalue::get_index): Rename... (setjmp_svalue::get_enode_index): ...to this. (setjmp_svalue::get_exploded_node): Replace... (setjmp_svalue::get_setjmp_record): ...with this. gcc/testsuite/ChangeLog: PR analyzer/93378 * gcc.dg/analyzer/setjmp-pr93378.c: New test.
David Malcolm committed -
PR analyzer/93316 reports various testsuite failures where I accidentally relied on properties of x86_64-pc-linux-gnu. The following patch fixes them on sparc-sun-solaris2.11 (gcc211 in the GCC compile farm), and, I hope, the other configurations showing failures. There may still be other failures for pattern-test-2.c, which I'm tracking separately as PR analyzer/93291. gcc/analyzer/ChangeLog: PR analyzer/93316 * analyzer.cc (is_setjmp_call_p): Check for "setjmp" as well as "_setjmp". gcc/testsuite/ChangeLog: PR analyzer/93316 * gcc.dg/analyzer/data-model-1.c: Include <alloca.h>. * gcc.dg/analyzer/malloc-1.c: Likewise. * gcc.dg/analyzer/malloc-callbacks.c (get_alloca): Return __builtin_alloca rather than alloca. * gcc.dg/analyzer/malloc-paths-8.c: Include <alloca.h>. * gcc.dg/analyzer/sensitive-1.c: Define __EXTENSIONS__ before including unistd.h. * gcc.dg/analyzer/setjmp-2.c: Replace include of <setjmp.h> with "test-setjmp.h" and usage of setjmp with new SETJMP macro. * gcc.dg/analyzer/setjmp-3.c: Likewise. * gcc.dg/analyzer/setjmp-4.c: Likewise. * gcc.dg/analyzer/setjmp-5.c: Likewise. * gcc.dg/analyzer/setjmp-6.c: Likewise. * gcc.dg/analyzer/setjmp-7.c: Likewise. * gcc.dg/analyzer/setjmp-7a.c: Likewise. * gcc.dg/analyzer/setjmp-8.c: Likewise. * gcc.dg/analyzer/setjmp-9.c: Likewise. * gcc.dg/analyzer/test-setjmp.h: New header.
David Malcolm committed -
PR analyzer/93307 reports that in an LTO bootstrap, there are ODR violations between: - the "region" type: gcc/analyzer/region-model.h:792 vs: gcc/sched-int.h:1443 - the "constraint" type: gcc/analyzer/constraint-manager.h:121 vs: gcc/tree-ssa-structalias.c:533 This patches solves this clash by putting all of the analyzer names within a namespace. I chose "ana" as it is short (to save typing). The analyzer selftests are moved from namespace "selftest" to "ana::selftest". There are various places where the namespace has to be closed and reopened, to allow e.g. for specializations of templates in the global namespace. gcc/analyzer/ChangeLog: PR analyzer/93307 * analysis-plan.h: Wrap everything namespace "ana". * analyzer-logging.cc: Likewise. * analyzer-logging.h: Likewise. * analyzer-pass.cc (pass_analyzer::execute): Update for "ana" namespace. * analyzer-selftests.cc: Wrap everything namespace "ana". * analyzer-selftests.h: Likewise. * analyzer.h: Likewise for forward decls of types. * call-string.h: Likewise. * checker-path.cc: Likewise. * checker-path.h: Likewise. * constraint-manager.cc: Likewise. * constraint-manager.h: Likewise. * diagnostic-manager.cc: Likewise. * diagnostic-manager.h: Likewise. * engine.cc: Likewise. * engine.h: Likewise. * exploded-graph.h: Likewise. * function-set.cc: Likewise. * function-set.h: Likewise. * pending-diagnostic.cc: Likewise. * pending-diagnostic.h: Likewise. * program-point.cc: Likewise. * program-point.h: Likewise. * program-state.cc: Likewise. * program-state.h: Likewise. * region-model.cc: Likewise. * region-model.h: Likewise. * sm-file.cc: Likewise. * sm-malloc.cc: Likewise. * sm-pattern-test.cc: Likewise. * sm-sensitive.cc: Likewise. * sm-signal.cc: Likewise. * sm-taint.cc: Likewise. * sm.cc: Likewise. * sm.h: Likewise. * state-purge.h: Likewise. * supergraph.cc: Likewise. * supergraph.h: Likewise. gcc/ChangeLog: PR analyzer/93307 * gdbinit.in (break-on-saved-diagnostic): Update for move of diagnostic_manager into "ana" namespace. * selftest-run-tests.c (selftest::run_tests): Update for move of selftest::run_analyzer_selftests to ana::selftest::run_analyzer_selftests.
David Malcolm committed -
The function name was changed in 1.14beta1. Fix the non-x86, non-s390 code. Fixes golang/go#36694 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/215724
Ian Lance Taylor committed -
Here the problem is that if the noexcept specifier is used in the context of a const member function, const is not considered for the member variables, leading to a bogus error. g's const makes its 'this' const, so the first overload of f should be selected. In cp_parser_noexcept_specification_opt we inject 'this', but always unqualified: 25737 if (current_class_type) 25738 inject_this_parameter (current_class_type, TYPE_UNQUALIFIED); so we need to pass the function's qualifiers down here. In cp_parser_direct_declarator it's easy: use the just parsed cv_quals, in cp_parser_late_noexcept_specifier look at the 'this' parameter to figure it out. 2020-01-22 Marek Polacek <polacek@redhat.com> PR c++/92907 - noexcept does not consider "const" in member functions. * parser.c (cp_parser_lambda_declarator_opt): Pass the proper qualifiers to cp_parser_exception_specification_opt. (cp_parser_direct_declarator): Pass the function qualifiers to cp_parser_exception_specification_opt. (cp_parser_class_specifier_1): Pass the function declaration to cp_parser_late_noexcept_specifier. (cp_parser_late_noexcept_specifier): Add a tree parameter. Use it to pass the qualifiers of the function to cp_parser_noexcept_specification_opt. (cp_parser_noexcept_specification_opt): New cp_cv_quals parameter. Use it in inject_this_parameter. (cp_parser_exception_specification_opt): New cp_cv_quals parameter. Use it. (cp_parser_transaction): Pass TYPE_UNQUALIFIED to cp_parser_noexcept_specification_opt. (cp_parser_transaction_expression): Likewise. * g++.dg/cpp0x/noexcept56.C: New test.
Marek Polacek committed -
This is a crash with constexpr if, when trying to see if the call in the if-statement is std::is_constant_evaluated. cp_get_callee_fndecl_nofold can return NULL_TREE and fndecl_built_in_p doesn't expect to get a null tree, so check FNDECL first.
Marek Polacek committed -
The leak in get_mapped_args is due to auto_vec not properly supporting destructible elements in that auto_vec's destructor doesn't call the destructors of its elements. gcc/cp/ChangeLog: * constraint.cc (get_mapped_args): Avoid using auto_vec as a vector element. Release the vectors inside the lists vector. * parser.c (cp_literal_operator_id): Free the buffer.
Patrick Palka committed -
cfgexpand sorts variables by decreasing size, so when merging a later variable into an earlier one, there's usually no need to update the merged size. But for poly_int sizes, the sort function just uses a lexicographical comparison of the coefficients, so e.g. 2X+2 comes before 0X+32. Which is bigger depends on the runtime value of X. This patch therefore takes the upper bound of the two sizes, which is conservatively correct for variable-length vectors and a no-op on other targets. It's probably a bad idea to merge fixed-length and variable-length variables in practice, but that's really an optimisation decision. I think we should have this patch as a correctness fix either way. This is easiest to test using the ACLE, but in principle it could happen for autovectorised code too, e.g. when using OpenMP vector variables. It's therefore a regression from GCC 8. 2020-01-22 Richard Sandiford <richard.sandiford@arm.com> gcc/ * cfgexpand.c (union_stack_vars): Update the size. gcc/testsuite/ * gcc.target/aarch64/sve/acle/general/stack_vars_1.c: New test.
Richard Sandiford committed -
PR tree-optimization/92924 * libgcov-profiler.c (__gcov_topn_values_profiler_body): First try to find an existing value, then find an empty slot if not found.
Martin Liska committed -
These tests are supposed to be testing the tlsdesc handling and so don't apply to emultls targets. 2020-01-22 Richard Sandiford <richard.sandiford@arm.com> gcc/testsuite/ * gcc.target/aarch64/sve/tls_preserve_1.c: Require tls_native. * gcc.target/aarch64/sve/tls_preserve_2.c: Likewise. * gcc.target/aarch64/sve/tls_preserve_3.c: Likewise.
Richard Sandiford committed -
A pasto in this test meant that we needed extra reverse instructions for big-endian targets. 2020-01-22 Richard Sandiford <richard.sandiford@arm.com> gcc/testsuite/ * gcc.target/aarch64/sve/sel_3.c (permute_vnx4sf): Take __SVFloat32_t rather than __SVFloat16_t
Richard Sandiford committed -
In r279588 I'd for some reason only patched g++.dg/ext/sve-sizeless-2.C, even though g++.dg/ext/sve-sizeless-1.C has the same problem. 2020-01-22 Richard Sandiford <richard.sandiford@arm.com> gcc/testsuite/ * g++.dg/ext/sve-sizeless-1.C: Don't expect an error for alias templates.
Richard Sandiford committed -
We were incorrectly assuming a merge operation is conservative enough for not explicitely handled operations but we also need to consider offsetting within fields when field-sensitive analysis applies. 2020-01-22 Richard Biener <rguenther@suse.de> PR tree-optimization/93381 * tree-ssa-structalias.c (find_func_aliases): Assume offsetting throughout, handle all conversions the same. * gcc.dg/torture/pr93381.c: New testcase.
Richard Biener committed -
The two patterns that call aarch64_expand_subvti ensure that {low,high}_in1 is a register, while {low,high}_in2 can be a register or immediate. subdi3_compare1_imm uses the aarch64_plus_immediate predicate for its last two operands (the value and negated value), but aarch64_expand_subvti calls it whenever low_in2 is a CONST_INT, which leads to ICEs during vregs pass, as the emitted insn is not recognized as valid subdi3_compare1_imm. The following patch fixes that by only using subdi3_compare1_imm if it is ok to do so, and otherwise force the constant into register and use the non-immediate version - subdi3_compare1. Furthermore, previously the code was calling force_reg on high_in2 only if low_in2 is CONST_INT, on the (reasonable) assumption is that only if low_in2 is a CONST_INT, high_in2 can be non-REG, but with the above changes even in the else we might have CONST_INT and force_reg doesn't do anything if the operand is already a REG, so this patch calls it unconditionally. 2020-01-22 Jakub Jelinek <jakub@redhat.com> PR target/93335 * config/aarch64/aarch64.c (aarch64_expand_subvti): Only use gen_subdi3_compare1_imm if low_in2 satisfies aarch64_plus_immediate predicate, not whenever it is CONST_INT. Otherwise, force_reg it. Call force_reg on high_in2 unconditionally. * gcc.c-torture/compile/pr93335.c: New test.
Jakub Jelinek committed -
PR tree-optimization/92924 * profile.c (compute_value_histograms): Divide all counter values. PR tree-optimization/92924 * libgcov-driver.c (prune_topn_counter): New. (prune_counters): Likewise. (dump_one_gcov): Prune a run-time counter. * libgcov-profiler.c (__gcov_topn_values_profiler_body): For a known value, add GCOV_TOPN_VALUES to value. Otherwise, decrement all counters by one.
Martin Liska committed -
This script is intended to create a new vendor branch. Doing so is not completely obvious if you are not familiar with the upstream structure, so this takes the pain out of getting it right. It doesn't check out the branch locally, but does set everything up so that, if you have push enabled for your vendor branches, then git push vendors/<vendor> <branch> will work as expected. Run the script as contrib/git-add-vendor-branch.sh <vendor>/<branch> <start-point> the <vendor> space must have previously been set up in the way git-fetch-vendor.sh expects. * git-add-vendor-branch.sh: New file.
Richard Earnshaw committed -
In AT&T syntax leading $ is special, so if we have identifiers that start with dollar, we usually fail to assemble it (or assemble incorrectly). As mentioned in the PR, what works is wrapping the identifiers inside of parens, like: movl $($a), %eax leaq ($a)(,%rdi,4), %rax movl ($a)(%rip), %eax movl ($a)+16(%rip), %eax .globl $a .type $a, @object .size $a, 72 $a: .string "$a" .quad ($a) (this is x86_64 -fno-pic -O2). In some places ($a) is not accepted, like as .globl operand, in .type, .size, so the patch overrides ASM_OUTPUT_SYMBOL_REF rather than e.g. ASM_OUTPUT_LABELREF. I didn't want to duplicate what assemble_name is doing (following transparent aliases), so split assemble_name into two parts; just mere looking at the first character of a name before calling assemble_name wouldn't be good enough, a transparent alias could lead from a name not starting with $ to one starting with it and vice versa. 2020-01-22 Jakub Jelinek <jakub@redhat.com> PR target/91298 * output.h (assemble_name_resolve): Declare. * varasm.c (assemble_name_resolve): New function. (assemble_name): Use it. * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define. * gcc.target/i386/pr91298-1.c: New test. * gcc.target/i386/pr91298-2.c: New test.
Jakub Jelinek committed -
The PR93329 fix revealed we ICE on !$omp target parallel, this change fixes that. 2020-01-22 Jakub Jelinek <jakub@redhat.com> * parse.c (parse_omp_structured_block): Handle ST_OMP_TARGET_PARALLEL. * trans-openmp.c (gfc_trans_omp_target) <case EXEC_OMP_TARGET_PARALLEL>: Call pushlevel first. * gfortran.dg/gomp/target-parallel1.f90: New test. * gfortran.dg/goacc/pr93329.f90: Enable commented out target parallel test.
Jakub Jelinek committed -
The omp_code_to_statement function added with the initial OpenACC support only handled small subset of the OpenMP statements, leading to ICE if any other OpenMP directive appeared inside of OpenACC directive. 2020-01-22 Jakub Jelinek <jakub@redhat.com> PR fortran/93329 * openmp.c (omp_code_to_statement): Handle remaining EXEC_OMP_* cases. * gfortran.dg/goacc/pr93329.f90: New test.
Jakub Jelinek committed -
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/214297
Ian Lance Taylor committed -
gcc/cp/ChangeLog * coroutines.cc (finish_co_await_expr): Add error check on return value of build_co_await. (finish_co_yield_expr): Ditto.
JunMa committed -
gcc/cp/ChangeLog * coroutines.cc (lookup_awaitable_member): Lookup an awaitable member. (lookup_promise_method): Emit diagnostic when get NULL_TREE back only. (build_co_await): Use lookup_awaitable_member instead of lookup_member. gcc/testsuite/ChangeLog * g++.dg/coroutines/coro1-missing-await-method.C: New test.
JunMa committed -
These needed updating after the replacement of update_web_docs_svn by update_web_docs_git. * doc/sourcebuild.texi (Texinfo Manuals, Front End): Refer to update_web_docs_git instead of update_web_docs_svn.
Joseph Myers committed -
The problem here was g:23b88fda was not a complete fix for supporting tranditional TLS on ILP32. So the problem here is a couple of things, first __tls_get_addr call will return a C pointer value so we need to use ptr_mode when we are creating the call. Then we need to convert back that register to the correct mode, either zero extending it or just creating a move instruction. Also symbol_ref can either be in SImode or DImode. So we need to allow both modes. Built and tested on aarch64-linux-gnu with no regressions. Also built a full toolchain (including glibc) defaulting to traditional TLS that targets ilp32 and lp64. ChangeLog: PR target/93119 * config/aarch64/aarch64.md (tlsgd_small_<mode>): Have operand 0 as PTR mode. Have operand 1 as being modeless, it can be P mode. (*tlsgd_small_<mode>): Likewise. * config/aarch64/aarch64.c (aarch64_load_symref_appropriately) <case SYMBOL_SMALL_TLSGD>: Call gen_tlsgd_small_* with a ptr_mode register. Convert that register back to dest using convert_mode.
Andrew Pinski committed
-