Skip to content

Commit 6f5efe0

Browse files
committed
.
Created using spr 1.3.5-bogner
2 parents 5ebd93c + 2f76e2b commit 6f5efe0

File tree

538 files changed

+28360
-23692
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

538 files changed

+28360
-23692
lines changed

clang/docs/ReleaseNotes.rst

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -294,9 +294,6 @@ C++ Language Changes
294294
C++2c Feature Support
295295
^^^^^^^^^^^^^^^^^^^^^
296296

297-
- Add ``__builtin_is_implicit_lifetime`` intrinsic, which supports
298-
`P2647R1 A trait for implicit lifetime types <https://wg21.link/p2674r1>`_
299-
300297
- Add ``__builtin_is_virtual_base_of`` intrinsic, which supports
301298
`P2985R0 A type trait for detecting virtual base classes <https://wg21.link/p2985r0>`_
302299

@@ -318,6 +315,9 @@ C++23 Feature Support
318315

319316
- ``__cpp_explicit_this_parameter`` is now defined. (#GH82780)
320317

318+
- Add ``__builtin_is_implicit_lifetime`` intrinsic, which supports
319+
`P2674R1 A trait for implicit lifetime types <https://wg21.link/p2674r1>`_
320+
321321
- Add support for `P2280R4 Using unknown pointers and references in constant expressions <https://wg21.link/P2280R4>`_. (#GH63139)
322322

323323
C++20 Feature Support
@@ -975,6 +975,8 @@ Bug Fixes to C++ Support
975975
- Fixed a nested lambda substitution issue for constraint evaluation. (#GH123441)
976976
- Fixed various false diagnostics related to the use of immediate functions. (#GH123472)
977977
- Fix immediate escalation not propagating through inherited constructors. (#GH112677)
978+
- Fixed assertions or false compiler diagnostics in the case of C++ modules for
979+
lambda functions or inline friend functions defined inside templates (#GH122493).
978980

979981
Bug Fixes to AST Handling
980982
^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -1135,6 +1137,20 @@ Windows Support
11351137
LoongArch Support
11361138
^^^^^^^^^^^^^^^^^
11371139

1140+
- Types of parameters and return value of ``__builtin_lsx_vorn_v`` and ``__builtin_lasx_xvorn_v``
1141+
are changed from ``signed char`` to ``unsigned char``. (#GH114514)
1142+
1143+
- ``-mrelax`` and ``-mno-relax`` are supported now on LoongArch that can be used
1144+
to enable / disable the linker relaxation optimization. (#GH123587)
1145+
1146+
- Fine-grained la64v1.1 options are added including ``-m{no-,}frecipe``, ``-m{no-,}lam-bh``,
1147+
``-m{no-,}ld-seq-sa``, ``-m{no-,}div32``, ``-m{no-,}lamcas`` and ``-m{no-,}scq``.
1148+
1149+
- Two options ``-m{no-,}annotate-tablejump`` are added to enable / disable
1150+
annotating table jump instruction to correlate it with the jump table. (#GH102411)
1151+
1152+
- FreeBSD support is added for LoongArch64 and has been tested by building kernel-toolchain. (#GH119191)
1153+
11381154
RISC-V Support
11391155
^^^^^^^^^^^^^^
11401156

@@ -1258,6 +1274,13 @@ libclang
12581274
- Added ``clang_getOffsetOfBase``, which allows computing the offset of a base
12591275
class in a class's layout.
12601276

1277+
1278+
Code Completion
1279+
---------------
1280+
1281+
- Use ``HeuristicResolver`` (upstreamed from clangd) to improve code completion results
1282+
in dependent code
1283+
12611284
Static Analyzer
12621285
---------------
12631286

clang/include/clang/AST/UnresolvedSet.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,8 @@ class UnresolvedSetImpl {
7171
UnresolvedSetImpl(const UnresolvedSetImpl &) = default;
7272
UnresolvedSetImpl &operator=(const UnresolvedSetImpl &) = default;
7373

74-
// FIXME: Switch these to "= default" once MSVC supports generating move ops
75-
UnresolvedSetImpl(UnresolvedSetImpl &&) {}
76-
UnresolvedSetImpl &operator=(UnresolvedSetImpl &&) { return *this; }
74+
UnresolvedSetImpl(UnresolvedSetImpl &&) = default;
75+
UnresolvedSetImpl &operator=(UnresolvedSetImpl &&) = default;
7776

7877
public:
7978
// We don't currently support assignment through this iterator, so we might

clang/include/clang/Basic/BuiltinsX86.td

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5191,51 +5191,51 @@ let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] i
51915191
}
51925192

51935193
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in {
5194-
def vcvtne2ph2bf8_128 : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<8, _Float16>)">;
5194+
def vcvt2ph2bf8_128 : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<8, _Float16>)">;
51955195
}
51965196

51975197
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in {
5198-
def vcvtne2ph2bf8_256 : X86Builtin<"_Vector<32, char>(_Vector<16, _Float16>, _Vector<16, _Float16>)">;
5198+
def vcvt2ph2bf8_256 : X86Builtin<"_Vector<32, char>(_Vector<16, _Float16>, _Vector<16, _Float16>)">;
51995199
}
52005200

52015201
let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in {
5202-
def vcvtne2ph2bf8_512 : X86Builtin<"_Vector<64, char>(_Vector<32, _Float16>, _Vector<32, _Float16>)">;
5202+
def vcvt2ph2bf8_512 : X86Builtin<"_Vector<64, char>(_Vector<32, _Float16>, _Vector<32, _Float16>)">;
52035203
}
52045204

52055205
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in {
5206-
def vcvtne2ph2bf8s_128 : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<8, _Float16>)">;
5206+
def vcvt2ph2bf8s_128 : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<8, _Float16>)">;
52075207
}
52085208

52095209
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in {
5210-
def vcvtne2ph2bf8s_256 : X86Builtin<"_Vector<32, char>(_Vector<16, _Float16>, _Vector<16, _Float16>)">;
5210+
def vcvt2ph2bf8s_256 : X86Builtin<"_Vector<32, char>(_Vector<16, _Float16>, _Vector<16, _Float16>)">;
52115211
}
52125212

52135213
let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in {
5214-
def vcvtne2ph2bf8s_512 : X86Builtin<"_Vector<64, char>(_Vector<32, _Float16>, _Vector<32, _Float16>)">;
5214+
def vcvt2ph2bf8s_512 : X86Builtin<"_Vector<64, char>(_Vector<32, _Float16>, _Vector<32, _Float16>)">;
52155215
}
52165216

52175217
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in {
5218-
def vcvtne2ph2hf8_128 : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<8, _Float16>)">;
5218+
def vcvt2ph2hf8_128 : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<8, _Float16>)">;
52195219
}
52205220

52215221
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in {
5222-
def vcvtne2ph2hf8_256 : X86Builtin<"_Vector<32, char>(_Vector<16, _Float16>, _Vector<16, _Float16>)">;
5222+
def vcvt2ph2hf8_256 : X86Builtin<"_Vector<32, char>(_Vector<16, _Float16>, _Vector<16, _Float16>)">;
52235223
}
52245224

52255225
let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in {
5226-
def vcvtne2ph2hf8_512 : X86Builtin<"_Vector<64, char>(_Vector<32, _Float16>, _Vector<32, _Float16>)">;
5226+
def vcvt2ph2hf8_512 : X86Builtin<"_Vector<64, char>(_Vector<32, _Float16>, _Vector<32, _Float16>)">;
52275227
}
52285228

52295229
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in {
5230-
def vcvtne2ph2hf8s_128 : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<8, _Float16>)">;
5230+
def vcvt2ph2hf8s_128 : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<8, _Float16>)">;
52315231
}
52325232

52335233
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in {
5234-
def vcvtne2ph2hf8s_256 : X86Builtin<"_Vector<32, char>(_Vector<16, _Float16>, _Vector<16, _Float16>)">;
5234+
def vcvt2ph2hf8s_256 : X86Builtin<"_Vector<32, char>(_Vector<16, _Float16>, _Vector<16, _Float16>)">;
52355235
}
52365236

52375237
let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in {
5238-
def vcvtne2ph2hf8s_512 : X86Builtin<"_Vector<64, char>(_Vector<32, _Float16>, _Vector<32, _Float16>)">;
5238+
def vcvt2ph2hf8s_512 : X86Builtin<"_Vector<64, char>(_Vector<32, _Float16>, _Vector<32, _Float16>)">;
52395239
}
52405240

52415241
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in {
@@ -5251,51 +5251,51 @@ let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] i
52515251
}
52525252

