  sizeofType md _ (DirectType (TyEnum _) _ _) = return $ iSize md TyInt
  sizeofType md _ (DirectType (TyBuiltin b) _ _) = return $ builtinSize md b
  sizeofType md _ (PtrType _ _ _)  = return $ ptrSize md
-@@ -66,6 +66,7 @@ alignofType md _ (DirectType TyVoid _ _) = return $ voidAlign md
+@@ -66,6 +67,7 @@ alignofType md _ (DirectType TyVoid _ _) = return $ voidAlign md
  alignofType md _ (DirectType (TyIntegral it) _ _) = return $ iAlign md it
  alignofType md _ (DirectType (TyFloating ft) _ _) = return $ fAlign md ft
  alignofType md _ (DirectType (TyComplex ft) _ _) = return $ fAlign md ft

 alignofType md _ (DirectType (TyEnum _) _ _) = return $ iAlign md TyInt
 alignofType md _ (DirectType (TyBuiltin b) _ _) = return $ builtinAlign md b
 alignofType md _ (PtrType _ _ _)  = return $ ptrAlign md
@@ -75,8 +76,13 @@ alignofType md n (TypeDefType (TypeDefRef _ t _) _ _) = alignofType md n t
 alignofType _ n t = astError (nodeInfo n) $
                  "can't find alignment of type: " ++ (render . pretty) t
 

diff --git a/src/Language/C/Analysis/ConstEval.hs b/src/Language/C/Analysis/ConstEval.hs
index 9af4aac..bbe64fb 100644
--- a/src/Language/C/Analysis/ConstEval.hs
+++ b/src/Language/C/Analysis/ConstEval.hs
@@ -3,6 +3,7 @@ module Language.C.Analysis.ConstEval where
 
 import Control.Monad
 import Data.Bits
+import Data.List (foldl')
 import Data.Maybe
 import qualified Data.Map as Map
 import Language.C.Syntax.AST
@@ -42,7 +43,7 @@ sizeofType md _ (DirectType TyVoid _ _) = return $ voidSize md
 sizeofType md _ (DirectType (TyIntegral it) _ _) = return $ iSize md it
 sizeofType md _ (DirectType (TyFloating ft) _ _) = return $ fSize md ft
 sizeofType md _ (DirectType (TyComplex ft) _ _) = return $ 2 * fSize md ft
