S/390: Fix PR84295
gcc/ChangeLog: 2018-02-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> PR target/PR84295 * config/s390/s390.c (s390_set_current_function): Invoke s390_indirect_branch_settings also if fndecl didn't change. gcc/testsuite/ChangeLog: 2018-02-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> PR target/PR84295 * gcc.target/s390/pr84295.c: New test. From-SVN: r257522
This commit is contained in:
parent
0805a34d5f
commit
c704706201
@ -1,3 +1,9 @@
|
||||
2018-02-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
|
||||
|
||||
PR target/PR84295
|
||||
* config/s390/s390.c (s390_set_current_function): Invoke
|
||||
s390_indirect_branch_settings also if fndecl didn't change.
|
||||
|
||||
2018-02-09 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* config/rs6000/rs6000.md (blockage): Set length to zero.
|
||||
|
@ -16135,7 +16135,10 @@ s390_set_current_function (tree fndecl)
|
||||
several times in the course of compiling a function, and we don't want to
|
||||
slow things down too much or call target_reinit when it isn't safe. */
|
||||
if (fndecl == s390_previous_fndecl)
|
||||
return;
|
||||
{
|
||||
s390_indirect_branch_settings (fndecl);
|
||||
return;
|
||||
}
|
||||
|
||||
tree old_tree;
|
||||
if (s390_previous_fndecl == NULL_TREE)
|
||||
|
@ -1,3 +1,8 @@
|
||||
2018-02-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
|
||||
|
||||
PR target/PR84295
|
||||
* gcc.target/s390/pr84295.c: New test.
|
||||
|
||||
2018-02-09 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/77522
|
||||
|
14
gcc/testsuite/gcc.target/s390/pr84295.c
Normal file
14
gcc/testsuite/gcc.target/s390/pr84295.c
Normal file
@ -0,0 +1,14 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O3 -march=z900 -fgnu89-inline --save-temps -mfunction-return-reg=thunk -mindirect-branch-table" } */
|
||||
|
||||
extern void foo (void);
|
||||
extern __inline void foo (void) {}
|
||||
void foo (void) {}
|
||||
|
||||
/* { dg-final { scan-assembler-times "jg\t__s390_indirect_jump" 1 } } */
|
||||
/* { dg-final { scan-assembler "ex\t" } } */
|
||||
|
||||
/* { dg-final { scan-assembler-not "section\t.s390_indirect_jump" } } */
|
||||
/* { dg-final { scan-assembler-not "section\t.s390_indirect_call" } } */
|
||||
/* { dg-final { scan-assembler "section\t.s390_return_reg" } } */
|
||||
/* { dg-final { scan-assembler-not "section\t.s390_return_mem" } } */
|
Loading…
x
Reference in New Issue
Block a user