diff options
author | Tom de Vries <tom@codesourcery.com> | 2015-04-24 14:18:57 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2015-04-24 14:18:57 +0000 |
commit | 1c3f3851dd0fb0d145fd3982a13a5cac0672ed27 (patch) | |
tree | 46ab957b576a1d4e3eb457806da86e3822e4e2fe | |
parent | 97afef00ba922009a05cff1293c1ff3f35093ad6 (diff) | |
download | gcc-1c3f3851dd0fb0d145fd3982a13a5cac0672ed27.zip gcc-1c3f3851dd0fb0d145fd3982a13a5cac0672ed27.tar.gz gcc-1c3f3851dd0fb0d145fd3982a13a5cac0672ed27.tar.bz2 |
Replace g++.dg/pr65802.C with gcc.dg/pr65802.c
2015-04-24 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/65802
* g++.dg/pr65802.C: Move to ...
* gcc.dg/pr65802.c: ... here. Add -fexceptions to dg-options. Include
stdarg.h. Rewrite for C.
(fn1): Use va_list and va_arg. Make variable args function. Add use of
va_start and va_end. Remove unnecessary inline asm.
From-SVN: r222413
-rw-r--r-- | gcc/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/pr65802.C | 29 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr65802.c | 28 |
3 files changed, 37 insertions, 29 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4b2f62b..3e2b154 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2015-04-24 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/65802 + * g++.dg/pr65802.C: Move to ... + * gcc.dg/pr65802.c: ... here. Add -fexceptions to dg-options. Include + stdarg.h. Rewrite for C. + (fn1): Use va_list and va_arg. Make variable args function. Add use of + va_start and va_end. Remove unnecessary inline asm. + 2015-04-24 Uros Bizjak <ubizjak@gmail.com> Wei Mi <wmi@google.com> diff --git a/gcc/testsuite/g++.dg/pr65802.C b/gcc/testsuite/g++.dg/pr65802.C deleted file mode 100644 index 26e5317..0000000 --- a/gcc/testsuite/g++.dg/pr65802.C +++ /dev/null @@ -1,29 +0,0 @@ -// { dg-do compile } -// { dg-options "-O0" } - -typedef int tf (); - -struct S -{ - tf m_fn1; -} a; - -void -fn1 () -{ - try - { - __builtin_va_list c; - { - int *d = __builtin_va_arg (c, int *); - int **e = &d; - __asm__("" : "=d"(e)); - a.m_fn1 (); - } - a.m_fn1 (); - } - catch (...) - { - - } -} diff --git a/gcc/testsuite/gcc.dg/pr65802.c b/gcc/testsuite/gcc.dg/pr65802.c new file mode 100644 index 0000000..fcec234 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr65802.c @@ -0,0 +1,28 @@ +/* { dg-do compile } */ +/* { dg-options "-O0 -fexceptions" } */ + +#include <stdarg.h> + +struct S +{ + int (*m_fn1) (void); +} a; + +void +fn1 (int d, ...) +{ + va_list c; + va_start (c, d); + + { + int *d = va_arg (c, int *); + + int **e = &d; + + a.m_fn1 (); + } + + a.m_fn1 (); + + va_end (c); +} |