52535253
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in {
5254-
def vcvtneph2bf8_128_mask : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<16, char>, unsigned char)">;
5254+
def vcvtph2bf8_128_mask : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<16, char>, unsigned char)">;
52555255
}
52565256

52575257
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in {
5258-
def vcvtneph2bf8_256_mask : X86Builtin<"_Vector<16, char>(_Vector<16, _Float16>, _Vector<16, char>, unsigned short)">;
5258+
def vcvtph2bf8_256_mask : X86Builtin<"_Vector<16, char>(_Vector<16, _Float16>, _Vector<16, char>, unsigned short)">;
52595259
}
52605260

52615261
let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in {
5262-
def vcvtneph2bf8_512_mask : X86Builtin<"_Vector<32, char>(_Vector<32, _Float16>, _Vector<32, char>, unsigned int)">;
5262+
def vcvtph2bf8_512_mask : X86Builtin<"_Vector<32, char>(_Vector<32, _Float16>, _Vector<32, char>, unsigned int)">;
52635263
}
52645264

52655265
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in {
5266-
def vcvtneph2bf8s_128_mask : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<16, char>, unsigned char)">;
5266+
def vcvtph2bf8s_128_mask : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<16, char>, unsigned char)">;
52675267
}
52685268

52695269
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in {
5270-
def vcvtneph2bf8s_256_mask : X86Builtin<"_Vector<16, char>(_Vector<16, _Float16>, _Vector<16, char>, unsigned short)">;
5270+
def vcvtph2bf8s_256_mask : X86Builtin<"_Vector<16, char>(_Vector<16, _Float16>, _Vector<16, char>, unsigned short)">;
52715271
}
52725272

