aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2015-01-16 18:14:37 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2015-01-16 18:14:37 +0000
commita220c9da9ea61712651df770e4699404f83e77da (patch)
treeebd2d2401e0431860255c784629dda9323d012b0 /gcc
parent55d9ceab20a8043ff8444aac8f243dacf04c8138 (diff)
downloadgcc-a220c9da9ea61712651df770e4699404f83e77da.zip
gcc-a220c9da9ea61712651df770e4699404f83e77da.tar.gz
gcc-a220c9da9ea61712651df770e4699404f83e77da.tar.bz2
[ARM] PR 62066: Call va_end on early return from va_list processing function
PR target/62066 * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before early return 0. From-SVN: r219763
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/arm-builtins.c3
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4c7441d..f95d05d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ PR target/62066
+ * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
+ early return 0.
+
2015-01-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
* sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
diff --git a/gcc/config/arm/arm-builtins.c b/gcc/config/arm/arm-builtins.c
index 37f27d7..7a45113 100644
--- a/gcc/config/arm/arm-builtins.c
+++ b/gcc/config/arm/arm-builtins.c
@@ -2064,7 +2064,10 @@ arm_expand_neon_args (rtx target, machine_mode map_mode, int fcode,
case NEON_ARG_MEMORY:
/* Check if expand failed. */
if (op[argc] == const0_rtx)
+ {
+ va_end (ap);
return 0;
+ }
gcc_assert (MEM_P (op[argc]));
PUT_MODE (op[argc], mode[argc]);
/* ??? arm_neon.h uses the same built-in functions for signed