summary refs log tree commit diff
path: root/all.h
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2017-02-24 12:00:38 -0500
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2017-02-24 12:00:38 -0500
commita35dc8c495467306ca149d642b2d2983922d7a9d (patch)
treeb6c7958a7252fd489f7aac02ecc17e1b54948614 /all.h
parent5165fcae767801a20316530c0ec9f096158aa2e4 (diff)
downloadroux-a35dc8c495467306ca149d642b2d2983922d7a9d.tar.gz
fix pretty bad bug in alias analysis
When a temporary marked local is escaping,
the whole slot must be marked as such.  To
solve this, Alias now holds a pointer to
the alias information of the slot.  For
simplicity of the code, this pointer is
always valid and fetching ->type out of it
is meaningful.
Diffstat (limited to 'all.h')
-rw-r--r--all.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/all.h b/all.h
index b073124..128d16c 100644
--- a/all.h
+++ b/all.h
@@ -391,6 +391,7 @@ struct Alias {
 	Ref base;
 	char label[NString];
 	int64_t offset;
+	Alias *slot;
 };
 
 struct Tmp {