OSDN Git Service

PR c++/9892
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 1 Mar 2003 01:22:43 +0000 (01:22 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 1 Mar 2003 01:22:43 +0000 (01:22 +0000)
* pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when
instantiating it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@63601 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/pt.c

index 78d4f26..e4ccfb2 100644 (file)
@@ -1,3 +1,9 @@
+2003-02-28    <mark@codesourcery.com>
+
+       PR c++/9892
+       * pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when
+       instantiating it.
+
 2003-02-28  Aldy Hernandez  <aldyh@redhat.com>
 
         * parser.c (cp_parser_init_declarator): Revert opaque
index c0ec51d..ac5e4e1 100644 (file)
@@ -10825,7 +10825,7 @@ instantiate_decl (d, defer_ok)
   /* Regenerate the declaration in case the template has been modified
      by a subsequent redeclaration.  */
   regenerate_decl_from_template (d, td);
-
+  
   /* We already set the file and line above.  Reset them now in case
      they changed as a result of calling regenerate_decl_from_template.  */
   lineno = DECL_SOURCE_LINE (d);
@@ -10833,6 +10833,10 @@ instantiate_decl (d, defer_ok)
 
   if (TREE_CODE (d) == VAR_DECL)
     {
+      /* Clear out DECL_RTL; whatever was there before may not be right
+        since we've reset the type of the declaration.  */
+      SET_DECL_RTL (d, NULL_RTX);
+
       DECL_IN_AGGR_P (d) = 0;
       if (DECL_INTERFACE_KNOWN (d))
        DECL_EXTERNAL (d) = ! DECL_NOT_REALLY_EXTERN (d);