diff options
author | Joseph Myers <jsm@polyomino.org.uk> | 2004-10-10 02:10:53 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2004-10-10 02:10:53 +0100 |
commit | c69c9b36a97fddbde2112a5f8d50a4aabe13a19a (patch) | |
tree | b2cdffc2d527a8f552bb2e1ff80da8f2e950bad9 /gcc | |
parent | 216a5f1b3fd8bc312748ff226ab5e3c9c2db273c (diff) | |
download | gcc-c69c9b36a97fddbde2112a5f8d50a4aabe13a19a.zip gcc-c69c9b36a97fddbde2112a5f8d50a4aabe13a19a.tar.gz gcc-c69c9b36a97fddbde2112a5f8d50a4aabe13a19a.tar.bz2 |
re PR c/17301 (ICE on wrong usage of __builtin_stdarg_start)
PR c/17301
* builtins.c (expand_builtin_va_start): Check for too few
arguments to va_start.
testsuite:
* gcc.dg/pr17301-1.c: New test.
From-SVN: r88835
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/builtins.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr17301-1.c | 11 |
4 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2437467..f7cfba9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2004-10-10 Joseph S. Myers <jsm@polyomino.org.uk> + PR c/17301 + * builtins.c (expand_builtin_va_start): Check for too few + arguments to va_start. + +2004-10-10 Joseph S. Myers <jsm@polyomino.org.uk> + PR c/17189 * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed fields a pedwarn. Pedwarn here for unnamed structs/unions if diff --git a/gcc/builtins.c b/gcc/builtins.c index 255a47b..b097adf 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -3861,6 +3861,11 @@ expand_builtin_va_start (tree arglist) chain = TREE_CHAIN (arglist); + if (!chain) + { + error ("too few arguments to function %<va_start%>"); + return const0_rtx; + } if (TREE_CHAIN (chain)) error ("too many arguments to function %<va_start%>"); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index dd56e1b..b983c01 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2004-10-10 Joseph S. Myers <jsm@polyomino.org.uk> + PR c/17301 + * gcc.dg/pr17301-1.c: New test. + +2004-10-10 Joseph S. Myers <jsm@polyomino.org.uk> + PR c/17189 * gcc.dg/anon-struct-5.c: New test. diff --git a/gcc/testsuite/gcc.dg/pr17301-1.c b/gcc/testsuite/gcc.dg/pr17301-1.c new file mode 100644 index 0000000..353f429 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr17301-1.c @@ -0,0 +1,11 @@ +/* Invalid use of __builtin_stdarg_start should not cause an ICE. Bug + 17301. */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +int +write_format (char *format, ...) +{ + __builtin_va_list p; + __builtin_stdarg_start (p); /* { dg-error "error: too few arguments to function 'va_start'" } */ +} |