Index: AST/Expr.cpp =================================================================== --- AST/Expr.cpp (revision 45071) +++ AST/Expr.cpp (working copy) @@ -662,9 +662,10 @@ static_cast(Ctx.getTypeSize(getType(), Exp->getOperatorLoc()))); // Get information about the size or align. - if (Exp->isSizeOf()) - Result = Ctx.getTypeSize(Exp->getArgumentType(), Exp->getOperatorLoc()); - else + if (Exp->isSizeOf()) { + unsigned CharSize = Ctx.Target.getCharWidth(Ctx.getFullLoc(Exp->getOperatorLoc())); + Result = Ctx.getTypeSize(Exp->getArgumentType(), Exp->getOperatorLoc()) / CharSize; + } else Result = Ctx.getTypeAlign(Exp->getArgumentType(), Exp->getOperatorLoc()); break; }