[all-commits] [llvm/llvm-project] bffbe9: [clang] Correct behavior of `LLVM_UNREACHABLE_OPTI...
Arvind Mukund via All-commits
all-commits at lists.llvm.org
Thu Oct 5 12:02:09 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: bffbe9a9cf3a287648d81675a99ff9a808fab990
https://github.com/llvm/llvm-project/commit/bffbe9a9cf3a287648d81675a99ff9a808fab990
Author: Arvind Mukund <MasterAwesome at users.noreply.github.com>
Date: 2023-10-05 (Thu, 05 Oct 2023)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/utils/TableGen/ClangAttrEmitter.cpp
Log Message:
-----------
[clang] Correct behavior of `LLVM_UNREACHABLE_OPTIMIZE=OFF` for `Release` builds (#68284)
# Codegen
### Before
```c++
AArch64SVEPcsAttr *AArch64SVEPcsAttr::CreateImplicit(ASTContext &Ctx, SourceRange Range, Spelling S) {
AttributeCommonInfo I(Range, NoSemaHandlerAttribute, (
S == GNU_aarch64_sve_pcs ? AttributeCommonInfo::Form{AttributeCommonInfo::AS_GNU, GNU_aarch64_sve_pcs, false /*IsAlignas*/, false /*IsRegularKeywordAttribute*/} :
S == CXX11_clang_aarch64_sve_pcs ? AttributeCommonInfo::Form{AttributeCommonInfo::AS_CXX11, CXX11_clang_aarch64_sve_pcs, false /*IsAlignas*/, false /*IsRegularKeywordAttribute*/} :
S == C23_clang_aarch64_sve_pcs ? AttributeCommonInfo::Form{AttributeCommonInfo::AS_C23, C23_clang_aarch64_sve_pcs, false /*IsAlignas*/, false /*IsRegularKeywordAttribute*/} :
(llvm_unreachable("Unknown attribute spelling!"), AttributeCommonInfo::Form{AttributeCommonInfo::AS_GNU, 0, false /*IsAlignas*/, false /*IsRegularKeywordAttribute*/})));
return CreateImplicit(Ctx, I);
}
```
### After
```c++
AArch64SVEPcsAttr *AArch64SVEPcsAttr::CreateImplicit(ASTContext &Ctx, SourceRange Range, Spelling S) {
AttributeCommonInfo I(Range, NoSemaHandlerAttribute, [&]() {
switch (S) {
case GNU_aarch64_sve_pcs:
return AttributeCommonInfo::Form{AttributeCommonInfo::AS_GNU, GNU_aarch64_sve_pcs, false /*IsAlignas*/, false /*IsRegularKeywordAttribute*/};
case CXX11_clang_aarch64_sve_pcs:
return AttributeCommonInfo::Form{AttributeCommonInfo::AS_CXX11, CXX11_clang_aarch64_sve_pcs, false /*IsAlignas*/, false /*IsRegularKeywordAttribute*/};
case C23_clang_aarch64_sve_pcs:
return AttributeCommonInfo::Form{AttributeCommonInfo::AS_C23, C23_clang_aarch64_sve_pcs, false /*IsAlignas*/, false /*IsRegularKeywordAttribute*/};
default:
llvm_unreachable("Unknown attribute spelling!");
return AttributeCommonInfo::Form{AttributeCommonInfo::AS_GNU, 0, false /*IsAlignas*/, false /*IsRegularKeywordAttribute*/};
}
}());
return CreateImplicit(Ctx, I);
}
```
Fixes https://github.com/llvm/llvm-project/issues/68237
More information about the All-commits
mailing list