re PR libstdc++/20647 (Wrong typeid for incomplete types)
cp/ PR c++/20647 * rtti.c (tinfo_base_init): The type info string is always global. testsuite/ PR c++/20647 * g++.dg/abi/rtti3.C: New. From-SVN: r117957
This commit is contained in:
parent
59edb6b4b4
commit
6e4be1fa8c
|
@ -1,3 +1,8 @@
|
|||
2006-10-22 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
PR c++/20647
|
||||
* rtti.c (tinfo_base_init): The type info string is always global.
|
||||
|
||||
2006-10-20 Lee Millward <lee.millward@codesourcery.com>
|
||||
Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
|
|
|
@ -824,13 +824,7 @@ tinfo_base_init (tinfo_s *ti, tree target)
|
|||
TREE_STATIC (name_decl) = 1;
|
||||
DECL_EXTERNAL (name_decl) = 0;
|
||||
DECL_TINFO_P (name_decl) = 1;
|
||||
if (involves_incomplete_p (target))
|
||||
{
|
||||
TREE_PUBLIC (name_decl) = 0;
|
||||
DECL_INTERFACE_KNOWN (name_decl) = 1;
|
||||
}
|
||||
else
|
||||
set_linkage_according_to_type (target, name_decl);
|
||||
set_linkage_according_to_type (target, name_decl);
|
||||
import_export_decl (name_decl);
|
||||
DECL_INITIAL (name_decl) = name_string;
|
||||
mark_used (name_decl);
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2006-10-22 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
PR c++/20647
|
||||
* g++.dg/abi/rtti3.C: New.
|
||||
|
||||
2006-10-21 Uros Bizjak <uros@kss-loka.si>
|
||||
|
||||
PR middle-end/28252
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
// PR 20647, we must emit the typeinfo's string as weak, but not the
|
||||
// necessarily the type info object
|
||||
|
||||
// { dg-require-weak "" }
|
||||
// { dg-final { scan-assembler ".weak\[ \t\]_?_ZTSPP1A" } }
|
||||
// { dg-final { scan-assembler-not ".weak\[ \t\]_?_ZTIPP1A" } }
|
||||
|
||||
struct A;
|
||||
|
||||
void Foo ()
|
||||
{
|
||||
throw (A **)0;
|
||||
}
|
Loading…
Reference in New Issue