https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58372
--- Comment #23 from Terry Guo <xuepeng.guo at intel dot com> --- Hi Uroš: With your fix, I identified two regressions so far: one is that we should run the case you provided with c++ standard newer than c++11. The 'noexcept' was introduced in c++14. Guess we need a directive like "{ ! target c++14_down }". Another regression is related to -fsanitize=address shown as below: ./gcc/cc1plus use-after-scope-types-5.ii -quiet -m32 -O0 -fsanitize=address -o use-after-scope-types-5.s during RTL pass: expand In file included from /export/users/xuepengg/58372-ice-stack-alignment/gcc/gcc/testsuite/g++.dg/asan/use-after-scope-types-5.C:4: /export/users/xuepengg/58372-ice-stack-alignment/gcc/gcc/testsuite/g++.dg/asan/use-after-scope-types.h: In function ‘void test() [with T = char [1000]]’: /export/users/xuepengg/58372-ice-stack-alignment/gcc/gcc/testsuite/g++.dg/asan/use-after-scope-types.h:22:51: internal compiler error: in safe_as_a, at is-a.h:210 22 | template <class T> __attribute__((noinline)) void test() { | ^~~~ 0x11d5b1f rtx_insn* safe_as_a<rtx_insn*, rtx_def>(rtx_def*) ../../gcc/gcc/is-a.h:210 0x11d5b1f NEXT_INSN(rtx_insn const*) ../../gcc/gcc/rtl.h:1461 0x11d5b1f ix86_get_drap_rtx ../../gcc/gcc/config/i386/i386.c:12050 0xa92e12 emit_library_call_value_1(int, rtx_def*, rtx_def*, libcall_type, machine_mode, int, std::pair<rtx_def*, machine_mode>*) ../../gcc/gcc/calls.c:4757 0xecc975 emit_library_call(rtx_def*, libcall_type, machine_mode, rtx_def*, machine_mode, rtx_def*, machine_mode, rtx_def*, machine_mode) ../../gcc/gcc/rtl.h:4149 0xecc975 asan_emit_stack_protection(rtx_def*, rtx_def*, unsigned int, long*, tree_node**, int) ../../gcc/gcc/asan.c:1500 0xaa53ff expand_used_vars ../../gcc/gcc/cfgexpand.c:2273 0xaa6d13 execute ../../gcc/gcc/cfgexpand.c:6268 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.