Index: lib/Analysis/Lint.cpp =================================================================== --- lib/Analysis/Lint.cpp +++ lib/Analysis/Lint.cpp @@ -438,7 +438,7 @@ BaseSize = DL->getTypeAllocSize(GTy); BaseAlign = GV->getAlignment(); if (DL && BaseAlign == 0 && GTy->isSized()) - BaseAlign = DL->getABITypeAlignment(GTy); + BaseAlign = DL->getPreferredAlignment(GV); } } Index: test/Analysis/Lint/global-align.ll =================================================================== --- /dev/null +++ test/Analysis/Lint/global-align.ll @@ -0,0 +1,10 @@ +; RUN: opt -lint -disable-output < %s +target datalayout = "e-m:o-p:32:32-i1:8:32-i8:8:32-i16:16:32-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32" + +@gval = internal unnamed_addr global i1 false + +define i32 @test() nounwind ssp{ + %x = load i1* @gval, align 4 + %y = zext i1 %x to i32 + ret i32 %y +}