This patch serie include two changes: 1. Change the name of array_at_struct_end_p to array_ref_flexible_size_p. 2. Add a new warning option -Wstrict-flex-arrays and at the same time keep -Warray-bounds unchanged from -fstrict-flex-arrays.
The new warning -Wstrict-flex-arrays is implemented at the same place as -Warray-bounds. Since we need to keep the old behaviors of -Warray-bounds=[1|2], we refactor the routine "array_bounds_checker::check_array_ref" to make it work for both -Warray-bounds and -Wstrict-flex-arrays. if -Warray-bounds, -Wstrict-flex-arrays, -fstrict-flex-arrays presents at the same time: A. -Warray-bounds will be not controlled by -fstrict-flex-arrays; B. -Wstrict-flex-arrays will be controled by -fstrict-flex-arrays; C. both -Warray-bounds and -Wstrict-flex-arrays will report warnings according to it's own rules. bootstrapped and regression tested on both x86 and aarch64. no issue. Okay for commit? thanks. Qing