52735273
let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in {
5274-
def vcvtneph2bf8s_512_mask : X86Builtin<"_Vector<32, char>(_Vector<32, _Float16>, _Vector<32, char>, unsigned int)">;
5274+
def vcvtph2bf8s_512_mask : X86Builtin<"_Vector<32, char>(_Vector<32, _Float16>, _Vector<32, char>, unsigned int)">;
52755275
}
52765276

52775277
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in {
5278-
def vcvtneph2hf8_128_mask : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<16, char>, unsigned char)">;
5278+
def vcvtph2hf8_128_mask : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<16, char>, unsigned char)">;
52795279
}
52805280

52815281
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in {
5282-
def vcvtneph2hf8_256_mask : X86Builtin<"_Vector<16, char>(_Vector<16, _Float16>, _Vector<16, char>, unsigned short)">;
5282+
def vcvtph2hf8_256_mask : X86Builtin<"_Vector<16, char>(_Vector<16, _Float16>, _Vector<16, char>, unsigned short)">;
52835283
}
52845284

52855285
let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in {
5286-
def vcvtneph2hf8_512_mask : X86Builtin<"_Vector<32, char>(_Vector<32, _Float16>, _Vector<32, char>, unsigned int)">;
5286+
def vcvtph2hf8_512_mask : X86Builtin<"_Vector<32, char>(_Vector<32, _Float16>, _Vector<32, char>, unsigned int)">;
52875287
}
52885288

52895289
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in {
5290-
def vcvtneph2hf8s_128_mask : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<16, char>, unsigned char)">;
5290+
def vcvtph2hf8s_128_mask : X86Builtin<"_Vector<16, char>(_Vector<8, _Float16>, _Vector<16, char>, unsigned char)">;
52915291
}
52925292

52935293
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<256>] in {
5294-
def vcvtneph2hf8s_256_mask : X86Builtin<"_Vector<16, char>(_Vector<16, _Float16>, _Vector<16, char>, unsigned short)">;
5294+
def vcvtph2hf8s_256_mask : X86Builtin<"_Vector<16, char>(_Vector<16, _Float16>, _Vector<16, char>, unsigned short)">;
52955295
}
52965296

52975297
let Features = "avx10.2-512", Attributes = [NoThrow, RequiredVectorWidth<512>] in {
5298-
def vcvtneph2hf8s_512_mask : X86Builtin<"_Vector<32, char>(_Vector<32, _Float16>, _Vector<32, char>, unsigned int)">;
5298+
def vcvtph2hf8s_512_mask : X86Builtin<"_Vector<32, char>(_Vector<32, _Float16>, _Vector<32, char>, unsigned int)">;
52995299
}
53005300

