Skip to content

Commit 401ed9d

Browse files
SC llvm teamSC llvm team
authored andcommitted
Merged main:95a4d30b0d64 into amd-gfx:e579a32bca2b
Local branch amd-gfx e579a32 Merged main:874b4fb6adf7 into amd-gfx:d19b7c1048e4 Remote branch main 95a4d30 [NFC] Remove trailing white spaces in `clang/docs/ReleaseNotes.rst`
2 parents e579a32 + 95a4d30 commit 401ed9d

File tree

94 files changed

+6585
-450
lines changed

Some content is hidden

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

94 files changed

+6585
-450
lines changed

clang/docs/ClangFormat.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ to format C/C++/Java/JavaScript/JSON/Objective-C/Protobuf/C# code.
4949
supported:
5050
CSharp: .cs
5151
Java: .java
52-
JavaScript: .mjs .js .ts
52+
JavaScript: .js .mjs .cjs .ts
5353
Json: .json
5454
Objective-C: .m .mm
5555
Proto: .proto .protodevel

clang/docs/ReleaseNotes.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ Resolutions to C++ Defect Reports
310310
by default.
311311
(`CWG2521: User-defined literals and reserved identifiers <https://cplusplus.github.io/CWG/issues/2521.html>`_).
312312

313-
- Fix name lookup for a dependent base class that is the current instantiation.
313+
- Fix name lookup for a dependent base class that is the current instantiation.
314314
(`CWG591: When a dependent base class is the current instantiation <https://cplusplus.github.io/CWG/issues/591.html>`_).
315315

316316
C Language Changes
@@ -971,6 +971,8 @@ AST Matchers
971971
- Ensure ``hasName`` matches template specializations across inline namespaces,
972972
making `matchesNodeFullSlow` and `matchesNodeFullFast` consistent.
973973

974+
- Improved the performance of the ``getExpansionLocOfMacro`` by tracking already processed macros during recursion.
975+
974976
- Add ``exportDecl`` matcher to match export declaration.
975977

976978
clang-format

clang/include/clang/Driver/Options.td

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1786,12 +1786,12 @@ defm debug_info_for_profiling : BoolFOption<"debug-info-for-profiling",
17861786
PosFlag<SetTrue, [], [ClangOption, CC1Option],
17871787
"Emit extra debug info to make sample profile more accurate">,
17881788
NegFlag<SetFalse>>;
1789-
def fprofile_generate_cold_function_coverage : Flag<["-"], "fprofile-generate-cold-function-coverage">,
1789+
def fprofile_generate_cold_function_coverage : Flag<["-"], "fprofile-generate-cold-function-coverage">,
17901790
Group<f_Group>, Visibility<[ClangOption, CLOption]>,
17911791
HelpText<"Generate instrumented code to collect coverage info for cold functions into default.profraw file (overridden by '=' form of option or LLVM_PROFILE_FILE env var)">;
1792-
def fprofile_generate_cold_function_coverage_EQ : Joined<["-"], "fprofile-generate-cold-function-coverage=">,
1792+
def fprofile_generate_cold_function_coverage_EQ : Joined<["-"], "fprofile-generate-cold-function-coverage=">,
17931793
Group<f_Group>, Visibility<[ClangOption, CLOption]>, MetaVarName<"<directory>">,
1794-
HelpText<"Generate instrumented code to collect coverage info for cold functions into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var)">;
1794+
HelpText<"Generate instrumented code to collect coverage info for cold functions into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var)">;
17951795
def fprofile_instr_generate : Flag<["-"], "fprofile-instr-generate">,
17961796
Group<f_Group>, Visibility<[ClangOption, CLOption]>,
17971797
HelpText<"Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM_PROFILE_FILE env var)">;

clang/lib/ASTMatchers/ASTMatchersInternal.cpp

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "clang/Basic/LLVM.h"
2222
#include "clang/Lex/Lexer.h"
2323
#include "llvm/ADT/ArrayRef.h"
24+
#include "llvm/ADT/DenseSet.h"
2425
#include "llvm/ADT/IntrusiveRefCntPtr.h"
2526
#include "llvm/ADT/SmallString.h"
2627
#include "llvm/ADT/SmallVector.h"
@@ -697,27 +698,42 @@ static bool isTokenAtLoc(const SourceManager &SM, const LangOptions &LangOpts,
697698
return !Invalid && Text == TokenText;
698699
}
699700

