Index: src/ResolvExpr/CandidateFinder.cpp
===================================================================
--- src/ResolvExpr/CandidateFinder.cpp	(revision 90e683bd043dbecee5fc34eec99bc3d53f59d082)
+++ src/ResolvExpr/CandidateFinder.cpp	(revision 691bf0a0b1952e776b16cc0890d066d9a4a04a04)
@@ -1486,7 +1486,16 @@
 
 	void Finder::postvisit( const ast::SizeofExpr * sizeofExpr ) {
+		const ast::Type * type = resolveTypeof( sizeofExpr->type, context );
+		const ast::Type * sizeType = context.global.sizeType.get();
 		addCandidate(
-			new ast::SizeofExpr{
-				sizeofExpr->location, resolveTypeof( sizeofExpr->type, context ) },
+			new ast::SizeofExpr( sizeofExpr->location, type, sizeType ),
+			tenv );
+	}
+
+	void Finder::postvisit( const ast::AlignofExpr * alignofExpr ) {
+		const ast::Type * type = resolveTypeof( alignofExpr->type, context );
+		const ast::Type * sizeType = context.global.sizeType.get();
+		addCandidate(
+			new ast::AlignofExpr( alignofExpr->location, type, sizeType ),
 			tenv );
 	}
@@ -1516,11 +1525,4 @@
 	}
 
-	void Finder::postvisit( const ast::AlignofExpr * alignofExpr ) {
-		addCandidate(
-			new ast::AlignofExpr{
-				alignofExpr->location, resolveTypeof( alignofExpr->type, context ) },
-			tenv );
-	}
-
 	void Finder::postvisit( const ast::UntypedOffsetofExpr * offsetofExpr ) {
 		const ast::BaseInstType * aggInst;
@@ -1529,8 +1531,9 @@
 		else return;
 
+		const ast::Type * sizeType = context.global.sizeType.get();
 		for ( const ast::Decl * member : aggInst->lookup( offsetofExpr->member ) ) {
 			auto dwt = strict_dynamic_cast< const ast::DeclWithType * >( member );
 			addCandidate(
-				new ast::OffsetofExpr{ offsetofExpr->location, aggInst, dwt }, tenv );
+				new ast::OffsetofExpr( offsetofExpr->location, aggInst, dwt, sizeType ), tenv );
 		}
 	}
