Index: src/AST/Decl.hpp
===================================================================
--- src/AST/Decl.hpp	(revision e8616b6271f88a2d29036c310ad330f23fbd5136)
+++ src/AST/Decl.hpp	(revision 39920986889716a2f255137c48088e8dbb2a897c)
@@ -143,5 +143,5 @@
 	FunctionDecl( const CodeLocation & loc, const std::string & name, std::vector<ptr<TypeDecl>>&& forall,
 		std::vector<ptr<DeclWithType>>&& params, std::vector<ptr<DeclWithType>>&& returns,
-		CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::C,
+		CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::Cforall,
 		std::vector<ptr<Attribute>>&& attrs = {}, Function::Specs fs = {}, bool isVarArgs = false);
 
@@ -149,5 +149,5 @@
 		std::vector<ptr<TypeDecl>>&& forall, std::vector<ptr<DeclWithType>>&& assertions,
 		std::vector<ptr<DeclWithType>>&& params, std::vector<ptr<DeclWithType>>&& returns,
-		CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::C,
+		CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::Cforall,
 		std::vector<ptr<Attribute>>&& attrs = {}, Function::Specs fs = {}, bool isVarArgs = false);
 
Index: src/SymTab/Autogen.cc
===================================================================
--- src/SymTab/Autogen.cc	(revision e8616b6271f88a2d29036c310ad330f23fbd5136)
+++ src/SymTab/Autogen.cc	(revision 39920986889716a2f255137c48088e8dbb2a897c)
@@ -258,10 +258,10 @@
 	}
 
-	/// 
+	/// Given type T, generate type of default ctor/dtor, i.e. function type void (*) (T &).
 	ast::FunctionDecl * genDefaultFunc(const CodeLocation loc, const std::string fname, const ast::Type * paramType, bool maybePolymorphic) {
 		std::vector<ast::ptr<ast::TypeDecl>> typeParams;
 		if (maybePolymorphic) typeParams = getGenericParams(paramType);
 		auto dstParam = new ast::ObjectDecl(loc, "_dst", new ast::ReferenceType(paramType), nullptr, {}, ast::Linkage::Cforall);
-		return new ast::FunctionDecl(loc, fname, std::move(typeParams), {dstParam}, {}, new ast::CompoundStmt(loc));
+		return new ast::FunctionDecl(loc, fname, std::move(typeParams), {dstParam}, {}, new ast::CompoundStmt(loc), {}, ast::Linkage::Cforall);
 	}
 
