Index: src/AST/Decl.hpp
===================================================================
--- src/AST/Decl.hpp	(revision ffec1bfd5e6f76604c43a28508c5ddcc64bd3218)
+++ src/AST/Decl.hpp	(revision e8616b6271f88a2d29036c310ad330f23fbd5136)
@@ -108,5 +108,5 @@
 	ObjectDecl( const CodeLocation & loc, const std::string & name, const Type * type,
 		const Init * init = nullptr, Storage::Classes storage = {},
-		Linkage::Spec linkage = Linkage::C, const Expr * bitWd = nullptr,
+		Linkage::Spec linkage = Linkage::Cforall, const Expr * bitWd = nullptr,
 		std::vector< ptr<Attribute> > && attrs = {}, Function::Specs fs = {} )
 	: DeclWithType( loc, name, storage, linkage, std::move(attrs), fs ), type( type ),
Index: src/AST/Pass.impl.hpp
===================================================================
--- src/AST/Pass.impl.hpp	(revision ffec1bfd5e6f76604c43a28508c5ddcc64bd3218)
+++ src/AST/Pass.impl.hpp	(revision e8616b6271f88a2d29036c310ad330f23fbd5136)
@@ -597,4 +597,5 @@
 			guard_symtab guard { *this };
 			// implicit add __func__ identifier as specified in the C manual 6.4.2.2
+			// This is a C name and so has C linkage.
 			static ast::ptr< ast::ObjectDecl > func{ new ast::ObjectDecl{
 				CodeLocation{}, "__func__",
@@ -602,5 +603,8 @@
 					new ast::BasicType{ ast::BasicType::Char, ast::CV::Const },
 					nullptr, VariableLen, DynamicDim
-				}
+				},
+				nullptr,
+				ast::Storage::Classes(),
+				ast::Linkage::C,
 			} };
 			__pass::symtab::addId( core, 0, func );
