re PR libstdc++/34680 (Unconditional use of dynamic_cast in locale_facets.tcc breaks compilation with -fno-rtti)

gcc/
2008-01-06  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/34680
	* c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
	* doc/cpp.texi ([Common Predefined Macros]): Document.

gcc/testsuite/
2008-01-06  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/34680
	* g++.dg/rtti/predefined-rtti-macro-1.C: New.
	* g++.dg/rtti/predefined-rtti-macro-2.C: Likewise.

From-SVN: r131366
This commit is contained in:
Paolo Carlini 2008-01-06 22:30:32 +00:00 committed by Paolo Carlini
parent 5989df83be
commit ba551ec277
5 changed files with 38 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2008-01-06 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/34680
* c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
* doc/cpp.texi ([Common Predefined Macros]): Document.
2008-01-06 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in

View File

@ -449,6 +449,8 @@ c_cpp_builtins (cpp_reader *pfile)
cpp_define (pfile, "__GXX_WEAK__=0");
if (warn_deprecated)
cpp_define (pfile, "__DEPRECATED");
if (flag_rtti)
cpp_define (pfile, "__GXX_RTTI");
if (cxx_dialect == cxx0x)
cpp_define (pfile, "__GXX_EXPERIMENTAL_CXX0X__");
}

View File

@ -1,3 +1,9 @@
2008-01-06 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/34680
* g++.dg/rtti/predefined-rtti-macro-1.C: New.
* g++.dg/rtti/predefined-rtti-macro-2.C: Likewise.
2008-01-06 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34545

View File

@ -0,0 +1,12 @@
// { dg-do compile }
struct A { virtual ~A() { }; };
struct B : A { };
void f(B* bp)
{
bp =
#ifdef __GXX_RTTI
dynamic_cast<B*>(static_cast<A*>(0));
#endif
}

View File

@ -0,0 +1,12 @@
// { dg-do compile }
// { dg-options "-fno-rtti" }
struct B { };
void f(B* bp)
{
bp =
#ifndef __GXX_RTTI
static_cast<B*>(0);
#endif
}