Index: src/Common/module.mk
===================================================================
--- src/Common/module.mk	(revision f39096c3636af52a8eb6491cdeab71fff3f2ea8c)
+++ src/Common/module.mk	(revision 9498fe2dd543ed8a0783207cc62dab7f2fa8b403)
@@ -17,3 +17,4 @@
 SRC += Common/SemanticError.cc \
        Common/UniqueName.cc \
-       Common/Assert.cc
+       Common/Assert.cc \
+       Common/Gc.cc
Index: src/Makefile.in
===================================================================
--- src/Makefile.in	(revision f39096c3636af52a8eb6491cdeab71fff3f2ea8c)
+++ src/Makefile.in	(revision 9498fe2dd543ed8a0783207cc62dab7f2fa8b403)
@@ -106,4 +106,5 @@
 	Common/driver_cfa_cpp-UniqueName.$(OBJEXT) \
 	Common/driver_cfa_cpp-Assert.$(OBJEXT) \
+	Common/driver_cfa_cpp-Gc.$(OBJEXT) \
 	ControlStruct/driver_cfa_cpp-LabelGenerator.$(OBJEXT) \
 	ControlStruct/driver_cfa_cpp-LabelFixer.$(OBJEXT) \
@@ -371,7 +372,7 @@
 	CodeGen/FixNames.cc CodeGen/OperatorTable.cc \
 	Common/SemanticError.cc Common/UniqueName.cc Common/Assert.cc \
-	ControlStruct/LabelGenerator.cc ControlStruct/LabelFixer.cc \
-	ControlStruct/MLEMutator.cc ControlStruct/Mutate.cc \
-	ControlStruct/ForExprMutator.cc \
+	Common/Gc.cc ControlStruct/LabelGenerator.cc \
+	ControlStruct/LabelFixer.cc ControlStruct/MLEMutator.cc \
+	ControlStruct/Mutate.cc ControlStruct/ForExprMutator.cc \
 	ControlStruct/LabelTypeChecker.cc Designators/Processor.cc \
 	GenPoly/Box.cc GenPoly/GenPoly.cc GenPoly/PolyMutator.cc \
@@ -528,4 +529,6 @@
 	Common/$(DEPDIR)/$(am__dirstamp)
 Common/driver_cfa_cpp-Assert.$(OBJEXT): Common/$(am__dirstamp) \
+	Common/$(DEPDIR)/$(am__dirstamp)
+Common/driver_cfa_cpp-Gc.$(OBJEXT): Common/$(am__dirstamp) \
 	Common/$(DEPDIR)/$(am__dirstamp)
 ControlStruct/$(am__dirstamp):
@@ -816,4 +819,5 @@
 	-rm -f CodeGen/driver_cfa_cpp-OperatorTable.$(OBJEXT)
 	-rm -f Common/driver_cfa_cpp-Assert.$(OBJEXT)
+	-rm -f Common/driver_cfa_cpp-Gc.$(OBJEXT)
 	-rm -f Common/driver_cfa_cpp-SemanticError.$(OBJEXT)
 	-rm -f Common/driver_cfa_cpp-UniqueName.$(OBJEXT)
@@ -926,4 +930,5 @@
 @AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-Assert.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-Gc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Po@am__quote@
@@ -1181,4 +1186,18 @@
 @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-Assert.obj `if test -f 'Common/Assert.cc'; then $(CYGPATH_W) 'Common/Assert.cc'; else $(CYGPATH_W) '$(srcdir)/Common/Assert.cc'; fi`
 
+Common/driver_cfa_cpp-Gc.o: Common/Gc.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-Gc.o -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-Gc.Tpo -c -o Common/driver_cfa_cpp-Gc.o `test -f 'Common/Gc.cc' || echo '$(srcdir)/'`Common/Gc.cc
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-Gc.Tpo Common/$(DEPDIR)/driver_cfa_cpp-Gc.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Common/Gc.cc' object='Common/driver_cfa_cpp-Gc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-Gc.o `test -f 'Common/Gc.cc' || echo '$(srcdir)/'`Common/Gc.cc
+
+Common/driver_cfa_cpp-Gc.obj: Common/Gc.cc
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-Gc.obj -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-Gc.Tpo -c -o Common/driver_cfa_cpp-Gc.obj `if test -f 'Common/Gc.cc'; then $(CYGPATH_W) 'Common/Gc.cc'; else $(CYGPATH_W) '$(srcdir)/Common/Gc.cc'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-Gc.Tpo Common/$(DEPDIR)/driver_cfa_cpp-Gc.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='Common/Gc.cc' object='Common/driver_cfa_cpp-Gc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-Gc.obj `if test -f 'Common/Gc.cc'; then $(CYGPATH_W) 'Common/Gc.cc'; else $(CYGPATH_W) '$(srcdir)/Common/Gc.cc'; fi`
+
 ControlStruct/driver_cfa_cpp-LabelGenerator.o: ControlStruct/LabelGenerator.cc
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/driver_cfa_cpp-LabelGenerator.o -MD -MP -MF ControlStruct/$(DEPDIR)/driver_cfa_cpp-LabelGenerator.Tpo -c -o ControlStruct/driver_cfa_cpp-LabelGenerator.o `test -f 'ControlStruct/LabelGenerator.cc' || echo '$(srcdir)/'`ControlStruct/LabelGenerator.cc
