mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-28 21:11:14 +08:00
re PR bootstrap/79255 (PGO bootstrap fails on x86_64/ppc64le building Ada)
PR debug/79255 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is a FUNCTION_DECL, pass it as decl instead of origin to process_scope_var. * gcc.dg/pr79255.c: New test. From-SVN: r246622
This commit is contained in:
parent
6f3af35628
commit
eee3756de3
@ -1,3 +1,10 @@
|
||||
2017-03-31 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR debug/79255
|
||||
* dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
|
||||
a FUNCTION_DECL, pass it as decl instead of origin to
|
||||
process_scope_var.
|
||||
|
||||
2017-03-31 Alexander Monakov <amonakov@ispras.ru>
|
||||
|
||||
* config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
|
||||
|
@ -24861,8 +24861,13 @@ decls_for_scope (tree stmt, dw_die_ref context_die)
|
||||
if we've done it once already. */
|
||||
if (! early_dwarf)
|
||||
for (i = 0; i < BLOCK_NUM_NONLOCALIZED_VARS (stmt); i++)
|
||||
process_scope_var (stmt, NULL, BLOCK_NONLOCALIZED_VAR (stmt, i),
|
||||
context_die);
|
||||
{
|
||||
decl = BLOCK_NONLOCALIZED_VAR (stmt, i);
|
||||
if (TREE_CODE (decl) == FUNCTION_DECL)
|
||||
process_scope_var (stmt, decl, NULL_TREE, context_die);
|
||||
else
|
||||
process_scope_var (stmt, NULL_TREE, decl, context_die);
|
||||
}
|
||||
}
|
||||
|
||||
/* Even if we're at -g1, we need to process the subblocks in order to get
|
||||
|
@ -1,5 +1,8 @@
|
||||
2017-03-31 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR debug/79255
|
||||
* gcc.dg/pr79255.c: New test.
|
||||
|
||||
PR c++/79572
|
||||
* g++.dg/ubsan/null-8.C: New test.
|
||||
|
||||
|
21
gcc/testsuite/gcc.dg/pr79255.c
Normal file
21
gcc/testsuite/gcc.dg/pr79255.c
Normal file
@ -0,0 +1,21 @@
|
||||
/* PR bootstrap/79255 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -g -fno-toplevel-reorder -Wno-attributes" } */
|
||||
|
||||
static inline __attribute__((always_inline)) int foo (int x);
|
||||
|
||||
int
|
||||
baz (void)
|
||||
{
|
||||
return foo (3) + foo (6) + foo (9);
|
||||
}
|
||||
|
||||
static inline __attribute__((always_inline)) int
|
||||
foo (int x)
|
||||
{
|
||||
auto inline int __attribute__((noinline)) bar (int x)
|
||||
{
|
||||
return x + 3;
|
||||
}
|
||||
return bar (x) + bar (x + 2);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user