53015301
let Features = "avx10.2-256", Attributes = [NoThrow, RequiredVectorWidth<128>] in {

clang/include/clang/Driver/Options.td

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5474,6 +5474,10 @@ def mdiv32 : Flag<["-"], "mdiv32">, Group<m_loongarch_Features_Group>,
54745474
HelpText<"Use div.w[u] and mod.w[u] instructions with input not sign-extended.">;
54755475
def mno_div32 : Flag<["-"], "mno-div32">, Group<m_loongarch_Features_Group>,
54765476
HelpText<"Do not use div.w[u] and mod.w[u] instructions with input not sign-extended.">;
5477+
def mscq : Flag<["-"], "mscq">, Group<m_loongarch_Features_Group>,
5478+
HelpText<"Enable sc.q instruction.">;
5479+
def mno_scq : Flag<["-"], "mno-scq">, Group<m_loongarch_Features_Group>,
5480+
HelpText<"Disable sc.q instruction.">;
54775481
def mannotate_tablejump : Flag<["-"], "mannotate-tablejump">, Group<m_loongarch_Features_Group>,
54785482
HelpText<"Enable annotate table jump instruction to correlate it with the jump table.">;
54795483
def mno_annotate_tablejump : Flag<["-"], "mno-annotate-tablejump">, Group<m_loongarch_Features_Group>,

clang/include/clang/Serialization/ASTReader.h

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -546,11 +546,18 @@ class ASTReader
546546

547547
/// Mapping from main decl ID to the related decls IDs.
548548
///
549-
/// These related decls have to be loaded right after the main decl.
550-
/// It is required to have canonical declaration for related decls from the
551-
/// same module as the enclosing main decl. Without this, due to lazy
552-
/// deserialization, canonical declarations for the main decl and related can
553-
/// be selected from different modules.
549+
/// The key is the main decl ID, and the value is a vector of related decls
550+
/// that must be loaded immediately after the main decl. This is necessary
551+
/// to ensure that the definition for related decls comes from the same module
552+
/// as the enclosing main decl. Without this, due to lazy deserialization,
553+
/// the definition for the main decl and related decls may come from different
554+
/// modules. It is used for the following cases:
555+
/// - Lambda inside a template function definition: The main declaration is
556+
/// the enclosing function, and the related declarations are the lambda
557+
/// declarations.
558+
/// - Friend function defined inside a template CXXRecord declaration: The
559+
/// main declaration is the enclosing record, and the related declarations
560+
/// are the friend functions.
554561
llvm::DenseMap<GlobalDeclID, SmallVector<GlobalDeclID, 4>> RelatedDeclsMap;
555562

556563
struct PendingUpdateRecord {

clang/lib/AST/JSONNodeDumper.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1537,9 +1537,9 @@ void JSONNodeDumper::VisitExprWithCleanups(const ExprWithCleanups *EWC) {
15371537
if (EWC->getNumObjects()) {
15381538
JOS.attributeArray("cleanups", [this, EWC] {
15391539
for (const ExprWithCleanups::CleanupObject &CO : EWC->getObjects())
1540-
if (auto *BD = CO.dyn_cast<BlockDecl *>()) {
1540+
if (auto *BD = dyn_cast<BlockDecl *>(CO)) {
15411541
JOS.value(createBareDeclRef(BD));
1542-
} else if (auto *CLE = CO.dyn_cast<CompoundLiteralExpr *>()) {
1542+
} else if (auto *CLE = dyn_cast<CompoundLiteralExpr *>(CO)) {
15431543
llvm::json::Object Obj;
15441544
Obj["id"] = createPointerRepresentation(CLE);
15451545
Obj["kind"] = CLE->getStmtClassName();

clang/lib/Basic/Targets/LoongArch.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ void LoongArchTargetInfo::getTargetDefines(const LangOptions &Opts,
206206
// arch feature set will be used to include all sub-features belonging to
207207
// the V1.1 ISA version.
208208
if (HasFeatureFrecipe && HasFeatureLAM_BH && HasFeatureLAMCAS &&
209-
HasFeatureLD_SEQ_SA && HasFeatureDiv32)
209+
HasFeatureLD_SEQ_SA && HasFeatureDiv32 && HasFeatureSCQ)
210210
Builder.defineMacro("__loongarch_arch",
211211
Twine('"') + "la64v1.1" + Twine('"'));
212212
else
@@ -249,6 +249,9 @@ void LoongArchTargetInfo::getTargetDefines(const LangOptions &Opts,
249249
if (HasFeatureDiv32)
250250
Builder.defineMacro("__loongarch_div32", Twine(1));
251251

252+
if (HasFeatureSCQ)
253+
Builder.defineMacro("__loongarch_scq", Twine(1));
254+
252255
StringRef ABI = getABI();
253256
if (ABI == "lp64d" || ABI == "lp64f" || ABI == "lp64s")
254257
Builder.defineMacro("__loongarch_lp64");
@@ -333,6 +336,8 @@ bool LoongArchTargetInfo::handleTargetFeatures(
333336
HasFeatureLD_SEQ_SA = true;
334337
else if (Feature == "+div32")
335338
HasFeatureDiv32 = true;
339+
else if (Feature == "+scq")
340+
HasFeatureSCQ = true;
336341
}
337342
return true;
338343
}

clang/lib/Basic/Targets/LoongArch.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class LLVM_LIBRARY_VISIBILITY LoongArchTargetInfo : public TargetInfo {
3434
bool HasFeatureLAMCAS;
3535
bool HasFeatureLD_SEQ_SA;
3636
bool HasFeatureDiv32;
37+
bool HasFeatureSCQ;
3738

3839
public:
3940
LoongArchTargetInfo(const llvm::Triple &Triple, const TargetOptions &)
@@ -47,6 +48,7 @@ class LLVM_LIBRARY_VISIBILITY LoongArchTargetInfo : public TargetInfo {
4748
HasFeatureLAMCAS = false;
4849
HasFeatureLD_SEQ_SA = false;
4950
HasFeatureDiv32 = false;
51+
HasFeatureSCQ = false;
5052
LongDoubleWidth = 128;
5153
LongDoubleAlign = 128;
5254
LongDoubleFormat = &llvm::APFloat::IEEEquad();

clang/lib/CodeGen/CGOpenMPRuntime.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4079,7 +4079,7 @@ static void emitDependData(CodeGenFunction &CGF, QualType &KmpDependInfoTy,
40794079
Size = llvm::ConstantInt::get(CGF.SizeTy, 0);
40804080
}
40814081
LValue Base;
4082-
if (unsigned *P = Pos.dyn_cast<unsigned *>()) {
4082+
if (unsigned *P = dyn_cast<unsigned *>(Pos)) {
40834083
Base = CGF.MakeAddrLValue(
40844084
CGF.Builder.CreateConstGEP(DependenciesArray, *P), KmpDependInfoTy);
40854085
} else {
@@ -4109,7 +4109,7 @@ static void emitDependData(CodeGenFunction &CGF, QualType &KmpDependInfoTy,
41094109
CGF.EmitStoreOfScalar(
41104110
llvm::ConstantInt::get(LLVMFlagsTy, static_cast<unsigned int>(DepKind)),
41114111
FlagsLVal);
4112-
if (unsigned *P = Pos.dyn_cast<unsigned *>()) {
4112+
if (unsigned *P = dyn_cast<unsigned *>(Pos)) {
41134113
++(*P);
41144114
} else {
41154115
LValue &PosLVal = *cast<LValue *>(Pos);

clang/lib/Driver/ToolChains/Arch/ARM.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -443,14 +443,13 @@ arm::FloatABI arm::getDefaultFloatABI(const llvm::Triple &Triple) {
443443
case llvm::Triple::MuslEABIHF:
444444
case llvm::Triple::EABIHF:
445445
return FloatABI::Hard;
446+
case llvm::Triple::Android:
446447
case llvm::Triple::GNUEABI:
447448
case llvm::Triple::GNUEABIT64:
448449
case llvm::Triple::MuslEABI:
449450
case llvm::Triple::EABI:
450451
// EABI is always AAPCS, and if it was not marked 'hard', it's softfp
451452
return FloatABI::SoftFP;
452-
case llvm::Triple::Android:
453-
return (SubArch >= 7) ? FloatABI::SoftFP : FloatABI::Soft;
454453
default:
455454
return FloatABI::Invalid;
456455
}

0 commit comments

Comments
 (0)