aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authoramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>1998-06-16 12:36:14 +0000
committeramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>1998-06-16 12:36:14 +0000
commitae8eafe077976dc68bf29ce6c36df3b1e7525552 (patch)
treee0e3f9d3a47e23326ab99cbd617d3095ac001e55 /gcc
parent8b74461cc1863b0bcd2e6c61b6c66ee61553b13e (diff)
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20524 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog7
-rw-r--r--gcc/cp/decl.c2
-rw-r--r--gcc/cp/error.c4
3 files changed, 10 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 72943d15212..3372b193377 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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.
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 20dfdf78286..674d668471b 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -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);
}
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index 4862d64894c..d4dc054c970 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -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);