700-
std::optional<SourceLocation>
701-
getExpansionLocOfMacro(StringRef MacroName, SourceLocation Loc,
702-
const ASTContext &Context) {
701+
static std::optional<SourceLocation> getExpansionLocOfMacroRecursive(
702+
StringRef MacroName, SourceLocation Loc, const ASTContext &Context,
703+
llvm::DenseSet<SourceLocation> &CheckedLocations) {
703704
auto &SM = Context.getSourceManager();
704705
const LangOptions &LangOpts = Context.getLangOpts();
705706
while (Loc.isMacroID()) {
707+
if (CheckedLocations.count(Loc))
708+
return std::nullopt;
709+
CheckedLocations.insert(Loc);
706710
SrcMgr::ExpansionInfo Expansion =
707711
SM.getSLocEntry(SM.getFileID(Loc)).getExpansion();
708-
if (Expansion.isMacroArgExpansion())
712+
if (Expansion.isMacroArgExpansion()) {
709713
// Check macro argument for an expansion of the given macro. For example,
710714
// `F(G(3))`, where `MacroName` is `G`.
711-
if (std::optional<SourceLocation> ArgLoc = getExpansionLocOfMacro(
712-
MacroName, Expansion.getSpellingLoc(), Context))
715+
if (std::optional<SourceLocation> ArgLoc =
716+
getExpansionLocOfMacroRecursive(MacroName,
717+
Expansion.getSpellingLoc(),
718+
Context, CheckedLocations)) {
713719
return ArgLoc;
720+
}
721+
}
714722
Loc = Expansion.getExpansionLocStart();
715723
if (isTokenAtLoc(SM, LangOpts, MacroName, Loc))
716724
return Loc;
717725
}
718726
return std::nullopt;
719727
}
720728

729+
std::optional<SourceLocation>
730+
getExpansionLocOfMacro(StringRef MacroName, SourceLocation Loc,
731+
const ASTContext &Context) {
732+
llvm::DenseSet<SourceLocation> CheckedLocations;
733+
return getExpansionLocOfMacroRecursive(MacroName, Loc, Context,
734+
CheckedLocations);
735+
}
736+
721737
std::shared_ptr<llvm::Regex> createAndVerifyRegex(StringRef Regex,
722738
llvm::Regex::RegexFlags Flags,
723739
StringRef MatcherID) {

clang/lib/Format/Format.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3950,6 +3950,7 @@ static FormatStyle::LanguageKind getLanguageByFileName(StringRef FileName) {
39503950
return FormatStyle::LK_Java;
39513951
if (FileName.ends_with_insensitive(".js") ||
39523952
FileName.ends_with_insensitive(".mjs") ||
3953+
FileName.ends_with_insensitive(".cjs") ||
39533954
FileName.ends_with_insensitive(".ts")) {
39543955
return FormatStyle::LK_JavaScript; // (module) JavaScript or TypeScript.
39553956
}

clang/tools/clang-format/ClangFormat.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ static cl::opt<std::string> AssumeFileName(
8787
"supported:\n"
8888
" CSharp: .cs\n"
8989
" Java: .java\n"
90-
" JavaScript: .mjs .js .ts\n"
90+
" JavaScript: .js .mjs .cjs .ts\n"
9191
" Json: .json\n"
9292
" Objective-C: .m .mm\n"
9393
" Proto: .proto .protodevel\n"

clang/tools/clang-format/git-clang-format

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ def main():
9494
# Other languages that clang-format supports
9595
'proto', 'protodevel', # Protocol Buffers
9696
'java', # Java
97-
'mjs', 'js', # JavaScript
97+
'js', 'mjs', 'cjs', # JavaScript
9898
'ts', # TypeScript
9999
'cs', # C Sharp
100100
'json', # Json

flang/unittests/Runtime/CommandTest.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -352,9 +352,6 @@ TEST_F(ZeroArguments, ECLGeneralErrorCommandErrorSync) {
352352
#if defined(_WIN32)
353353
CheckDescriptorEqInt<std::int64_t>(cmdStat.get(), 6);
354354
CheckDescriptorEqStr(cmdMsg.get(), "Invalid command lineXXXXXXXXX");
355-
#elif defined(_AIX)
356-
CheckDescriptorEqInt<std::int64_t>(cmdStat.get(), 6);
357-
CheckDescriptorEqStr(cmdMsg.get(), "Invalid command lineXXXXXXXXX");
358355
#else
359356
CheckDescriptorEqInt<std::int64_t>(cmdStat.get(), 3);
360357
CheckDescriptorEqStr(cmdMsg.get(), "Command line execution failed");

libc/src/__support/OSUtil/linux/exit.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9+
#include "src/__support/OSUtil/linux/syscall.h" // syscall_impl
910
#include "src/__support/common.h"
1011
#include "src/__support/macros/config.h"
11-
#include "syscall.h" // For internal syscall function.
1212
#include <sys/syscall.h> // For syscall numbers.
1313

1414
namespace LIBC_NAMESPACE_DECL {

lld/ELF/Arch/AArch64.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -154,9 +154,9 @@ RelExpr AArch64::getRelExpr(RelType type, const Symbol &s,
154154
case R_AARCH64_MOVW_UABS_G3:
155155
return R_ABS;
156156
case R_AARCH64_AUTH_ABS64:
157-
return R_AARCH64_AUTH;
157+
return RE_AARCH64_AUTH;
158158
case R_AARCH64_TLSDESC_ADR_PAGE21:
159-
return R_AARCH64_TLSDESC_PAGE;
159+
return RE_AARCH64_TLSDESC_PAGE;
160160
case R_AARCH64_TLSDESC_LD64_LO12:
161161
case R_AARCH64_TLSDESC_ADD_LO12:
162162
return R_TLSDESC;
@@ -198,15 +198,15 @@ RelExpr AArch64::getRelExpr(RelType type, const Symbol &s,
198198
return R_PC;
199199
case R_AARCH64_ADR_PREL_PG_HI21:
200200
case R_AARCH64_ADR_PREL_PG_HI21_NC:
201-
return R_AARCH64_PAGE_PC;
201+
return RE_AARCH64_PAGE_PC;
202202
case R_AARCH64_LD64_GOT_LO12_NC:
203203
case R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
204204
return R_GOT;
205205
case R_AARCH64_LD64_GOTPAGE_LO15:
206-
return R_AARCH64_GOT_PAGE;
206+
return RE_AARCH64_GOT_PAGE;
207207
case R_AARCH64_ADR_GOT_PAGE:
208208
case R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21:
209-
return R_AARCH64_GOT_PAGE_PC;
209+
return RE_AARCH64_GOT_PAGE_PC;
210210
case R_AARCH64_GOTPCREL32:
211211
case R_AARCH64_GOT_LD_PREL19:
212212
return R_GOT_PC;
@@ -222,7 +222,7 @@ RelExpr AArch64::getRelExpr(RelType type, const Symbol &s,
222222
RelExpr AArch64::adjustTlsExpr(RelType type, RelExpr expr) const {
223223
if (expr == R_RELAX_TLS_GD_TO_IE) {
224224
if (type == R_AARCH64_TLSDESC_ADR_PAGE21)
225-
return R_AARCH64_RELAX_TLS_GD_TO_IE_PAGE_PC;
225+
return RE_AARCH64_RELAX_TLS_GD_TO_IE_PAGE_PC;
226226
return R_RELAX_TLS_GD_TO_IE_ABS;
227227
}
228228
return expr;
@@ -877,7 +877,7 @@ bool AArch64Relaxer::tryRelaxAdrpLdr(const Relocation &adrpRel,
877877
if (val != llvm::SignExtend64(val, 33))
878878
return false;
879879

880-
Relocation adrpSymRel = {R_AARCH64_PAGE_PC, R_AARCH64_ADR_PREL_PG_HI21,
880+
Relocation adrpSymRel = {RE_AARCH64_PAGE_PC, R_AARCH64_ADR_PREL_PG_HI21,
881881
adrpRel.offset, /*addend=*/0, &sym};
882882
Relocation addRel = {R_ABS, R_AARCH64_ADD_ABS_LO12_NC, ldrRel.offset,
883883
/*addend=*/0, &sym};
@@ -922,21 +922,21 @@ void AArch64::relocateAlloc(InputSectionBase &sec, uint8_t *buf) const {
922922
}
923923

924924
switch (rel.expr) {
925-
case R_AARCH64_GOT_PAGE_PC:
925+
case RE_AARCH64_GOT_PAGE_PC:
926926
if (i + 1 < size &&
927927
relaxer.tryRelaxAdrpLdr(rel, sec.relocs()[i + 1], secAddr, buf)) {
928928
++i;
929929
continue;
930930
}
931931
break;
932-
case R_AARCH64_PAGE_PC:
932+
case RE_AARCH64_PAGE_PC:
933933
if (i + 1 < size &&
934934
relaxer.tryRelaxAdrpAdd(rel, sec.relocs()[i + 1], secAddr, buf)) {
935935
++i;
936936
continue;
937937
}
938938
break;
939-
case R_AARCH64_RELAX_TLS_GD_TO_IE_PAGE_PC:
939+
case RE_AARCH64_RELAX_TLS_GD_TO_IE_PAGE_PC:
940940
case R_RELAX_TLS_GD_TO_IE_ABS:
941941
relaxTlsGdToIe(loc, rel, val);
942942
continue;

lld/ELF/Arch/ARM.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ RelExpr ARM::getRelExpr(RelType type, const Symbol &s,
136136
// GOT(S) + A - P
137137
return R_GOT_PC;
138138
case R_ARM_SBREL32:
139-
return R_ARM_SBREL;
139+
return RE_ARM_SBREL;
140140
case R_ARM_TARGET1:
141141
return ctx.arg.target1Rel ? R_PC : R_ABS;
142142
case R_ARM_TARGET2:
@@ -176,14 +176,14 @@ RelExpr ARM::getRelExpr(RelType type, const Symbol &s,
176176
case R_ARM_THM_ALU_PREL_11_0:
177177
case R_ARM_THM_PC8:
178178
case R_ARM_THM_PC12:
179-
return R_ARM_PCA;
179+
return RE_ARM_PCA;
180180
case R_ARM_MOVW_BREL_NC:
181181
case R_ARM_MOVW_BREL:
182182
case R_ARM_MOVT_BREL:
183183
case R_ARM_THM_MOVW_BREL_NC:
184184
case R_ARM_THM_MOVW_BREL:
185185
case R_ARM_THM_MOVT_BREL:
186-
return R_ARM_SBREL;
186+
return RE_ARM_SBREL;
187187
case R_ARM_NONE:
188188
return R_NONE;
189189
case R_ARM_TLS_LE32:

lld/ELF/Arch/LoongArch.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ RelExpr LoongArch::getRelExpr(const RelType type, const Symbol &s,
428428
case R_LARCH_SUB_ULEB128:
429429
// The LoongArch add/sub relocs behave like the RISCV counterparts; reuse
430430
// the RelExpr to avoid code duplication.
431-
return R_RISCV_ADD;
431+
return RE_RISCV_ADD;
432432
case R_LARCH_32_PCREL:
433433
case R_LARCH_64_PCREL:
434434
case R_LARCH_PCREL20_S2:
@@ -444,17 +444,17 @@ RelExpr LoongArch::getRelExpr(const RelType type, const Symbol &s,
444444
case R_LARCH_TLS_IE_PC_HI20:
445445
case R_LARCH_TLS_IE64_PC_LO20:
446446
case R_LARCH_TLS_IE64_PC_HI12:
447-
return R_LOONGARCH_GOT_PAGE_PC;
447+
return RE_LOONGARCH_GOT_PAGE_PC;
448448
case R_LARCH_GOT_PC_LO12:
449449
case R_LARCH_TLS_IE_PC_LO12:
450-
return R_LOONGARCH_GOT;
450+
return RE_LOONGARCH_GOT;
451451
case R_LARCH_TLS_LD_PC_HI20:
452452
case R_LARCH_TLS_GD_PC_HI20:
453-
return R_LOONGARCH_TLSGD_PAGE_PC;
453+
return RE_LOONGARCH_TLSGD_PAGE_PC;
454454
case R_LARCH_PCALA_HI20:
455-
// Why not R_LOONGARCH_PAGE_PC, majority of references don't go through PLT
456-
// anyway so why waste time checking only to get everything relaxed back to
457-
// it?
455+
// Why not RE_LOONGARCH_PAGE_PC, majority of references don't go through
456+
// PLT anyway so why waste time checking only to get everything relaxed back
457+
// to it?
458458
//
459459
// This is again due to the R_LARCH_PCALA_LO12 on JIRL case, where we want
460460
// both the HI20 and LO12 to potentially refer to the PLT. But in reality
@@ -474,12 +474,12 @@ RelExpr LoongArch::getRelExpr(const RelType type, const Symbol &s,
474474
//
475475
// So, unfortunately we have to again workaround this quirk the same way as
476476
// BFD: assuming every R_LARCH_PCALA_HI20 is potentially PLT-needing, only
477-
// relaxing back to R_LOONGARCH_PAGE_PC if it's known not so at a later
477+
// relaxing back to RE_LOONGARCH_PAGE_PC if it's known not so at a later
478478
// stage.
479-
return R_LOONGARCH_PLT_PAGE_PC;
479+
return RE_LOONGARCH_PLT_PAGE_PC;
480480
case R_LARCH_PCALA64_LO20:
481481
case R_LARCH_PCALA64_HI12:
482-
return R_LOONGARCH_PAGE_PC;
482+
return RE_LOONGARCH_PAGE_PC;
483483
case R_LARCH_GOT_HI20:
484484
case R_LARCH_GOT_LO12:
485485
case R_LARCH_GOT64_LO20:
@@ -501,7 +501,7 @@ RelExpr LoongArch::getRelExpr(const RelType type, const Symbol &s,
501501
case R_LARCH_TLS_DESC_PC_HI20:
502502
case R_LARCH_TLS_DESC64_PC_LO20:
503503
case R_LARCH_TLS_DESC64_PC_HI12:
504-
return R_LOONGARCH_TLSDESC_PAGE_PC;
504+
return RE_LOONGARCH_TLSDESC_PAGE_PC;
505505
case R_LARCH_TLS_DESC_PC_LO12:
506506
case R_LARCH_TLS_DESC_LD:
507507
case R_LARCH_TLS_DESC_HI20:

lld/ELF/Arch/Mips.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ RelExpr MIPS<ELFT>::getRelExpr(RelType type, const Symbol &s,
105105
case R_MIPS_GPREL32:
106106
case R_MICROMIPS_GPREL16:
107107
case R_MICROMIPS_GPREL7_S2:
108-
return R_MIPS_GOTREL;
108+
return RE_MIPS_GOTREL;
109109
case R_MIPS_26:
110110
case R_MICROMIPS_26_S1:
111111
return R_PLT;
@@ -122,9 +122,9 @@ RelExpr MIPS<ELFT>::getRelExpr(RelType type, const Symbol &s,
122122
// equal to the start of .got section. In that case we consider these
123123
// relocations as relative.
124124
if (&s == ctx.sym.mipsGpDisp)
125-
return R_MIPS_GOT_GP_PC;
125+
return RE_MIPS_GOT_GP_PC;
126126
if (&s == ctx.sym.mipsLocalGp)
127-
return R_MIPS_GOT_GP;
127+
return RE_MIPS_GOT_GP;
128128
[[fallthrough]];
129129
case R_MIPS_32:
130130
case R_MIPS_64:
@@ -163,14 +163,14 @@ RelExpr MIPS<ELFT>::getRelExpr(RelType type, const Symbol &s,
163163
case R_MIPS_GOT16:
164164
case R_MICROMIPS_GOT16:
165165
if (s.isLocal())
166-
return R_MIPS_GOT_LOCAL_PAGE;
166+
return RE_MIPS_GOT_LOCAL_PAGE;
167167
[[fallthrough]];
168168
case R_MIPS_CALL16:
169169
case R_MIPS_GOT_DISP:
170170
case R_MIPS_TLS_GOTTPREL:
171171
case R_MICROMIPS_CALL16:
172172
case R_MICROMIPS_TLS_GOTTPREL:
173-
return R_MIPS_GOT_OFF;
173+
return RE_MIPS_GOT_OFF;
174174
case R_MIPS_CALL_HI16:
175175
case R_MIPS_CALL_LO16:
176176
case R_MIPS_GOT_HI16:
@@ -179,15 +179,15 @@ RelExpr MIPS<ELFT>::getRelExpr(RelType type, const Symbol &s,
179179
case R_MICROMIPS_CALL_LO16:
180180
case R_MICROMIPS_GOT_HI16:
181181
case R_MICROMIPS_GOT_LO16:
182-
return R_MIPS_GOT_OFF32;
182+
return RE_MIPS_GOT_OFF32;
183183
case R_MIPS_GOT_PAGE:
184-
return R_MIPS_GOT_LOCAL_PAGE;
184+
return RE_MIPS_GOT_LOCAL_PAGE;
185185
case R_MIPS_TLS_GD:
186186
case R_MICROMIPS_TLS_GD:
187-
return R_MIPS_TLSGD;
187+
return RE_MIPS_TLSGD;
188188
case R_MIPS_TLS_LDM:
189189
case R_MICROMIPS_TLS_LDM:
190-
return R_MIPS_TLSLD;
190+
return RE_MIPS_TLSLD;
191191
case R_MIPS_NONE:
192192
return R_NONE;
193193
default:

lld/ELF/Arch/PPC.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ RelExpr PPC::getRelExpr(RelType type, const Symbol &s,
250250
case R_PPC_REL24:
251251
return R_PLT_PC;
252252
case R_PPC_PLTREL24:
253-
return R_PPC32_PLTREL;
253+
return RE_PPC32_PLTREL;
254254
case R_PPC_GOT_TLSGD16:
255255
return R_TLSGD_GOT;
256256
case R_PPC_GOT_TLSLD16:

0 commit comments

Comments
 (0)