This revision was automatically updated to reflect the committed changes. Closed by commit rG7133283835fb: [clang] Do not attempt to zero-extend _BitInt(1) when not required (authored by Fznamznon).
Changed prior to commit: https://reviews.llvm.org/D149436?vs=517863&id=518688#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D149436/new/ https://reviews.llvm.org/D149436 Files: clang/docs/ReleaseNotes.rst clang/lib/CodeGen/CGExprConstant.cpp clang/test/CodeGen/ext-int.c Index: clang/test/CodeGen/ext-int.c =================================================================== --- clang/test/CodeGen/ext-int.c +++ clang/test/CodeGen/ext-int.c @@ -3,6 +3,10 @@ // RUN: %clang_cc1 -triple i386-gnu-linux -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=CHECK,LIN32 // RUN: %clang_cc1 -triple i386-windows-pc -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=CHECK,WIN32 +//GH62207 +unsigned _BitInt(1) GlobSize1 = 0; +// CHECK: @GlobSize1 = {{.*}}global i1 false + void GenericTest(_BitInt(3) a, unsigned _BitInt(3) b, _BitInt(4) c) { // CHECK: define {{.*}}void @GenericTest int which = _Generic(a, _BitInt(3): 1, unsigned _BitInt(3) : 2, _BitInt(4) : 3); Index: clang/lib/CodeGen/CGExprConstant.cpp =================================================================== --- clang/lib/CodeGen/CGExprConstant.cpp +++ clang/lib/CodeGen/CGExprConstant.cpp @@ -1730,7 +1730,7 @@ } // Zero-extend bool. - if (C->getType()->isIntegerTy(1)) { + if (C->getType()->isIntegerTy(1) && !destType->isBitIntType()) { llvm::Type *boolTy = CGM.getTypes().ConvertTypeForMem(destType); return llvm::ConstantExpr::getZExt(C, boolTy); } Index: clang/docs/ReleaseNotes.rst =================================================================== --- clang/docs/ReleaseNotes.rst +++ clang/docs/ReleaseNotes.rst @@ -337,6 +337,9 @@ (`#62296 <https://github.com/llvm/llvm-project/issues/62296>`_) - Fix a stack overflow issue when evaluating ``consteval`` default arguments. (`#60082` <https://github.com/llvm/llvm-project/issues/60082>`_) +- Fix the assertion hit when generating code for global variable initializer of + _BitInt(1) type. + (`#62207 <https://github.com/llvm/llvm-project/issues/62207>`_) Bug Fixes to Compiler Builtins ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Index: clang/test/CodeGen/ext-int.c =================================================================== --- clang/test/CodeGen/ext-int.c +++ clang/test/CodeGen/ext-int.c @@ -3,6 +3,10 @@ // RUN: %clang_cc1 -triple i386-gnu-linux -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=CHECK,LIN32 // RUN: %clang_cc1 -triple i386-windows-pc -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=CHECK,WIN32 +//GH62207 +unsigned _BitInt(1) GlobSize1 = 0; +// CHECK: @GlobSize1 = {{.*}}global i1 false + void GenericTest(_BitInt(3) a, unsigned _BitInt(3) b, _BitInt(4) c) { // CHECK: define {{.*}}void @GenericTest int which = _Generic(a, _BitInt(3): 1, unsigned _BitInt(3) : 2, _BitInt(4) : 3); Index: clang/lib/CodeGen/CGExprConstant.cpp =================================================================== --- clang/lib/CodeGen/CGExprConstant.cpp +++ clang/lib/CodeGen/CGExprConstant.cpp @@ -1730,7 +1730,7 @@ } // Zero-extend bool. - if (C->getType()->isIntegerTy(1)) { + if (C->getType()->isIntegerTy(1) && !destType->isBitIntType()) { llvm::Type *boolTy = CGM.getTypes().ConvertTypeForMem(destType); return llvm::ConstantExpr::getZExt(C, boolTy); } Index: clang/docs/ReleaseNotes.rst =================================================================== --- clang/docs/ReleaseNotes.rst +++ clang/docs/ReleaseNotes.rst @@ -337,6 +337,9 @@ (`#62296 <https://github.com/llvm/llvm-project/issues/62296>`_) - Fix a stack overflow issue when evaluating ``consteval`` default arguments. (`#60082` <https://github.com/llvm/llvm-project/issues/60082>`_) +- Fix the assertion hit when generating code for global variable initializer of + _BitInt(1) type. + (`#62207 <https://github.com/llvm/llvm-project/issues/62207>`_) Bug Fixes to Compiler Builtins ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits