4.8.0-0.4
This commit is contained in:
parent
95108be4ed
commit
1f0b14bc67
52
gcc48-pr56022.patch
Normal file
52
gcc48-pr56022.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
2013-01-21 Martin Jambor <mjambor@suse.cz>
|
||||||
|
|
||||||
|
PR middle-end/56022
|
||||||
|
* function.c (allocate_struct_function): Call
|
||||||
|
invoke_set_current_function_hook earlier.
|
||||||
|
|
||||||
|
* gcc.target/i386/pr56022.c: New test.
|
||||||
|
|
||||||
|
--- gcc/function.c
|
||||||
|
+++ gcc/function.c
|
||||||
|
@@ -4479,7 +4479,6 @@ get_last_funcdef_no (void)
|
||||||
|
void
|
||||||
|
allocate_struct_function (tree fndecl, bool abstract_p)
|
||||||
|
{
|
||||||
|
- tree result;
|
||||||
|
tree fntype = fndecl ? TREE_TYPE (fndecl) : NULL_TREE;
|
||||||
|
|
||||||
|
cfun = ggc_alloc_cleared_function ();
|
||||||
|
@@ -4498,8 +4497,13 @@ allocate_struct_function (tree fndecl, b
|
||||||
|
DECL_STRUCT_FUNCTION (fndecl) = cfun;
|
||||||
|
cfun->decl = fndecl;
|
||||||
|
current_function_funcdef_no = get_next_funcdef_no ();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ invoke_set_current_function_hook (fndecl);
|
||||||
|
|
||||||
|
- result = DECL_RESULT (fndecl);
|
||||||
|
+ if (fndecl != NULL_TREE)
|
||||||
|
+ {
|
||||||
|
+ tree result = DECL_RESULT (fndecl);
|
||||||
|
if (!abstract_p && aggregate_value_p (result, fndecl))
|
||||||
|
{
|
||||||
|
#ifdef PCC_STATIC_STRUCT_RETURN
|
||||||
|
@@ -4518,8 +4522,6 @@ allocate_struct_function (tree fndecl, b
|
||||||
|
but is this worth the hassle? */
|
||||||
|
cfun->can_throw_non_call_exceptions = flag_non_call_exceptions;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- invoke_set_current_function_hook (fndecl);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* This is like allocate_struct_function, but pushes a new cfun for FNDECL
|
||||||
|
--- gcc/testsuite/gcc.target/i386/pr56022.c
|
||||||
|
+++ gcc/testsuite/gcc.target/i386/pr56022.c
|
||||||
|
@@ -0,0 +1,7 @@
|
||||||
|
+/* { dg-do compile } */
|
||||||
|
+/* { dg-options "-mavx" } */
|
||||||
|
+
|
||||||
|
+typedef float __m256 __attribute__ ((__vector_size__ (32), __may_alias__));
|
||||||
|
+__attribute__((target("no-avx"))) static int currentImplementationSupported()
|
||||||
|
+{}
|
||||||
|
+__m256 foo0(__m256 a) {}
|
Loading…
Reference in New Issue
Block a user