re PR c++/16276 ([3.4 only] G++ generates local references to linkonce sections)

2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR c++/16276
	* g++.dg/rtti/tinfo1.C: New file.

From-SVN: r84261
This commit is contained in:
H.J. Lu 2004-07-08 04:58:11 +00:00 committed by H.J. Lu
parent 89b578be68
commit 7ac224c1e4
2 changed files with 45 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2004-07-07 H.J. Lu <hongjiu.lu@intel.com>
PR c++/16276
* g++.dg/rtti/tinfo1.C: New file.
2004-07-07 Eric Christopher <echristo@redhat.com>
* gcc.c-torture/compile/20020210-1.c: xfail with optimization.

View File

@ -0,0 +1,40 @@
// Test if a local definition is in a linkonce/comdat section.
// { dg-do compile }
// { dg-final { scan-assembler "_ZTIP9CTemplateIhE:" } }
// { dg-final { scan-assembler-not ".globl\[ \]+_ZTIP9CTemplateIhE" } }
// { dg-final { scan-assembler-not ".section\[^\n\r\]*_ZTIP9CTemplateIhE\[^\n\r\]*" } }
namespace std
{
class type_info
{
protected:
const char *__name;
protected:
explicit type_info(const char *__n): __name(__n) { }
public:
const char* name() const
{ return __name; }
};
}
template<class TYPE>
class CTemplate
{
};
class CSecondModule {
public:
CSecondModule();
private:
const CTemplate<unsigned char> *m_variable; typedef CTemplate<unsigned char> m_variable_type;
};
CSecondModule::CSecondModule()
{
typeid(const_cast<m_variable_type *>(m_variable)).name() != 0;
}