decl.c (grokvardecl): Don't build external assembler names for TYPENAMEs in other namespaces as there...

1998-06-16  Andrew MacLeod  <amacleod@cygnus.com>
	* decl.c (grokvardecl): Don't build external assembler names for
	TYPENAMEs in other namespaces as there is no declarator.
	* error.c (cp_file_of, cp_line_of): Don't extract file or line number
	info from DECL_CONTEXT if it is NULL.

From-SVN: r20524
This commit is contained in:
Andrew MacLeod 1998-06-16 12:36:14 +00:00 committed by Andrew Macleod
parent 6f6074ea6f
commit 741f283993
3 changed files with 10 additions and 3 deletions

View file

@ -1,3 +1,10 @@
1998-06-16 Andrew MacLeod <amacleod@cygnus.com>
* decl.c (grokvardecl): Don't build external assembler names for
TYPENAMEs in other namespaces as there is no declarator.
* error.c (cp_file_of, cp_line_of): Don't extract file or line number
info from DECL_CONTEXT if it is NULL.
1998-06-16 Jason Merrill <jason@yorick.cygnus.com>
* call.c (check_dtor_name): Split out.

View file

@ -7848,7 +7848,7 @@ grokvardecl (type, declarator, specbits_in, initialized, constp, in_namespace)
{
tree context = in_namespace ? in_namespace : current_namespace;
decl = build_decl (VAR_DECL, declarator, complete_type (type));
if (context != global_namespace)
if (context != global_namespace && declarator)
DECL_ASSEMBLER_NAME (decl) = build_static_name (context,
declarator);
}

View file

@ -1811,7 +1811,7 @@ char *
cp_file_of (t)
tree t;
{
if (TREE_CODE (t) == PARM_DECL)
if (TREE_CODE (t) == PARM_DECL && DECL_CONTEXT (t))
return DECL_SOURCE_FILE (DECL_CONTEXT (t));
else if (TREE_CODE_CLASS (TREE_CODE (t)) == 't')
return DECL_SOURCE_FILE (TYPE_MAIN_DECL (t));
@ -1824,7 +1824,7 @@ cp_line_of (t)
tree t;
{
int line = 0;
if (TREE_CODE (t) == PARM_DECL)
if (TREE_CODE (t) == PARM_DECL && DECL_CONTEXT (t))
line = DECL_SOURCE_LINE (DECL_CONTEXT (t));
if (TREE_CODE (t) == TYPE_DECL && DECL_ARTIFICIAL (t))
t = TREE_TYPE (t);