Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
2760508
[LLDB][ProcessWindows] Set exit status on instance rather than going …
Nerixyz Sep 18, 2025
c000f32
[Mips] Fixed libunwind::Registers_mips_o32::jumpto to allow for load …
Jade-Marker Sep 25, 2025
0d1b924
[CI] Add dyung and c-rhodes to the Release Asset List (#162478)
boomanaiden154 Oct 8, 2025
13bee3a
[Mips] Fix clang crashes when assembling invalid MIPS beql instructio…
yingopq Oct 10, 2025
18593ab
workflows/release-binaries: Run tests on the same runner as the build…
tstellar Oct 10, 2025
5386abc
[libc++][ranges] Fix `ranges::join_view` segmented iterator trait (#1…
lbonn Sep 27, 2025
caef761
[clang-format] Fix a bug in OneLineFormatOffRegex (#162961)
owenca Oct 11, 2025
c03b58b
[clangd] Fix code action kind for readability-identifier-naming fixes…
ZhongRuoyu Oct 13, 2025
a86b1e3
compiler-rt: Make the tests pass on AArch64 and with page size != 4096.
pcc Aug 14, 2025
68f118f
Switch dtls_test.c from XFAIL to UNSUPPORTED on aarch64.
pcc Aug 15, 2025
c9fbd57
dfsan: Fix test with gcc 15.
pcc Aug 15, 2025
b54051a
[clang-format] Correctly annotate RequiresExpressionLBrace (#155773)
owenca Aug 28, 2025
e14b5e8
[clang-format] Fix a bug in wrapping { after else (#161048)
owenca Sep 30, 2025
a847f18
[Hexagon] Support lowering of setuo & seto for vector types in Hexago…
fhossein-quic Oct 3, 2025
7b785dc
[LLD][COFF] Fix tailMergeARM64 delayload thunk 128 MB range limitatio…
zmodem Oct 3, 2025
bd9bc53
[LLD] [COFF] Fix aarch64 delayimport of sret arguments (#163096)
mstorsjo Oct 13, 2025
dfdee9a
[clang][modules] Derive mtime from PCM timestamps, not PCM files (#16…
jansvoboda11 Oct 13, 2025
a2e93dc
[Hexagon][llvm-objdump] Start a fresh packet at symbol boundaries. (#…
quic-areg Oct 16, 2025
c6af6be
[libc++][docs] Add missing entry for P3379R0 to `21.rst`
frederick-vs-ja Oct 16, 2025
570c4c9
[clang] Fix catching pointers by reference on mingw targets (#162546)
mstorsjo Oct 16, 2025
ffa6b0c
[MachinePipeliner] Limit the number of stores in BB (#154940)
kasuga-fj Oct 9, 2025
464d75a
[MachinePipeliner] Add test missed in #154940 (NFC) (#163350)
kasuga-fj Oct 16, 2025
0d819a9
[libunwind] Fix aarch64 SEH unwinding with a debugger attached (#162867)
mstorsjo Oct 16, 2025
c5a3aa8
[libc++] Properly implement array cookies in the ARM ABI (#160182)
ldionne Oct 17, 2025
faca424
[clang-format] Correctly handle backward compatibility of C headers (…
owenca Sep 25, 2025
7e153f5
[clang-format] Fix an assertion failure on comment-only config files …
owenca Oct 17, 2025
ceeb930
[libclang/python] Return None instead of null cursors from Token.curs…
DeinAlptraum Oct 13, 2025
54cdd97
[clang-format] Annotate ::operator and Foo::operator correctly (#164048)
owenca Oct 18, 2025
3333dd8
Update clang/lib/Format/TokenAnnotator.cpp
owenca Oct 18, 2025
480a904
release/21.x: [clang-format] Fix a crash on BAS_BlockIndent (#164047)
owenca Oct 18, 2025
222fc11
Bump version to 21.1.4
c-rhodes Oct 21, 2025
45afac6
Bump version to 21.1.5
c-rhodes Oct 23, 2025
9faef12
[sancov] Fix stack-depth tracking to use debug locations (#162428)
kees Oct 9, 2025
2cdfa9d
[X86] Use pseudo instructions to zero registers in `buildClearRegiste…
abhishek-kaushik22 Oct 17, 2025
cd7d2db
[lld][test] Fix AArch64 build attribute test cleanup
DavidSpickett Oct 21, 2025
1600cf0
[Github] Only look at previous commit for MacOS Premerge (#164483)
boomanaiden154 Oct 21, 2025
e94561c
workflows/release-documentation: Allow secrets pass through from call…
tstellar Oct 22, 2025
5c802f9
[Clang] Do not warn on UTF-16 -> UTF-32 conversions. (#163927)
cor3ntin Oct 19, 2025
04102d9
[AArch64][llvm] Relax mandatory features for Armv9.6-A (#163973)
jthackray Oct 23, 2025
a2178eb
[Hexagon] Incorrect MIR after "hexinsert" pass (#164021)
quic-akaryaki Oct 21, 2025
495a2ab
[Hexagon] Add REQUIRES: asserts to test
nikic Oct 21, 2025
11ef752
[BPF] Support for `DW_TAG_variant_part` in BTF generation (#155783)
vadorovsky Oct 20, 2025
c346c16
[BPF] Do not emit names for PTR, CONST, VOLATILE and RESTRICT BTF typ…
vadorovsky Oct 22, 2025
0921531
[llvm-objcopy][COFF] Update .symidx values after stripping (#153322)
e-kud Sep 3, 2025
6bb6ffe
[LLD][COFF] Fix manifest UAC trustInfo namespace (#165285)
nga888 Oct 29, 2025
df3145b
[clang-shlib] Fix linking libclang-cpp on Haiku (#156401)
brad0 Oct 30, 2025
8e2cd28
[OpenMP] Fix preprocessor mismatches between include and usages of hw…
pearzt Oct 15, 2025
16b5ac8
Merge tag 'llvmorg-21.1.5' into rustc-llvm-21.1.5
vadorovsky Nov 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/premerge.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ jobs:
uses: llvm/actions/install-ninja@main
- name: Build and Test
run: |
source <(git diff --name-only HEAD~2..HEAD | python3 .ci/compute_projects.py)
source <(git diff --name-only HEAD~1...HEAD | python3 .ci/compute_projects.py)

if [[ "${projects_to_build}" == "" ]]; then
echo "No projects to build"
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/release-asset-audit.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ def _get_uploaders(release_version):
"tru",
"tstellar",
"github-actions[bot]",
"c-rhodes",
"dyung",
]
)

Expand Down
44 changes: 0 additions & 44 deletions .github/workflows/release-binaries-save-stage/action.yml

This file was deleted.

59 changes: 0 additions & 59 deletions .github/workflows/release-binaries-setup-stage/action.yml

This file was deleted.

86 changes: 21 additions & 65 deletions .github/workflows/release-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -194,40 +194,30 @@ jobs:
runs-on: ${{ needs.prepare.outputs.build-runs-on }}
steps:

- name: Checkout Actions
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
ref: ${{ (github.event_name == 'pull_request' && github.sha) || 'main' }}
sparse-checkout: |
.github/workflows/
sparse-checkout-cone-mode: false
# Check out outside of working directory so the source checkout doesn't
# remove it.
path: workflows

# actions/checkout does not support paths outside of the GITHUB_WORKSPACE.
# Also, anything that we put inside of GITHUB_WORKSPACE will be overwritten
# by future actions/checkout steps. Therefore, in order to checkout the
# latest actions from main, we need to first checkout out the actions inside of
# GITHUB_WORKSPACE (see previous step), then use actions/checkout to checkout
# the code being built and the move the actions from main back into GITHUB_WORKSPACE,
# becasue the uses on composite actions only reads workflows from inside GITHUB_WORKSPACE.
- shell: bash
run: mv workflows ../workflows-main

- name: Checkout LLVM
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
ref: ${{ needs.prepare.outputs.ref }}

- name: Copy main workflows
shell: bash
run: |
mv ../workflows-main .
- name: Install Ninja
uses: llvm/actions/install-ninja@a1ea791b03c8e61f53a0e66f2f73db283aa0f01e # main

- name: Setup Windows
if: startsWith(runner.os, 'Windows')
uses: llvm/actions/setup-windows@main
with:
arch: amd64

- name: Setup Stage
- name: Set Build Prefix
id: setup-stage
uses: ./workflows-main/.github/workflows/release-binaries-setup-stage
shell: bash
run: |
build_prefix=`pwd`
if [ "${{ runner.os }}" = "Linux" ]; then
sudo chown $USER:$USER /mnt/
build_prefix=/mnt/
fi
echo "build-prefix=$build_prefix" >> $GITHUB_OUTPUT

- name: Configure
id: build
Expand Down Expand Up @@ -258,17 +248,11 @@ jobs:
path: |
${{ needs.prepare.outputs.release-binary-filename }}

# Clean up some build files to reduce size of artifact.
- name: Clean Up Build Directory
shell: bash
- name: Run Tests
# These almost always fail so don't let them fail the build and prevent the uploads.
continue-on-error: true
run: |
find ${{ steps.setup-stage.outputs.build-prefix }}/build -iname ${{ needs.prepare.outputs.release-binary-filename }} -delete
find ${{ steps.setup-stage.outputs.build-prefix }}/build -iname _CPack_Packages -prune -exec rm -r {} +

- name: Save Stage
uses: ./workflows-main/.github/workflows/release-binaries-save-stage
with:
build-prefix: ${{ steps.setup-stage.outputs.build-prefix }}
ninja -C ${{ steps.setup-stage.outputs.build-prefix }}/build stage2-check-all

upload-release-binaries:
name: "Upload Release Binaries"
Expand Down Expand Up @@ -327,31 +311,3 @@ jobs:
--release ${{ needs.prepare.outputs.release-version }} \
upload \
--files ${{ needs.prepare.outputs.release-binary-filename }}*

test-release:
name: "Test Release"
needs:
- prepare
- build-release-package
if: >-
github.repository_owner == 'llvm'
runs-on: ${{ needs.prepare.outputs.test-runs-on }}
steps:
- name: Checkout Actions
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ (github.event_name == 'pull_request' && github.sha) || 'main' }}
sparse-checkout: |
.github/workflows/
sparse-checkout-cone-mode: false
path: workflows
- name: Setup Stage
id: setup-stage
uses: ./workflows/.github/workflows/release-binaries-setup-stage
with:
previous-artifact: build-release-package

- name: Run Tests
shell: bash
run: |
ninja -C ${{ steps.setup-stage.outputs.build-prefix }}/build stage2-check-all
4 changes: 4 additions & 0 deletions .github/workflows/release-documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ on:
description: 'Upload documentation'
required: false
type: boolean
secrets:
WWW_RELEASES_TOKEN:
description: "Secret used to create a PR with the documentation changes."
required: false

jobs:
release-documentation:
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/release-tasks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ jobs:
with:
release-version: ${{ needs.validate-tag.outputs.release-version }}
upload: true
# Called workflows don't have access to secrets by default, so we need to explicitly pass secrets that we use.
secrets:
WWW_RELEASES_TOKEN: ${{ secrets.WWW_RELEASES_TOKEN }}

release-doxygen:
name: Build and Upload Release Doxygen
Expand Down
2 changes: 1 addition & 1 deletion clang-tools-extra/clangd/ClangdLSPServer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ CodeAction toCodeAction(const ClangdServer::CodeActionResult::Rename &R,
const URIForFile &File) {
CodeAction CA;
CA.title = R.FixMessage;
CA.kind = std::string(CodeAction::REFACTOR_KIND);
CA.kind = std::string(CodeAction::QUICKFIX_KIND);
CA.command.emplace();
CA.command->title = R.FixMessage;
CA.command->command = std::string(ApplyRenameCommand);
Expand Down
3 changes: 2 additions & 1 deletion clang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,8 @@ TEST_F(LSPTest, ClangTidyRename) {
.takeValue()
.getAsArray())[0];

ASSERT_EQ((*RenameCommand.getAsObject())["title"], "change 'foo' to 'Foo'");
ASSERT_EQ((*RenameCommand.getAsObject())["title"],
"Apply fix: change 'foo' to 'Foo'");

Client.expectServerCall("workspace/applyEdit");
Client.call("workspace/executeCommand", RenameCommand);
Expand Down
2 changes: 2 additions & 0 deletions clang/bindings/python/clang/cindex.py
Original file line number Diff line number Diff line change
Expand Up @@ -3853,6 +3853,8 @@ def cursor(self):
cursor._tu = self._tu

conf.lib.clang_annotateTokens(self._tu, byref(self), 1, byref(cursor))
if cursor.is_null():
return None

return cursor

Expand Down
6 changes: 6 additions & 0 deletions clang/bindings/python/tests/cindex/test_tokens.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,9 @@ def test_token_extent(self):

self.assertEqual(extent.start.offset, 4)
self.assertEqual(extent.end.offset, 7)

def test_null_cursor(self):
"""Ensure that the cursor property converts null cursors to None"""
tu = get_tu("int i = 5;")
tokens = list(tu.get_tokens(extent=tu.cursor.extent))
self.assertEqual(tokens[-1].cursor, None)
1 change: 1 addition & 0 deletions clang/docs/ReleaseNotes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ Clang Frontend Potentially Breaking Changes

Clang Python Bindings Potentially Breaking Changes
--------------------------------------------------
- Return ``None`` instead of null cursors from ``Token.cursor``
- ``Cursor.from_location`` now returns ``None`` instead of a null cursor.
This eliminates the last known source of null cursors.
- Almost all ``Cursor`` methods now assert that they are called on non-null cursors.
Expand Down
1 change: 1 addition & 0 deletions clang/include/clang/Basic/DiagnosticGroups.td
Original file line number Diff line number Diff line change
Expand Up @@ -624,6 +624,7 @@ def MissingFieldInitializers : DiagGroup<"missing-field-initializers",
def ModuleLock : DiagGroup<"module-lock">;
def ModuleBuild : DiagGroup<"module-build">;
def ModuleImport : DiagGroup<"module-import">;
def ModuleValidation : DiagGroup<"module-validation">;
def ModuleConflict : DiagGroup<"module-conflict">;
def ModuleFileExtension : DiagGroup<"module-file-extension">;
def ModuleIncludeDirectiveTranslation : DiagGroup<"module-include-translation">;
Expand Down
4 changes: 4 additions & 0 deletions clang/include/clang/Basic/DiagnosticSerializationKinds.td
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ def remark_module_import : Remark<
"importing module '%0'%select{| into '%3'}2 from '%1'">,
ShowInSystemHeader,
InGroup<ModuleImport>;
def remark_module_validation : Remark<
"validating %0 input files in module '%1' from '%2'">,
ShowInSystemHeader,
InGroup<ModuleValidation>;

def err_imported_module_not_found : Error<
"module '%0' in precompiled file '%1' %select{(imported by precompiled file '%2') |}4"
Expand Down
2 changes: 2 additions & 0 deletions clang/lib/CodeGen/TargetInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ TargetCodeGenInfo::~TargetCodeGenInfo() = default;
// If someone can figure out a general rule for this, that would be great.
// It's probably just doomed to be platform-dependent, though.
unsigned TargetCodeGenInfo::getSizeOfUnwindException() const {
if (getABIInfo().getContext().getLangOpts().hasSEHExceptions())
return getABIInfo().getDataLayout().getPointerSizeInBits() > 32 ? 64 : 48;
// Verified for:
// x86-64 FreeBSD, Linux, Darwin
// x86-32 FreeBSD, Linux, Darwin
Expand Down
2 changes: 1 addition & 1 deletion clang/lib/Format/ContinuationIndenter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ bool ContinuationIndenter::mustBreak(const LineState &State) {
}
if (CurrentState.BreakBeforeClosingBrace &&
(Current.closesBlockOrBlockTypeList(Style) ||
(Current.is(tok::r_brace) &&
(Current.is(tok::r_brace) && Current.MatchingParen &&
Current.isBlockIndentedInitRBrace(Style)))) {
return true;
}
Expand Down
Loading
Loading