mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-21 00:21:03 +08:00
re PR c++/54988 (fpmath=sse target pragma causes inlining failure because of target specific option mismatch)
PR c++/54988 * decl2.c (cplus_decl_attributes): Don't return early if attributes is NULL. * c-c++-common/pr54988.c: New test. From-SVN: r192722
This commit is contained in:
parent
4b671e64d4
commit
0065c7ebdf
@ -1,3 +1,9 @@
|
||||
2012-10-23 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/54988
|
||||
* decl2.c (cplus_decl_attributes): Don't return early
|
||||
if attributes is NULL.
|
||||
|
||||
2012-10-23 Michael Matz <matz@suse.de>
|
||||
|
||||
* tree-ssa-operands.h (struct def_optype_d, def_optype_p): Remove.
|
||||
|
@ -1309,8 +1309,7 @@ void
|
||||
cplus_decl_attributes (tree *decl, tree attributes, int flags)
|
||||
{
|
||||
if (*decl == NULL_TREE || *decl == void_type_node
|
||||
|| *decl == error_mark_node
|
||||
|| attributes == NULL_TREE)
|
||||
|| *decl == error_mark_node)
|
||||
return;
|
||||
|
||||
if (processing_template_decl)
|
||||
@ -1319,8 +1318,6 @@ cplus_decl_attributes (tree *decl, tree attributes, int flags)
|
||||
return;
|
||||
|
||||
save_template_attributes (&attributes, decl);
|
||||
if (attributes == NULL_TREE)
|
||||
return;
|
||||
}
|
||||
|
||||
cp_check_const_attributes (attributes);
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-10-23 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/54988
|
||||
* c-c++-common/pr54988.c: New test.
|
||||
|
||||
2012-10-23 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* gcc.dg/tree-prof/peel-1.c: New testcase.
|
||||
|
20
gcc/testsuite/c-c++-common/pr54988.c
Normal file
20
gcc/testsuite/c-c++-common/pr54988.c
Normal file
@ -0,0 +1,20 @@
|
||||
/* PR c++/54988 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2" } */
|
||||
/* { dg-additional-options "-msse2" { target { i?86-*-* x86_64-*-* } } } */
|
||||
|
||||
#if defined(__i386__) || defined(__x86_64__)
|
||||
#pragma GCC target "fpmath=sse"
|
||||
#endif
|
||||
|
||||
static inline __attribute__ ((always_inline)) int
|
||||
foo (int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
|
||||
int
|
||||
bar (int x)
|
||||
{
|
||||
return foo (x);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user