From: Nathan Sidwell Date: Tue, 27 Apr 1999 09:41:33 +0000 (+0000) Subject: * rtti.c (build_x_typeid): Check rtti is enabled. X-Git-Tag: prereleases/gcc-2.95-test~724 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f915e937d9428193c15fb01d0d337d8eaeaecf1a;p=thirdparty%2Fgcc.git * rtti.c (build_x_typeid): Check rtti is enabled. From-SVN: r26675 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3124a49a6dcd..2d6e496d90df 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +1999-04-27 Nathan Sidwell + + * rtti.c (build_x_typeid): Check rtti is enabled. + 1999-04-26 Mark Mitchell * search.c (is_subobject_of_p): Make sure we're looking at the diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c index 79fb8006ce88..e0ce5cd86666 100644 --- a/gcc/cp/rtti.c +++ b/gcc/cp/rtti.c @@ -261,9 +261,15 @@ build_x_typeid (exp) tree exp; { tree cond = NULL_TREE; - tree type = TREE_TYPE (tinfo_fn_type); + tree type; int nonnull; + if (! flag_rtti) + { + error ("cannot use typeid with -fno-rtti"); + return error_mark_node; + } + if (TYPE_SIZE (type_info_type_node) == NULL_TREE) { error ("must #include before using typeid"); @@ -288,6 +294,7 @@ build_x_typeid (exp) if (exp == error_mark_node) return error_mark_node; + type = TREE_TYPE (tinfo_fn_type); exp = build_call (exp, type, NULL_TREE); if (cond) diff --git a/gcc/testsuite/g++.old-deja/g++.other/rtti5.C b/gcc/testsuite/g++.old-deja/g++.other/rtti5.C new file mode 100644 index 000000000000..38a5146e8c90 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/rtti5.C @@ -0,0 +1,14 @@ +// Build don't link: +// Special g++ Options: -fno-rtti + +// Copyright (C) 1999 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 9 Apr 1999 +// derrived from bug report from Alexander Zvyagin + +// check we don't die with disabled rtti + + +int main(void) { + int i; + typeid(i); // ERROR - rtti disabled +}