cpplib.c (do_define): Only free the old definition if it actually had one.
authorZack Weinberg <zack@wolery.cumb.org>
Mon, 14 Feb 2000 07:57:30 +0000 (07:57 +0000)
committerZack Weinberg <zack@gcc.gnu.org>
Mon, 14 Feb 2000 07:57:30 +0000 (07:57 +0000)
* cpplib.c (do_define): Only free the old definition if it
actually had one.

From-SVN: r31964

gcc/ChangeLog
gcc/cpplib.c

index 21b8fc43275ac654cfa3b8707f1a715b2689eeab..0f0b4350f5b12e671fde1ff9ce595e8ebacffdd4 100644 (file)
@@ -1,3 +1,8 @@
+2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpplib.c (do_define): Only free the old definition if it
+       actually had one.
+
 2000-02-13   Neil Booth  <NeilB@earthling.net>
 
        * cppfiles.c (read_and_prescan): When emitting deferred
index 9238d3346022893dffd184d02687e9b652a3e54c..844b89fda65a52f597a57abab6ea8dae4d5ad202 100644 (file)
@@ -715,8 +715,9 @@ do_define (pfile, keyword)
       if (hp->type != T_POISON)
        {
          /* Replace the old definition.  */
+         if (hp->type == T_MACRO)
+           free_definition (hp->value.defn);
          hp->type = T_MACRO;
-         free_definition (hp->value.defn);
          hp->value.defn = mdef.defn;
        }
     }