summaryrefslogtreecommitdiffstats
path: root/gcc/cp/decl.c
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2001-06-08 02:05:04 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2001-06-08 02:05:04 +0000
commit6ac91b4ab4b828fa7d00e6c820d1f802fa103327 (patch)
tree903d8b6195abbfea4c3fb6e47c8f4811f8fa3de7 /gcc/cp/decl.c
parent3facc189452f9eb0eb6d4876b74cdf8072fa4d40 (diff)
downloadppe42-gcc-6ac91b4ab4b828fa7d00e6c820d1f802fa103327.tar.gz
ppe42-gcc-6ac91b4ab4b828fa7d00e6c820d1f802fa103327.zip
* tree.h (DECL_SOURCE_FILE): Improve documentation.
(DECL_SOURCE_LINE): Likewise. * decl.c (duplicate_decls): Update source position information when a template function is defined. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42993 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/decl.c')
-rw-r--r--gcc/cp/decl.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 22fb9ef7974..5acf6220649 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -3499,6 +3499,19 @@ duplicate_decls (newdecl, olddecl)
= chainon (DECL_TEMPLATE_SPECIALIZATIONS (olddecl),
DECL_TEMPLATE_SPECIALIZATIONS (newdecl));
+ /* If the new declaration is a definition, update the file and
+ line information on the declaration. */
+ if (DECL_INITIAL (DECL_RESULT (olddecl)) == NULL_TREE
+ && DECL_INITIAL (DECL_RESULT (newdecl)) != NULL_TREE)
+ {
+ DECL_SOURCE_LINE (olddecl)
+ = DECL_SOURCE_LINE (DECL_RESULT (olddecl))
+ = DECL_SOURCE_LINE (newdecl);
+ DECL_SOURCE_FILE (olddecl)
+ = DECL_SOURCE_FILE (DECL_RESULT (olddecl))
+ = DECL_SOURCE_FILE (newdecl);
+ }
+
return 1;
}
OpenPOWER on IntegriCloud