diff options
author | Tom de Vries <tom@codesourcery.com> | 2015-04-21 08:43:07 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2015-04-21 08:43:07 +0000 |
commit | 22fe969f2c42d8ac8e978e8454625f176b8fba76 (patch) | |
tree | 4611b9ca22875a2d374a8a6f622f9877d0e1b620 /gcc | |
parent | efb25f54436e07d430f55fd3a17eae4578fb18fc (diff) | |
download | gcc-22fe969f2c42d8ac8e978e8454625f176b8fba76.zip gcc-22fe969f2c42d8ac8e978e8454625f176b8fba76.tar.gz gcc-22fe969f2c42d8ac8e978e8454625f176b8fba76.tar.bz2 |
Mark ifn_va_arg with ECF_NOTHROW
2015-04-21 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/65802
* internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
* g++.dg/pr65802.C: New test.
From-SVN: r222259
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/internal-fn.def | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/pr65802.C | 29 |
4 files changed, 40 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 66856a8..64e9aae 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-04-21 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/65802 + * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags. + 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH): diff --git a/gcc/internal-fn.def b/gcc/internal-fn.def index f557c64..7e19313 100644 --- a/gcc/internal-fn.def +++ b/gcc/internal-fn.def @@ -62,4 +62,4 @@ DEF_INTERNAL_FN (ADD_OVERFLOW, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL) DEF_INTERNAL_FN (SUB_OVERFLOW, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL) DEF_INTERNAL_FN (MUL_OVERFLOW, ECF_CONST | ECF_LEAF | ECF_NOTHROW, NULL) DEF_INTERNAL_FN (TSAN_FUNC_EXIT, ECF_NOVOPS | ECF_LEAF | ECF_NOTHROW, NULL) -DEF_INTERNAL_FN (VA_ARG, 0, NULL) +DEF_INTERNAL_FN (VA_ARG, ECF_NOTHROW, NULL) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index db95591..4ca31e0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-04-21 Tom de Vries <tom@codesourcery.com> + + PR tree-optimization/65802 + * g++.dg/pr65802.C: New test. + 2015-04-21 Bin Cheng <bin.cheng@arm.com> PR testsuite/65767 diff --git a/gcc/testsuite/g++.dg/pr65802.C b/gcc/testsuite/g++.dg/pr65802.C new file mode 100644 index 0000000..26e5317 --- /dev/null +++ b/gcc/testsuite/g++.dg/pr65802.C @@ -0,0 +1,29 @@ +// { 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 (...) + { + + } +} |