Index: src/ResolvExpr/AlternativeFinder.cc
===================================================================
--- src/ResolvExpr/AlternativeFinder.cc	(revision 4753415975c6f56302c712e83f72751cbf46c6ad)
+++ src/ResolvExpr/AlternativeFinder.cc	(revision bfebb6c512a570fafd6d6e1a84b2304ca7bd5365)
@@ -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 4753415975c6f56302c712e83f72751cbf46c6ad)
+++ src/ResolvExpr/AlternativeFinder.h	(revision bfebb6c512a570fafd6d6e1a84b2304ca7bd5365)
@@ -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 );
