diff options
Diffstat (limited to 'clang/lib/CIR/CodeGen/CIRGenModule.cpp')
-rw-r--r-- | clang/lib/CIR/CodeGen/CIRGenModule.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/CIR/CodeGen/CIRGenModule.cpp b/clang/lib/CIR/CodeGen/CIRGenModule.cpp index c1d3265..d8acc99 100644 --- a/clang/lib/CIR/CodeGen/CIRGenModule.cpp +++ b/clang/lib/CIR/CodeGen/CIRGenModule.cpp @@ -141,7 +141,11 @@ void CIRGenModule::emitGlobalVarDefinition(const clang::VarDecl *vd, if (APValue *value = initDecl->evaluateValue()) { switch (value->getKind()) { case APValue::Int: { - initializer = builder.getAttr<cir::IntAttr>(type, value->getInt()); + if (mlir::isa<cir::BoolType>(type)) + initializer = + builder.getCIRBoolAttr(value->getInt().getZExtValue()); + else + initializer = builder.getAttr<cir::IntAttr>(type, value->getInt()); break; } case APValue::Float: { |