Index: src/CodeGen/FixMain.cc
===================================================================
--- src/CodeGen/FixMain.cc	(revision 68f9c43ecf1873cbb5f06aee682704b56612ed16)
+++ src/CodeGen/FixMain.cc	(revision 8d7bef249652cc2b9854c7090c758bcd9ad9f613)
@@ -29,5 +29,5 @@
 namespace CodeGen {
 	bool FixMain::replace_main = false;
-	std::unique_ptr<FunctionDecl> FixMain::main_signature = nullptr;
+	FunctionDecl* FixMain::main_signature = nullptr;
 
 	template<typename container>
@@ -41,5 +41,5 @@
 			SemanticError(functionDecl, "Multiple definition of main routine\n");
 		}
-		main_signature.reset( functionDecl->clone() );
+		main_signature = functionDecl;
 	}
 
Index: src/CodeGen/FixMain.h
===================================================================
--- src/CodeGen/FixMain.h	(revision 68f9c43ecf1873cbb5f06aee682704b56612ed16)
+++ src/CodeGen/FixMain.h	(revision 8d7bef249652cc2b9854c7090c758bcd9ad9f613)
@@ -40,5 +40,5 @@
 	  private:
   		static bool replace_main;
-		static std::unique_ptr<FunctionDecl> main_signature;
+		static FunctionDecl* main_signature;
 	};
 };
Index: src/CodeGen/FixNames.cc
===================================================================
--- src/CodeGen/FixNames.cc	(revision 68f9c43ecf1873cbb5f06aee682704b56612ed16)
+++ src/CodeGen/FixNames.cc	(revision 8d7bef249652cc2b9854c7090c758bcd9ad9f613)
@@ -16,5 +16,4 @@
 #include "FixNames.h"
 
-#include <memory>                  // for unique_ptr
 #include <string>                  // for string, operator!=, operator==
 
@@ -47,12 +46,12 @@
 	std::string mangle_main() {
 		FunctionType* main_type;
-		std::unique_ptr<FunctionDecl> mainDecl { new FunctionDecl( "main", Type::StorageClasses(), LinkageSpec::Cforall,
-																   main_type = new FunctionType( Type::Qualifiers(), true ), nullptr )
-				};
+		FunctionDecl* mainDecl = new FunctionDecl{ 
+			"main", Type::StorageClasses(), LinkageSpec::Cforall, 
+			main_type = new FunctionType{ Type::Qualifiers(), true }, nullptr };
 		main_type->get_returnVals().push_back(
 			new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
 		);
 
-		auto && name = SymTab::Mangler::mangle( mainDecl.get() );
+		auto && name = SymTab::Mangler::mangle( mainDecl );
 		// std::cerr << name << std::endl;
 		return name;
@@ -60,7 +59,7 @@
 	std::string mangle_main_args() {
 		FunctionType* main_type;
-		std::unique_ptr<FunctionDecl> mainDecl { new FunctionDecl( "main", Type::StorageClasses(), LinkageSpec::Cforall,
-																   main_type = new FunctionType( Type::Qualifiers(), false ), nullptr )
-				};
+		FunctionDecl* mainDecl = new FunctionDecl{
+			"main", Type::StorageClasses(), LinkageSpec::Cforall,
+			main_type = new FunctionType{ Type::Qualifiers(), false }, nullptr };
 		main_type->get_returnVals().push_back(
 			new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
@@ -77,5 +76,5 @@
 		);
 
-		auto&& name = SymTab::Mangler::mangle( mainDecl.get() );
+		auto&& name = SymTab::Mangler::mangle( mainDecl );
 		// std::cerr << name << std::endl;
 		return name;
