[clang] The pragma STDC CX_LIMITED_RANGE ON should have precedence. (PR #98520)
Aaron Ballman via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 15 07:49:56 PDT 2024
================
@@ -328,12 +328,20 @@ class ComplexExprEmitter
}
}
- QualType getPromotionType(QualType Ty, bool IsDivOpCode = false) {
+ QualType getPromotionType(FPOptionsOverride Features, QualType Ty,
+ bool IsDivOpCode = false) {
if (auto *CT = Ty->getAs<ComplexType>()) {
QualType ElementType = CT->getElementType();
- if (IsDivOpCode && ElementType->isFloatingType() &&
- CGF.getLangOpts().getComplexRange() ==
- LangOptions::ComplexRangeKind::CX_Promoted)
+ bool isFloatingType = ElementType->isFloatingType();
+ bool isComplexRangePromoted = CGF.getLangOpts().getComplexRange() ==
+ LangOptions::ComplexRangeKind::CX_Promoted;
+ bool hasNoComplexRangeOverride = !Features.hasComplexRangeOverride();
+ bool hasMatchingComplexRange = Features.hasComplexRangeOverride() &&
+ Features.getComplexRangeOverride() ==
+ CGF.getLangOpts().getComplexRange();
----------------
AaronBallman wrote:
```suggestion
bool IsFloatingType = ElementType->isFloatingType();
bool IsComplexRangePromoted = CGF.getLangOpts().getComplexRange() ==
LangOptions::ComplexRangeKind::CX_Promoted;
bool HasNoComplexRangeOverride = !Features.hasComplexRangeOverride();
bool HasMatchingComplexRange = Features.hasComplexRangeOverride() &&
Features.getComplexRangeOverride() ==
CGF.getLangOpts().getComplexRange();
```
https://github.com/llvm/llvm-project/pull/98520
More information about the cfe-commits
mailing list