changeset 750:09d3f476c85b

[project @ 1994-09-30 15:30:33 by jwe]
author jwe
date Fri, 30 Sep 1994 15:30:54 +0000
parents 93910a7bbdf2
children c9f3cb77478d
files src/pt-exp-base.cc src/pt-exp-base.h
diffstat 2 files changed, 14 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/pt-exp-base.cc	Fri Sep 30 15:24:46 1994 +0000
+++ b/src/pt-exp-base.cc	Fri Sep 30 15:30:54 1994 +0000
@@ -1027,7 +1027,8 @@
       delete [] t;
     }
 
-  delete id;
+  if (! preserve_ident)
+    delete id;
 }
 
 tree_indirect_ref *
--- a/src/pt-exp-base.h	Fri Sep 30 15:24:46 1994 +0000
+++ b/src/pt-exp-base.h	Fri Sep 30 15:30:54 1994 +0000
@@ -319,11 +319,17 @@
 {
 public:
   tree_indirect_ref (int l = -1, int c = -1) : tree_fvc (l, c)
-    { id = 0; }
+    {
+      id = 0;
+      preserve_ident = 0;
+    }
 
   tree_indirect_ref (tree_identifier *i, int l = -1, int c = -1)
     : tree_fvc (l, c)
-      { id = i; }
+      {
+	id = i;
+	preserve_ident = 0;
+      }
 
   ~tree_indirect_ref (void);
 
@@ -338,6 +344,9 @@
   tree_identifier *ident (void)
     { return id; }
 
+  void preserve_identifier (void)
+    { preserve_ident = 1; }
+
   char *name (void);
 
   tree_constant assign (tree_constant& t);
@@ -355,6 +364,7 @@
 private:
   tree_identifier *id;
   SLList<char*> refs;
+  int preserve_ident;
 };
 
 // Index expressions.