re PR target/85984 (ICE in create_pseudo_cfg, at dwarf2cfi.c:2874)
PR target/85984 * bb-reorder.c (pass_partition_blocks::gate): Return false for functions with naked attribute. * gcc.target/i386/pr85984.c: New test. From-SVN: r261037
This commit is contained in:
parent
8b8003ed54
commit
28c84b6247
4 changed files with 32 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2018-05-31 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/85984
|
||||
* bb-reorder.c (pass_partition_blocks::gate): Return false for
|
||||
functions with naked attribute.
|
||||
|
||||
2018-05-31 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/i386/sse.md (avx_vec_concat<mode>):
|
||||
|
|
|
@ -2928,8 +2928,8 @@ pass_partition_blocks::gate (function *fun)
|
|||
{
|
||||
/* The optimization to partition hot/cold basic blocks into separate
|
||||
sections of the .o file does not work well with linkonce or with
|
||||
user defined section attributes. Don't call it if either case
|
||||
arises. */
|
||||
user defined section attributes or with naked attribute. Don't call
|
||||
it if either case arises. */
|
||||
return (flag_reorder_blocks_and_partition
|
||||
&& optimize
|
||||
/* See pass_reorder_blocks::gate. We should not partition if
|
||||
|
@ -2937,6 +2937,7 @@ pass_partition_blocks::gate (function *fun)
|
|||
&& optimize_function_for_speed_p (fun)
|
||||
&& !DECL_COMDAT_GROUP (current_function_decl)
|
||||
&& !lookup_attribute ("section", DECL_ATTRIBUTES (fun->decl))
|
||||
&& !lookup_attribute ("naked", DECL_ATTRIBUTES (fun->decl))
|
||||
/* Workaround a bug in GDB where read_partial_die doesn't cope
|
||||
with DIEs with DW_AT_ranges, see PR81115. */
|
||||
&& !(in_lto_p && MAIN_NAME_P (DECL_NAME (fun->decl))));
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2018-05-31 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/85984
|
||||
* gcc.target/i386/pr85984.c: New test.
|
||||
|
||||
2018-05-31 Martin Sebor <msebor@redhat.com>
|
||||
|
||||
PR c/82063
|
||||
|
|
18
gcc/testsuite/gcc.target/i386/pr85984.c
Normal file
18
gcc/testsuite/gcc.target/i386/pr85984.c
Normal file
|
@ -0,0 +1,18 @@
|
|||
/* PR target/85984 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2" } */
|
||||
|
||||
int foo (void);
|
||||
|
||||
void __attribute__((naked))
|
||||
bar (void)
|
||||
{
|
||||
if (!foo ())
|
||||
__builtin_abort ();
|
||||
}
|
||||
|
||||
void
|
||||
baz (void)
|
||||
{
|
||||
bar ();
|
||||
}
|
Loading…
Add table
Reference in a new issue