------- Comment #7 from jakub at gcc dot gnu dot org 2009-03-17 08:52 ------- Created an attachment (id=17472) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17472&action=view) gcc44-local-imported-decl.patch
Incremental patch to emit DW_TAG_imported_declaration DIEs (other than namespace aliases) in the right lexical blocks. Possible testcase for gdb: namespace A { int i = 1; int j = 2; } namespace B { int k = 3; } int k = 13; void foo () { using namespace A; i++; j++; k++; { using B::k; k++; } } template <int N> void bar () { using namespace A; i++; j++; k++; { using B::k; k++; } } int main () { foo (); bar<0> (); bar<6> (); } Concerning: "We won't be going through the USING_STMT code path in case of We won't be going through the USING_STMT code path in case of namespace aliases, sorry. My last comment was irrelevant." we really should be going through USING_STMT or something similar for namespace aliases as well, see PR37890. Given that namespace aliases are just emitted using gen_namespace_die, perhaps just adding the NAMESPACE_DECL to BLOCK_VARS would be sufficient. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39471