re PR debug/58315 (Excessive memory use with -g)
PR debug/58315 * decl.c (start_preparsed_function): Use create_artificial_label for cdtor_label. From-SVN: r220974
This commit is contained in:
parent
f66172c410
commit
9b276dada8
3 changed files with 26 additions and 3 deletions
|
@ -1,3 +1,9 @@
|
|||
2015-02-25 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR debug/58315
|
||||
* decl.c (start_preparsed_function): Use create_artificial_label
|
||||
for cdtor_label.
|
||||
|
||||
2015-02-17 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
|
|
|
@ -13721,9 +13721,7 @@ start_preparsed_function (tree decl1, tree attrs, int flags)
|
|||
|| (DECL_CONSTRUCTOR_P (decl1)
|
||||
&& targetm.cxx.cdtor_returns_this ()))
|
||||
{
|
||||
cdtor_label = build_decl (input_location,
|
||||
LABEL_DECL, NULL_TREE, void_type_node);
|
||||
DECL_CONTEXT (cdtor_label) = current_function_decl;
|
||||
cdtor_label = create_artificial_label (input_location);
|
||||
}
|
||||
|
||||
start_fname_decls ();
|
||||
|
|
19
gcc/testsuite/g++.dg/tree-ssa/deleted-label1.C
Normal file
19
gcc/testsuite/g++.dg/tree-ssa/deleted-label1.C
Normal file
|
@ -0,0 +1,19 @@
|
|||
// PR debug/58315
|
||||
// { dg-options "-O -g -fdump-tree-einline" }
|
||||
// { dg-final { scan-tree-dump-not "DEBUG <L0>" "einline" } }
|
||||
// { dg-final { cleanup-tree-dump "einline" } }
|
||||
|
||||
// We used to emit useless NOTE_INSN_DELETED_DEBUG_LABELs for the
|
||||
// artificial cdtor_label.
|
||||
|
||||
struct A
|
||||
{
|
||||
~A() {}
|
||||
};
|
||||
|
||||
struct B: A {};
|
||||
|
||||
int main()
|
||||
{
|
||||
A a;
|
||||
}
|
Loading…
Add table
Reference in a new issue