diff options
author | Jason Merrill <jason@yorick.cygnus.com> | 1998-08-17 16:29:17 +0000 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 1998-08-17 12:29:17 -0400 |
commit | 287662c58d04ac37d8cd4730e377860abf1328df (patch) | |
tree | f9ea4292525b8104d3d05fe63d1401a8123ec65d /gcc/cp | |
parent | 0d2a8b1b82b35370545d9fe9784d466314a9adf2 (diff) | |
download | gcc-287662c58d04ac37d8cd4730e377860abf1328df.zip gcc-287662c58d04ac37d8cd4730e377860abf1328df.tar.gz gcc-287662c58d04ac37d8cd4730e377860abf1328df.tar.bz2 |
init.c (build_offset_ref): Don't mess with error_mark_node.
* init.c (build_offset_ref): Don't mess with error_mark_node.
* lex.c (do_scoped_id): Use cp_error.
* rtti.c (get_tinfo_fn): Don't mess with the context for now.
From-SVN: r21792
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cp/init.c | 2 | ||||
-rw-r--r-- | gcc/cp/lex.c | 3 | ||||
-rw-r--r-- | gcc/cp/rtti.c | 12 |
4 files changed, 9 insertions, 15 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3f3fa49..1379f07 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +1998-08-17 Jason Merrill <jason@yorick.cygnus.com> + + * init.c (build_offset_ref): Don't mess with error_mark_node. + * lex.c (do_scoped_id): Use cp_error. + + * rtti.c (get_tinfo_fn): Don't mess with the context for now. + 1998-08-17 Benjamin Kosnik <bkoz@loony.cygnus.com> * decl.c (grokdeclarator): Allow anonymous types to be cv-qualified. diff --git a/gcc/cp/init.c b/gcc/cp/init.c index 78b6c5d..9d1e05b 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -1529,7 +1529,7 @@ build_offset_ref (type, name) if (TREE_CODE (type) == NAMESPACE_DECL) { t = lookup_namespace_name (type, name); - if (! type_unknown_p (t)) + if (t != error_mark_node && ! type_unknown_p (t)) { mark_used (t); t = convert_from_reference (t); diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c index 3271965..2aae5b9 100644 --- a/gcc/cp/lex.c +++ b/gcc/cp/lex.c @@ -3048,8 +3048,7 @@ do_scoped_id (token, parsing) else { if (IDENTIFIER_NAMESPACE_VALUE (token) != error_mark_node) - error ("undeclared variable `%s' (first use here)", - IDENTIFIER_POINTER (token)); + cp_error ("`::%D' undeclared (first use here)", token); id = error_mark_node; /* Prevent repeated error messages. */ SET_IDENTIFIER_NAMESPACE_VALUE (token, error_mark_node); diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c index a86d6ed..0087bc3 100644 --- a/gcc/cp/rtti.c +++ b/gcc/cp/rtti.c @@ -369,18 +369,6 @@ get_tinfo_fn (type) DECL_MUTABLE_P (d) = 1; TREE_TYPE (name) = copy_to_permanent (type); - /* We set DECL_CONTEXT for the benefit of backend stuff that wants to - know what type this artificial function is associated with. dllexport - handling, for instance. This is a kludge, and the - DECL_NO_STATIC_CHAIN bit is necessary to keep local classes from - breaking. The DECL_IGNORED_P bit keeps dwarf2 from breaking. */ - if (IS_AGGR_TYPE (type)) - { - DECL_CONTEXT (d) = type; - DECL_NO_STATIC_CHAIN (d) = 1; - DECL_IGNORED_P (d) = 1; - } - pushdecl_top_level (d); make_function_rtl (d); assemble_external (d); |