Skip to content

Commit b29aee7

Browse files
authored
Merge branch 'main' into new-feature
2 parents 383886c + 78b363c commit b29aee7

File tree

397 files changed

+12413
-5723
lines changed

Some content is hidden

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

397 files changed

+12413
-5723
lines changed

.github/workflows/release-binaries-save-stage/action.yml

Lines changed: 0 additions & 44 deletions
This file was deleted.

.github/workflows/release-binaries-setup-stage/action.yml

Lines changed: 0 additions & 59 deletions
This file was deleted.

.github/workflows/release-binaries.yml

Lines changed: 21 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -194,40 +194,30 @@ jobs:
194194
runs-on: ${{ needs.prepare.outputs.build-runs-on }}
195195
steps:
196196

197-
- name: Checkout Actions
198-
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
199-
with:
200-
ref: ${{ (github.event_name == 'pull_request' && github.sha) || 'main' }}
201-
sparse-checkout: |
202-
.github/workflows/
203-
sparse-checkout-cone-mode: false
204-
# Check out outside of working directory so the source checkout doesn't
205-
# remove it.
206-
path: workflows
207-
208-
# actions/checkout does not support paths outside of the GITHUB_WORKSPACE.
209-
# Also, anything that we put inside of GITHUB_WORKSPACE will be overwritten
210-
# by future actions/checkout steps. Therefore, in order to checkout the
211-
# latest actions from main, we need to first checkout out the actions inside of
212-
# GITHUB_WORKSPACE (see previous step), then use actions/checkout to checkout
213-
# the code being built and the move the actions from main back into GITHUB_WORKSPACE,
214-
# becasue the uses on composite actions only reads workflows from inside GITHUB_WORKSPACE.
215-
- shell: bash
216-
run: mv workflows ../workflows-main
217-
218197
- name: Checkout LLVM
219198
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
220199
with:
221200
ref: ${{ needs.prepare.outputs.ref }}
222201

223-
- name: Copy main workflows
224-
shell: bash
225-
run: |
226-
mv ../workflows-main .
202+
- name: Install Ninja
203+
uses: llvm/actions/install-ninja@a1ea791b03c8e61f53a0e66f2f73db283aa0f01e # main
204+
205+
- name: Setup Windows
206+
if: startsWith(runner.os, 'Windows')
207+
uses: llvm/actions/setup-windows@main
208+
with:
209+
arch: amd64
227210

228-
- name: Setup Stage
211+
- name: Set Build Prefix
229212
id: setup-stage
230-
uses: ./workflows-main/.github/workflows/release-binaries-setup-stage
213+
shell: bash
214+
run: |
215+
build_prefix=`pwd`
216+
if [ "${{ runner.os }}" = "Linux" ]; then
217+
sudo chown $USER:$USER /mnt/
218+
build_prefix=/mnt/
219+
fi
220+
echo "build-prefix=$build_prefix" >> $GITHUB_OUTPUT
231221
232222
- name: Configure
233223
id: build
@@ -258,17 +248,11 @@ jobs:
258248
path: |
259249
${{ needs.prepare.outputs.release-binary-filename }}
260250
261-
# Clean up some build files to reduce size of artifact.
262-
- name: Clean Up Build Directory
263-
shell: bash
251+
- name: Run Tests
252+
# These almost always fail so don't let them fail the build and prevent the uploads.
253+
continue-on-error: true
264254
run: |
265-
find ${{ steps.setup-stage.outputs.build-prefix }}/build -iname ${{ needs.prepare.outputs.release-binary-filename }} -delete
266-
find ${{ steps.setup-stage.outputs.build-prefix }}/build -iname _CPack_Packages -prune -exec rm -r {} +
267-
268-
- name: Save Stage
269-
uses: ./workflows-main/.github/workflows/release-binaries-save-stage
270-
with:
271-
build-prefix: ${{ steps.setup-stage.outputs.build-prefix }}
255+
ninja -C ${{ steps.setup-stage.outputs.build-prefix }}/build stage2-check-all
272256
273257
upload-release-binaries:
274258
name: "Upload Release Binaries"
@@ -327,31 +311,3 @@ jobs:
327311
--release ${{ needs.prepare.outputs.release-version }} \
328312
upload \
329313
--files ${{ needs.prepare.outputs.release-binary-filename }}*
330-
331-
test-release:
332-
name: "Test Release"
333-
needs:
334-
- prepare
335-
- build-release-package
336-
if: >-
337-
github.repository_owner == 'llvm'
338-
runs-on: ${{ needs.prepare.outputs.test-runs-on }}
339-
steps:
340-
- name: Checkout Actions
341-
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
342-
with:
343-
ref: ${{ (github.event_name == 'pull_request' && github.sha) || 'main' }}
344-
sparse-checkout: |
345-
.github/workflows/
346-
sparse-checkout-cone-mode: false
347-
path: workflows
348-
- name: Setup Stage
349-
id: setup-stage
350-
uses: ./workflows/.github/workflows/release-binaries-setup-stage
351-
with:
352-
previous-artifact: build-release-package
353-
354-
- name: Run Tests
355-
shell: bash
356-
run: |
357-
ninja -C ${{ steps.setup-stage.outputs.build-prefix }}/build stage2-check-all

