[PR c++/90613] Fix using-decl debug bloat
https://gcc.gnu.org/ml/gcc-patches/2019-08/msg01888.html cp/ PR c++/90613 * name-lookup.c (cp_emit_debug_info): Check for builtins during overload iteration. testsuite/ PR c++/90613 * g++.dg/lookup/using61.C: New. From-SVN: r274991
This commit is contained in:
parent
629c4e52e4
commit
a09b09ccee
@ -1,3 +1,9 @@
|
||||
2019-08-28 Nathan Sidwell <nathan@acm.org>
|
||||
|
||||
PR c++/90613
|
||||
* name-lookup.c (cp_emit_debug_info): Check for builtins during
|
||||
overload iteration.
|
||||
|
||||
2019-08-27 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c++/81676 - bogus -Wunused warnings in constexpr if.
|
||||
|
@ -7455,13 +7455,6 @@ cp_emit_debug_info_for_using (tree t, tree context)
|
||||
if (seen_error ())
|
||||
return;
|
||||
|
||||
/* Ignore this FUNCTION_DECL if it refers to a builtin declaration
|
||||
of a builtin function. */
|
||||
if (TREE_CODE (t) == FUNCTION_DECL
|
||||
&& DECL_EXTERNAL (t)
|
||||
&& fndecl_built_in_p (t))
|
||||
return;
|
||||
|
||||
/* Do not supply context to imported_module_or_decl, if
|
||||
it is a global namespace. */
|
||||
if (context == global_namespace)
|
||||
@ -7469,18 +7462,26 @@ cp_emit_debug_info_for_using (tree t, tree context)
|
||||
|
||||
t = MAYBE_BASELINK_FUNCTIONS (t);
|
||||
|
||||
/* FIXME: Handle TEMPLATE_DECLs. */
|
||||
for (lkp_iterator iter (t); iter; ++iter)
|
||||
{
|
||||
tree fn = *iter;
|
||||
if (TREE_CODE (fn) != TEMPLATE_DECL)
|
||||
{
|
||||
if (building_stmt_list_p ())
|
||||
add_stmt (build_stmt (input_location, USING_STMT, fn));
|
||||
else
|
||||
debug_hooks->imported_module_or_decl (fn, NULL_TREE, context,
|
||||
false, false);
|
||||
}
|
||||
|
||||
if (TREE_CODE (fn) == TEMPLATE_DECL)
|
||||
/* FIXME: Handle TEMPLATE_DECLs. */
|
||||
continue;
|
||||
|
||||
/* Ignore this FUNCTION_DECL if it refers to a builtin declaration
|
||||
of a builtin function. */
|
||||
if (TREE_CODE (fn) == FUNCTION_DECL
|
||||
&& DECL_EXTERNAL (fn)
|
||||
&& fndecl_built_in_p (fn))
|
||||
continue;
|
||||
|
||||
if (building_stmt_list_p ())
|
||||
add_stmt (build_stmt (input_location, USING_STMT, fn));
|
||||
else
|
||||
debug_hooks->imported_module_or_decl (fn, NULL_TREE, context,
|
||||
false, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2019-08-16 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR c++/90613
|
||||
* g++.dg/lookup/using61.C: New.
|
||||
|
||||
2019-08-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||
|
||||
PR middle-end/89544
|
||||
|
8
gcc/testsuite/g++.dg/lookup/using61.C
Normal file
8
gcc/testsuite/g++.dg/lookup/using61.C
Normal file
@ -0,0 +1,8 @@
|
||||
// { dg-options "-gdwarf-2" }
|
||||
/* { dg-skip-if "No Dwarf" { { *-*-aix* hppa*-*-hpux* } && { ! hppa*64*-*-* } } } */
|
||||
|
||||
extern "C" long double nanl(const char *);
|
||||
using ::nanl;
|
||||
|
||||
// We should elide the using for this extern C builtin
|
||||
// { dg-final { scan-assembler-not ".debug_info" } }
|
Loading…
x
Reference in New Issue
Block a user