Index: src/ResolvExpr/AlternativeFinder.cc
===================================================================
--- src/ResolvExpr/AlternativeFinder.cc	(revision d3b7937ae7ab8afece0824b5729b7e86a9f0bd63)
+++ src/ResolvExpr/AlternativeFinder.cc	(revision ae8b94256813adfe7582e0fabf10bdd0d8c7b864)
@@ -811,4 +811,8 @@
 	}
 
+	void AlternativeFinder::visit( OffsetofExpr *offsetofExpr ) {
+		alternatives.push_back( Alternative( offsetofExpr->clone(), env, Cost::zero ) );
+	}
+
 	void AlternativeFinder::resolveAttr( DeclarationWithType *funcDecl, FunctionType *function, Type *argType, const TypeEnvironment &env ) {
 		// assume no polymorphism
Index: src/ResolvExpr/AlternativeFinder.h
===================================================================
--- src/ResolvExpr/AlternativeFinder.h	(revision d3b7937ae7ab8afece0824b5729b7e86a9f0bd63)
+++ src/ResolvExpr/AlternativeFinder.h	(revision ae8b94256813adfe7582e0fabf10bdd0d8c7b864)
@@ -56,5 +56,6 @@
 		virtual void visit( ConstantExpr *constantExpr ); 
 		virtual void visit( SizeofExpr *sizeofExpr );
-		virtual void visit( AlignofExpr *sizeofExpr );
+		virtual void visit( AlignofExpr *alignofExpr );
+		virtual void visit( OffsetofExpr *offsetofExpr );
 		virtual void visit( AttrExpr *attrExpr );
 		virtual void visit( LogicalExpr *logicalExpr );
