diff options
author | Maxim Ostapenko <m.ostapenko@samsung.com> | 2017-07-13 07:48:49 +0000 |
---|---|---|
committer | Maxim Ostapenko <chefmax@gcc.gnu.org> | 2017-07-13 10:48:49 +0300 |
commit | 8f4956cadfef8fd4f43fecca65070428a504188d (patch) | |
tree | cbcbf293d29c470c0cd5676d14c314239c404163 /gcc/builtins.c | |
parent | 6eecb2932650cab7b3a19cce9e0cc90daf093f12 (diff) | |
download | gcc-8f4956cadfef8fd4f43fecca65070428a504188d.zip gcc-8f4956cadfef8fd4f43fecca65070428a504188d.tar.gz gcc-8f4956cadfef8fd4f43fecca65070428a504188d.tar.bz2 |
ASAN: fix ICE in gcc.dg/asan/pr80168.c on aarch64 -mabi=ilp32
gcc/
* asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
during expansion.
* builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
From-SVN: r250176
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index 608993a..2deef72 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -4972,13 +4972,11 @@ static rtx expand_asan_emit_allocas_unpoison (tree exp) { tree arg0 = CALL_EXPR_ARG (exp, 0); - rtx top = expand_expr (arg0, NULL_RTX, GET_MODE (virtual_stack_dynamic_rtx), - EXPAND_NORMAL); + rtx top = expand_expr (arg0, NULL_RTX, ptr_mode, EXPAND_NORMAL); + rtx bot = convert_memory_address (ptr_mode, virtual_stack_dynamic_rtx); rtx ret = init_one_libfunc ("__asan_allocas_unpoison"); ret = emit_library_call_value (ret, NULL_RTX, LCT_NORMAL, ptr_mode, 2, top, - TYPE_MODE (pointer_sized_int_node), - virtual_stack_dynamic_rtx, - TYPE_MODE (pointer_sized_int_node)); + ptr_mode, bot, ptr_mode); return ret; } |