clang-tools-extra/clang-doc/JSONGenerator.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -582,15 +582,22 @@ static SmallString<16> determineFileName(Info *I, SmallString<128> &Path) {
582582
if (I->IT == InfoType::IT_record) {
583583
auto *RecordSymbolInfo = static_cast<SymbolInfo *>(I);
584584
FileName = RecordSymbolInfo->MangledName;
585-
} else if (I->IT == InfoType::IT_namespace && I->Name != "")
586-
// Serialize the global namespace as index.json
585+
} else if (I->USR == GlobalNamespaceID)
586+
FileName = "index";
587+
else if (I->IT == InfoType::IT_namespace) {
588+
for (const auto &NS : I->Namespace) {
589+
FileName += NS.Name;
590+
FileName += "_";
591+
}
592+
FileName += I->Name;
593+
} else
587594
FileName = I->Name;
588-
else
589-
FileName = I->getFileBaseName();
590595
sys::path::append(Path, FileName + ".json");
591596
return FileName;
592597
}
593598

599+
// FIXME: Revert back to creating nested directories for namespaces instead of
600+
// putting everything in a flat directory structure.
594601
Error JSONGenerator::generateDocs(
595602
StringRef RootDir, llvm::StringMap<std::unique_ptr<doc::Info>> Infos,
596603
const ClangDocContext &CDCtx) {

clang-tools-extra/clang-doc/Representation.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ namespace doc {
3030
// SHA1'd hash of a USR.
3131
using SymbolID = std::array<uint8_t, 20>;
3232

33+
constexpr SymbolID GlobalNamespaceID = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
34+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
35+
3336
struct BaseRecordInfo;
3437
struct EnumInfo;
3538
struct FunctionInfo;

clang-tools-extra/clang-tidy/bugprone/SuspiciousIncludeCheck.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,21 @@ SuspiciousIncludeCheck::SuspiciousIncludeCheck(StringRef Name,
4040
ClangTidyContext *Context)
4141
: ClangTidyCheck(Name, Context),
4242
HeaderFileExtensions(Context->getHeaderFileExtensions()),
43-
ImplementationFileExtensions(Context->getImplementationFileExtensions()) {
44-
}
43+
ImplementationFileExtensions(Context->getImplementationFileExtensions()),
44+
IgnoredRegexString(Options.get("IgnoredRegex").value_or(StringRef{})),
45+
IgnoredRegex(IgnoredRegexString) {}
4546

4647
void SuspiciousIncludeCheck::registerPPCallbacks(
4748
const SourceManager &SM, Preprocessor *PP, Preprocessor *ModuleExpanderPP) {
4849
PP->addPPCallbacks(
4950
::std::make_unique<SuspiciousIncludePPCallbacks>(*this, SM, PP));
5051
}
5152

53+
void SuspiciousIncludeCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
54+
if (!IgnoredRegexString.empty())
55+
Options.store(Opts, "IgnoredRegex", IgnoredRegexString);
56+
}
57+
5258
void SuspiciousIncludePPCallbacks::InclusionDirective(
5359
SourceLocation HashLoc, const Token &IncludeTok, StringRef FileName,
5460
bool IsAngled, CharSourceRange FilenameRange, OptionalFileEntryRef File,
@@ -57,6 +63,9 @@ void SuspiciousIncludePPCallbacks::InclusionDirective(
5763
if (IncludeTok.getIdentifierInfo()->getPPKeywordID() == tok::pp_import)
5864
return;
5965

66+
if (!Check.IgnoredRegexString.empty() && Check.IgnoredRegex.match(FileName))
67+
return;
68+
6069
SourceLocation DiagLoc = FilenameRange.getBegin().getLocWithOffset(1);
6170

6271
const std::optional<StringRef> IFE =

clang-tools-extra/clang-tidy/bugprone/SuspiciousIncludeCheck.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_SUSPICIOUSINCLUDECHECK_H
1111

1212
#include "../ClangTidyCheck.h"
13-
#include "../utils/FileExtensionsUtils.h"
1413

1514
namespace clang::tidy::bugprone {
1615

@@ -28,9 +27,12 @@ class SuspiciousIncludeCheck : public ClangTidyCheck {
2827
SuspiciousIncludeCheck(StringRef Name, ClangTidyContext *Context);
2928
void registerPPCallbacks(const SourceManager &SM, Preprocessor *PP,
3029
Preprocessor *ModuleExpanderPP) override;
30+
void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
3131

3232
FileExtensionsSet HeaderFileExtensions;
3333
FileExtensionsSet ImplementationFileExtensions;
34+
StringRef IgnoredRegexString;
35+
llvm::Regex IgnoredRegex;
3436
};
3537

3638
} // namespace clang::tidy::bugprone

clang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ void InitVariablesCheck::check(const MatchFinder::MatchResult &Result) {
108108
<< MatchedDecl;
109109
if (*InitializationString != nullptr)
110110
Diagnostic << FixItHint::CreateInsertion(
111-
utils::lexer::findNextTerminator(MatchedDecl->getLocation(),
111+
utils::lexer::findNextTerminator(MatchedDecl->getEndLoc(),
112112
*Result.SourceManager,
113113
Result.Context->getLangOpts()),
114114
*InitializationString);

clang-tools-extra/docs/ReleaseNotes.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,10 @@ Changes in existing checks
286286
<clang-tidy/checks/bugprone/sizeof-expression>` check by fixing
287287
a crash on ``sizeof`` of an array of dependent type.
288288

289+
- Improved :doc:`bugprone-suspicious-include
290+
<clang-tidy/checks/bugprone/suspicious-include>` check by adding
291+
`IgnoredRegex` option.
292+
289293
- Improved :doc:`bugprone-tagged-union-member-count
290294
<clang-tidy/checks/bugprone/tagged-union-member-count>` by fixing a false
291295
positive when enums or unions from system header files or the ``std``
@@ -307,6 +311,10 @@ Changes in existing checks
307311
an additional matcher that generalizes the copy-and-swap idiom pattern
308312
detection.
309313

314+
- Improved :doc:`cppcoreguidelines-init-variables
315+
<clang-tidy/checks/cppcoreguidelines/init-variables>` check by fixing the
316+
insertion location for function pointers with multiple parameters.
317+
310318
- Improved :doc:`cppcoreguidelines-prefer-member-initializer
311319
<clang-tidy/checks/cppcoreguidelines/prefer-member-initializer>` check to
312320
avoid false positives on inherited members in class templates.

clang-tools-extra/docs/clang-tidy/checks/bugprone/suspicious-include.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,11 @@ Examples:
1414
#include "Pterodactyl.h" // OK, .h files tend not to have definitions.
1515
#include "Velociraptor.cpp" // Warning, filename is suspicious.
1616
#include_next <stdio.c> // Warning, filename is suspicious.
17+
18+
Options
19+
-------
20+
21+
.. option:: IgnoredRegex
22+
23+
A regular expression for the file name to be ignored by the check. Default
24+
is empty string.

0 commit comments

Comments
 (0)