Skip to content

Commit e16352d

Browse files
committed
Merge commit 'a4e420ea642ad8a375458e3e975fe21b610b5081' into llvmspirv_pulldown
2 parents 9215a9e + a4e420e commit e16352d

File tree

277 files changed

+7324
-4784
lines changed

Some content is hidden

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

277 files changed

+7324
-4784
lines changed

bolt/include/bolt/Core/BinaryLoop.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#ifndef BOLT_CORE_BINARY_LOOP_H
1616
#define BOLT_CORE_BINARY_LOOP_H
1717

18-
#include "llvm/Analysis/LoopInfoImpl.h"
18+
#include "llvm/Support/GenericLoopInfoImpl.h"
1919

2020
namespace llvm {
2121
namespace bolt {

bolt/lib/Passes/TailDuplication.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "bolt/Passes/TailDuplication.h"
1414
#include "llvm/ADT/DenseMap.h"
1515
#include "llvm/MC/MCRegisterInfo.h"
16+
#include <queue>
1617

1718
#include <numeric>
1819

bolt/lib/Rewrite/RewriteInstance.cpp

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include "llvm/DebugInfo/DWARF/DWARFContext.h"
3535
#include "llvm/DebugInfo/DWARF/DWARFDebugFrame.h"
3636
#include "llvm/ExecutionEngine/RuntimeDyld.h"
37+
#include "llvm/IR/Function.h"
3738
#include "llvm/MC/MCAsmBackend.h"
3839
#include "llvm/MC/MCAsmInfo.h"
3940
#include "llvm/MC/MCAsmLayout.h"
@@ -1919,14 +1920,7 @@ int64_t getRelocationAddend(const ELFObjectFile<ELFT> *Obj,
19191920

19201921
int64_t getRelocationAddend(const ELFObjectFileBase *Obj,
19211922
const RelocationRef &Rel) {
1922-
if (auto *ELF32LE = dyn_cast<ELF32LEObjectFile>(Obj))
1923-
return getRelocationAddend(ELF32LE, Rel);
1924-
if (auto *ELF64LE = dyn_cast<ELF64LEObjectFile>(Obj))
1925-
return getRelocationAddend(ELF64LE, Rel);
1926-
if (auto *ELF32BE = dyn_cast<ELF32BEObjectFile>(Obj))
1927-
return getRelocationAddend(ELF32BE, Rel);
1928-
auto *ELF64BE = cast<ELF64BEObjectFile>(Obj);
1929-
return getRelocationAddend(ELF64BE, Rel);
1923+
return getRelocationAddend(cast<ELF64LEObjectFile>(Obj), Rel);
19301924
}
19311925

19321926
template <typename ELFT>
@@ -1953,14 +1947,7 @@ uint32_t getRelocationSymbol(const ELFObjectFile<ELFT> *Obj,
19531947

19541948
uint32_t getRelocationSymbol(const ELFObjectFileBase *Obj,
19551949
const RelocationRef &Rel) {
1956-
if (auto *ELF32LE = dyn_cast<ELF32LEObjectFile>(Obj))
1957-
return getRelocationSymbol(ELF32LE, Rel);
1958-
if (auto *ELF64LE = dyn_cast<ELF64LEObjectFile>(Obj))
1959-
return getRelocationSymbol(ELF64LE, Rel);
1960-
if (auto *ELF32BE = dyn_cast<ELF32BEObjectFile>(Obj))
1961-
return getRelocationSymbol(ELF32BE, Rel);
1962-
auto *ELF64BE = cast<ELF64BEObjectFile>(Obj);
1963-
return getRelocationSymbol(ELF64BE, Rel);
1950+
return getRelocationSymbol(cast<ELF64LEObjectFile>(Obj), Rel);
19641951
}
19651952
} // anonymous namespace
19661953

clang-tools-extra/clang-tidy/modernize/MacroToEnumCheck.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,11 @@ using MacroList = SmallVector<EnumMacro>;
9393
enum class IncludeGuard { None, FileChanged, IfGuard, DefineGuard };
9494

9595
struct FileState {
96-
FileState()
97-
: ConditionScopes(0), LastLine(0), GuardScanner(IncludeGuard::None) {}
96+
FileState() = default;
9897

99-
int ConditionScopes;
100-
unsigned int LastLine;
101-
IncludeGuard GuardScanner;
98+
int ConditionScopes = 0;
99+
unsigned int LastLine = 0;
100+
IncludeGuard GuardScanner = IncludeGuard::None;
102101
SourceLocation LastMacroLocation;
103102
};
104103

clang/include/clang/Driver/Options.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1628,7 +1628,7 @@ def femit_all_decls : Flag<["-"], "femit-all-decls">, Group<f_Group>, Flags<[CC1
16281628
defm emulated_tls : BoolFOption<"emulated-tls",
16291629
CodeGenOpts<"EmulatedTLS">, DefaultFalse,
16301630
PosFlag<SetTrue, [CC1Option], "Use emutls functions to access thread_local variables">,
1631-
NegFlag<SetFalse>, BothFlags<[CC1Option]>>;
1631+
NegFlag<SetFalse>>;
16321632
def fencoding_EQ : Joined<["-"], "fencoding=">, Group<f_Group>;
16331633
def ferror_limit_EQ : Joined<["-"], "ferror-limit=">, Group<f_Group>, Flags<[CoreOption]>;
16341634
defm exceptions : BoolFOption<"exceptions",

clang/lib/AST/ASTContext.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8226,7 +8226,7 @@ static bool hasTemplateSpecializationInEncodedString(const Type *T,
82268226
if (!CXXRD->hasDefinition() || !VisitBasesAndFields)
82278227
return false;
82288228

8229-
for (auto B : CXXRD->bases())
8229+
for (const auto &B : CXXRD->bases())
82308230
if (hasTemplateSpecializationInEncodedString(B.getType().getTypePtr(),
82318231
true))
82328232
return true;

clang/lib/AST/ComputeDependence.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -764,7 +764,7 @@ ExprDependence clang::computeDependence(DependentScopeDeclRefExpr *E) {
764764
D |= getDependenceInExpr(E->getNameInfo());
765765
if (auto *Q = E->getQualifier())
766766
D |= toExprDependence(Q->getDependence());
767-
for (auto A : E->template_arguments())
767+
for (const auto &A : E->template_arguments())
768768
D |= toExprDependence(A.getArgument().getDependence());
769769
return D;
770770
}
@@ -817,7 +817,7 @@ ExprDependence clang::computeDependence(CXXDependentScopeMemberExpr *E) {
817817
if (auto *Q = E->getQualifier())
818818
D |= toExprDependence(Q->getDependence());
819819
D |= getDependenceInExpr(E->getMemberNameInfo());
820-
for (auto A : E->template_arguments())
820+
for (const auto &A : E->template_arguments())
821821
D |= toExprDependence(A.getArgument().getDependence());
822822
return D;
823823
}

clang/lib/ASTMatchers/Dynamic/Marshallers.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1008,7 +1008,7 @@ class MapAnyOfBuilderDescriptor : public MatcherDescriptor {
10081008
Diagnostics *) const override {
10091009

10101010
std::vector<ASTNodeKind> NodeKinds;
1011-
for (auto Arg : Args) {
1011+
for (const auto &Arg : Args) {
10121012
if (!Arg.Value.isNodeKind())
10131013
return {};
10141014
NodeKinds.push_back(Arg.Value.getNodeKind());

clang/lib/CodeGen/BackendUtil.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,6 @@ static bool initTargetOptions(DiagnosticsEngine &Diags,
432432
CodeGenOpts.UniqueBasicBlockSectionNames;
433433
Options.TLSSize = CodeGenOpts.TLSSize;
434434
Options.EmulatedTLS = CodeGenOpts.EmulatedTLS;
435-
Options.ExplicitEmulatedTLS = true;
436435
Options.DebuggerTuning = CodeGenOpts.getDebuggerTuning();
437436
Options.EmitStackSizeSection = CodeGenOpts.StackSizeSection;
438437
Options.StackUsageOutput = CodeGenOpts.StackUsageOutput;

clang/lib/CodeGen/CGVTables.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1269,13 +1269,13 @@ llvm::GlobalObject::VCallVisibility CodeGenModule::GetVCallVisibilityLevel(
12691269
else
12701270
TypeVis = llvm::GlobalObject::VCallVisibilityPublic;
12711271

1272-
for (auto B : RD->bases())
1272+
for (const auto &B : RD->bases())
12731273
if (B.getType()->getAsCXXRecordDecl()->isDynamicClass())
12741274
TypeVis = std::min(
12751275
TypeVis,
12761276
GetVCallVisibilityLevel(B.getType()->getAsCXXRecordDecl(), Visited));
12771277

1278-
for (auto B : RD->vbases())
1278+
for (const auto &B : RD->vbases())
12791279
if (B.getType()->getAsCXXRecordDecl()->isDynamicClass())
12801280
TypeVis = std::min(
12811281
TypeVis,

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

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,28 @@ StringRef loongarch::getLoongArchABI(const Driver &D, const ArgList &Args,
5454
}
5555

5656
// Choose a default based on the triple.
57-
return IsLA32 ? "ilp32d" : "lp64d";
57+
// Honor the explicit ABI modifier suffix in triple's environment part if
58+
// present, falling back to {ILP32,LP64}D otherwise.
59+
switch (Triple.getEnvironment()) {
60+
case llvm::Triple::GNUSF:
61+
return IsLA32 ? "ilp32s" : "lp64s";
62+
case llvm::Triple::GNUF32:
63+
return IsLA32 ? "ilp32f" : "lp64f";
64+
case llvm::Triple::GNUF64:
65+
// This was originally permitted (and indeed the canonical way) to
66+
// represent the {ILP32,LP64}D ABIs, but in Feb 2023 Loongson decided to
67+
// drop the explicit suffix in favor of unmarked `-gnu` for the
68+
// "general-purpose" ABIs, among other non-technical reasons.
69+
//
70+
// The spec change did not mention whether existing usages of "gnuf64"
71+
// shall remain valid or not, so we are going to continue recognizing it
72+
// for some time, until it is clear that everyone else has migrated away
73+
// from it.
74+
[[fallthrough]];
75+
case llvm::Triple::GNU:
76+
default:
77+
return IsLA32 ? "ilp32d" : "lp64d";
78+
}
5879
}
5980

6081
void loongarch::getLoongArchTargetFeatures(const Driver &D,

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6773,10 +6773,12 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
67736773
Args.AddLastArg(CmdArgs, options::OPT_femit_all_decls);
67746774
Args.AddLastArg(CmdArgs, options::OPT_fheinous_gnu_extensions);
67756775
Args.AddLastArg(CmdArgs, options::OPT_fdigraphs, options::OPT_fno_digraphs);
6776-
Args.AddLastArg(CmdArgs, options::OPT_femulated_tls,
6777-
options::OPT_fno_emulated_tls);
67786776
Args.AddLastArg(CmdArgs, options::OPT_fzero_call_used_regs_EQ);
67796777

6778+
if (Args.hasFlag(options::OPT_femulated_tls, options::OPT_fno_emulated_tls,
6779+
Triple.hasDefaultEmulatedTLS()))
6780+
CmdArgs.push_back("-femulated-tls");
6781+
67806782
if (Arg *A = Args.getLastArg(options::OPT_fzero_call_used_regs_EQ)) {
67816783
// FIXME: There's no reason for this to be restricted to X86. The backend
67826784
// code needs to be changed to include the appropriate function calls

clang/lib/Driver/ToolChains/CommonArgs.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -775,11 +775,10 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args,
775775
D.Diag(clang::diag::warn_drv_fjmc_for_elf_only);
776776
}
777777

778-
if (Arg *A = Args.getLastArg(options::OPT_femulated_tls,
779-
options::OPT_fno_emulated_tls)) {
780-
bool Enable = A->getOption().getID() == options::OPT_femulated_tls;
781-
CmdArgs.push_back(Args.MakeArgString(
782-
Twine(PluginOptPrefix) + "-emulated-tls=" + (Enable ? "1" : "0")));
778+
if (Args.hasFlag(options::OPT_femulated_tls, options::OPT_fno_emulated_tls,
779+
ToolChain.getTriple().hasDefaultEmulatedTLS())) {
780+
CmdArgs.push_back(
781+
Args.MakeArgString(Twine(PluginOptPrefix) + "-emulated-tls"));
783782
}
784783

785784
if (Args.hasFlag(options::OPT_fstack_size_section,

clang/lib/Driver/ToolChains/Linux.cpp

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,39 @@ std::string Linux::getMultiarchTriple(const Driver &D,
8686
case llvm::Triple::aarch64_be:
8787
return "aarch64_be-linux-gnu";
8888

89+
case llvm::Triple::loongarch64: {
90+
const char *Libc;
91+
const char *FPFlavor;
92+
93+
if (TargetTriple.isGNUEnvironment()) {
94+
Libc = "gnu";
95+
} else if (TargetTriple.isMusl()) {
96+
Libc = "musl";
97+
} else {
98+
return TargetTriple.str();
99+
}
100+
101+
switch (TargetEnvironment) {
102+
default:
103+
return TargetTriple.str();
104+
case llvm::Triple::GNUSF:
105+
FPFlavor = "sf";
106+
break;
107+
case llvm::Triple::GNUF32:
108+
FPFlavor = "f32";
109+
break;
110+
case llvm::Triple::GNU:
111+
case llvm::Triple::GNUF64:
112+
// This was going to be "f64" in an earlier Toolchain Conventions
113+
// revision, but starting from Feb 2023 the F64 ABI variants are
114+
// unmarked in their canonical forms.
115+
FPFlavor = "";
116+
break;
117+
}
118+
119+
return (Twine("loongarch64-linux-") + Libc + FPFlavor).str();
120+
}
121+
89122
case llvm::Triple::m68k:
90123
return "m68k-linux-gnu";
91124

clang/lib/Frontend/CompilerInvocation.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1543,8 +1543,8 @@ void CompilerInvocation::GenerateCodeGenArgs(
15431543
F.Filename, SA);
15441544
}
15451545

1546-
GenerateArg(
1547-
Args, Opts.EmulatedTLS ? OPT_femulated_tls : OPT_fno_emulated_tls, SA);
1546+
if (Opts.EmulatedTLS)
1547+
GenerateArg(Args, OPT_femulated_tls, SA);
15481548

15491549
if (Opts.FPDenormalMode != llvm::DenormalMode::getIEEE())
15501550
GenerateArg(Args, OPT_fdenormal_fp_math_EQ, Opts.FPDenormalMode.str(), SA);
@@ -1897,11 +1897,6 @@ bool CompilerInvocation::ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args,
18971897
Opts.LinkBitcodeFiles.push_back(F);
18981898
}
18991899

1900-
if (!Args.getLastArg(OPT_femulated_tls) &&
1901-
!Args.getLastArg(OPT_fno_emulated_tls)) {
1902-
Opts.EmulatedTLS = T.hasDefaultEmulatedTLS();
1903-
}
1904-
19051900
if (Arg *A = Args.getLastArg(OPT_ftlsmodel_EQ)) {
19061901
if (T.isOSAIX()) {
19071902
StringRef Name = A->getValue();

clang/lib/Sema/SemaDeclCXX.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4017,7 +4017,7 @@ namespace {
40174017
}
40184018

40194019
llvm::SmallPtrSet<QualType, 4> UninitializedBaseClasses;
4020-
for (auto I : RD->bases())
4020+
for (const auto &I : RD->bases())
40214021
UninitializedBaseClasses.insert(I.getType().getCanonicalType());
40224022

40234023
if (UninitializedFields.empty() && UninitializedBaseClasses.empty())

clang/test/CodeGen/thinlto-distributed-newpm.ll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
; CHECK-O: Running pass: WholeProgramDevirtPass
2323
; CHECK-O: Running pass: LowerTypeTestsPass
24-
; CHECK-O: Running pass: ForceFunctionAttrsPass
2524
; CHECK-O: Running pass: PGOIndirectCallPromotion
2625
; CHECK-O: Running pass: InferFunctionAttrsPass
2726
; CHECK-O: Running pass: LowerExpectIntrinsicPass on main

clang/test/Driver/Inputs/debian_loong64_tree/usr/include/c++/13/backward/.keep

Whitespace-only changes.

clang/test/Driver/Inputs/debian_loong64_tree/usr/include/loongarch64-linux-gnu/c++/.keep

Whitespace-only changes.

clang/test/Driver/Inputs/debian_loong64_tree/usr/lib/gcc/loongarch64-linux-gnu/13/crtbegin.o

Whitespace-only changes.

clang/test/Driver/Inputs/debian_loong64_tree/usr/lib/gcc/loongarch64-linux-gnu/13/crtend.o

Whitespace-only changes.

clang/test/Driver/Inputs/debian_loong64_tree/usr/lib/gcc/loongarch64-linux-gnu/13/include/.keep

Whitespace-only changes.

clang/test/Driver/Inputs/debian_loong64_tree/usr/lib/loongarch64-linux-gnu/crt1.o

Whitespace-only changes.

clang/test/Driver/Inputs/debian_loong64_tree/usr/lib/loongarch64-linux-gnu/crti.o

Whitespace-only changes.

clang/test/Driver/Inputs/debian_loong64_tree/usr/lib/loongarch64-linux-gnu/crtn.o

Whitespace-only changes.

clang/test/Driver/emulated-tls.cpp

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
// Android, Cygwin and OpenBSD use emutls by default.
2-
// Clang should pass -femulated-tls or -fno-emulated-tls to cc1 if they are used,
3-
// and cc1 should set up EmulatedTLS and ExplicitEmulatedTLS to LLVM CodeGen.
2+
// Clang should pass -femulated-tls to cc1 if they are used,
3+
// and cc1 should set up EmulatedTLS to LLVM CodeGen.
44
//
5-
// RUN: %clang -### -target arm-linux-androideabi %s 2>&1 \
6-
// RUN: | FileCheck -check-prefix=DEFAULT %s
7-
// RUN: %clang -### -target arm-linux-gnu %s 2>&1 \
8-
// RUN: | FileCheck -check-prefix=DEFAULT %s
9-
// RUN: %clang -### -target i686-pc-cygwin %s 2>&1 \
10-
// RUN: | FileCheck -check-prefix=DEFAULT %s
11-
// RUN: %clang -### -target i686-pc-openbsd %s 2>&1 \
12-
// RUN: | FileCheck -check-prefix=DEFAULT %s
5+
// RUN: %clang -### --target=arm-linux-androideabi %s 2>&1 \
6+
// RUN: | FileCheck -check-prefix=EMU %s
7+
// RUN: %clang -### --target=arm-linux-gnu %s 2>&1 \
8+
// RUN: | FileCheck -check-prefix=NOEMU %s
9+
// RUN: %clang -### --target=i686-pc-cygwin %s 2>&1 \
10+
// RUN: | FileCheck -check-prefix=EMU %s
11+
// RUN: %clang -### --target=i686-pc-openbsd %s 2>&1 \
12+
// RUN: | FileCheck -check-prefix=EMU %s
1313

1414
// RUN: %clang -### -target arm-linux-androideabi -fno-emulated-tls -femulated-tls %s 2>&1 \
1515
// RUN: | FileCheck -check-prefix=EMU %s
@@ -42,18 +42,14 @@
4242

4343
// Default without -f[no-]emulated-tls, will be decided by the target triple.
4444
// DEFAULT-NOT: "-cc1" {{.*}}"-femulated-tls"
45-
// DEFAULT-NOT: "-cc1" {{.*}}"-fno-emulated-tls"
4645

47-
// Explicit and last -f[no-]emulated-tls flag will be passed to cc1.
48-
// EMU: "-cc1" {{.*}}"-femulated-tls"
49-
// EMU-NOT: "-cc1" {{.*}}"-fno-emulated-tls"
46+
// EMU: "-cc1"
47+
// EMU-SAME: "-femulated-tls"
5048

51-
// NOEMU: "-cc1" {{.*}}"-fno-emulated-tls"
52-
// NOEMU-NOT: "-cc1" {{.*}}"-femulated-tls"
49+
// NOEMU: "-cc1"
50+
// NOEMU-NOT: "-femulated-tls"
5351

5452
// LTO related checks
55-
// LTO_NOEMUTLS: plugin-opt=-emulated-tls=0
56-
// LTO_NOEMUTLS-NOT: plugin-opt=-emulated-tls=1
53+
// LTO_NOEMUTLS-NOT: "-plugin-opt=-emulated-tls"
5754

58-
// LTO_EMUTLS: plugin-opt=-emulated-tls=1
59-
// LTO_EMUTLS-NOT: plugin-opt=-emulated-tls=0
55+
// LTO_EMUTLS: "-plugin-opt=-emulated-tls"

clang/test/Driver/linux-header-search.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,32 @@
244244
// CHECK-GENTOO-4-9-X-32: "-internal-externc-isystem" "[[SYSROOT]]/include"
245245
// CHECK-GENTOO-4-9-X-32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
246246
//
247+
// Check header search on Debian loong64
248+
// RUN: %clang -### %s -fsyntax-only 2>&1 \
249+
// RUN: --target=loongarch64-unknown-linux-gnu -stdlib=libstdc++ \
250+
// RUN: --sysroot=%S/Inputs/debian_loong64_tree \
251+
// RUN: --gcc-toolchain="" \
252+
// RUN: | FileCheck --check-prefix=CHECK-LOONG64-GNU %s
253+
//
254+
// Check that "-gnuf64" is seen as "-gnu" for loong64.
255+
// RUN: %clang -### %s -fsyntax-only 2>&1 \
256+
// RUN: --target=loongarch64-unknown-linux-gnuf64 -stdlib=libstdc++ \
257+
// RUN: --sysroot=%S/Inputs/debian_loong64_tree \
258+
// RUN: --gcc-toolchain="" \
259+
// RUN: | FileCheck --check-prefix=CHECK-LOONG64-GNU %s
260+
// CHECK-LOONG64-GNU: "-cc1"
261+
// CHECK-LOONG64-GNU: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
262+
// CHECK-LOONG64-GNU: "-isysroot" "[[SYSROOT:[^"]+]]"
263+
// CHECK-LOONG64-GNU: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/loongarch64-linux-gnu/13/../../../../include/c++/13"
264+
// CHECK-LOONG64-GNU: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/loongarch64-linux-gnu/13/../../../../include/c++/13/loongarch64-linux-gnu"
265+
// CHECK-LOONG64-GNU: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/loongarch64-linux-gnu/13/../../../../include/c++/13/backward"
266+
// CHECK-LOONG64-GNU: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
267+
// CHECK-LOONG64-GNU: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
268+
// CHECK-LOONG64-GNU: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/loongarch64-linux-gnu/13/../../../../loongarch64-linux-gnu/include"
269+
// CHECK-LOONG64-GNU: "-internal-externc-isystem" "[[SYSROOT]]/usr/include/loongarch64-linux-gnu"
270+
// CHECK-LOONG64-GNU: "-internal-externc-isystem" "[[SYSROOT]]/include"
271+
// CHECK-LOONG64-GNU: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
272+
//
247273
// Check header search on Debian 6 / MIPS64
248274
// RUN: %clang -### %s -fsyntax-only 2>&1 \
249275
// RUN: --target=mips64-unknown-linux-gnuabi64 -stdlib=libstdc++ \

0 commit comments

Comments
 (0)