Skip to content

Commit 038ea1f

Browse files
committed
Merge branch 'main' into pauth-signed-got-codegen
2 parents 10860a0 + 0395bf7 commit 038ea1f

File tree

767 files changed

+48611
-6830
lines changed

Some content is hidden

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

767 files changed

+48611
-6830
lines changed

.github/workflows/release-binaries-all.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,4 +91,8 @@ jobs:
9191
release-version: "${{ needs.setup-variables.outputs.release-version }}"
9292
upload: ${{ needs.setup-variables.outputs.upload == 'true'}}
9393
runs-on: "${{ matrix.runs-on }}"
94-
94+
secrets:
95+
# This will be empty for pull_request events, but that's fine, because
96+
# the release-binaries workflow does not use this secret for the
97+
# pull_request event.
98+
RELEASE_TASKS_USER_TOKEN: ${{ secrets.RELEASE_TASKS_USER_TOKEN }}

.github/workflows/release-binaries.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ on:
3737
description: "Runner to use for the build"
3838
required: true
3939
type: string
40+
secrets:
41+
RELEASE_TASKS_USER_TOKEN:
42+
description: "Secret used to check user permissions."
43+
required: false
44+
4045

4146
permissions:
4247
contents: read # Default everything to read-only
@@ -442,7 +447,7 @@ jobs:
442447
- name: Upload Build Provenance
443448
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 #v4.3.3
444449
with:
445-
name: ${{ runner.os }}-${{ runner.arch }}-release-binary-attestation
450+
name: ${{ needs.prepare.outputs.release-binary-filename }}-attestation
446451
path: ${{ needs.prepare.outputs.release-binary-filename }}.jsonl
447452

448453
- name: Upload Release

.github/workflows/release-tasks.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ jobs:
7878
name: Build Release Binaries
7979
permissions:
8080
contents: write
81+
id-token: write
82+
attestations: write
8183
needs:
8284
- validate-tag
8385
- release-create

clang/docs/LanguageExtensions.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1503,6 +1503,7 @@ Conditional ``explicit`` __cpp_conditional_explicit C+
15031503
``static operator()`` __cpp_static_call_operator C++23 C++03
15041504
Attributes on Lambda-Expressions C++23 C++11
15051505
Attributes on Structured Bindings __cpp_structured_bindings C++26 C++03
1506+
Pack Indexing __cpp_pack_indexing C++26 C++03
15061507
``= delete ("should have a reason");`` __cpp_deleted_function C++26 C++03
15071508
-------------------------------------------- -------------------------------- ------------- -------------
15081509
Designated initializers (N494) C99 C89

clang/docs/OpenMPSupport.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ implementation.
314314
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
315315
| misc | assumes directives | :part:`worked on` | |
316316
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
317-
| misc | assume directive | :part:`worked on` | |
317+
| misc | assume directive | :good:`done` | |
318318
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
319319
| misc | nothing directive | :good:`done` | D123286 |
320320
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
@@ -363,5 +363,7 @@ considered for standardization. Please post on the
363363
| device extension | `'ompx_bare' clause on 'target teams' construct | :good:`prototyped` | #66844, #70612 |
364364
| | <https://www.osti.gov/servlets/purl/2205717>`_ | | |
365365
+------------------------------+-----------------------------------------------------------------------------------+--------------------------+--------------------------------------------------------+
366+
| device extension | Multi-dim `'num_teams' clause on 'target teams ompx_bare' construct | :good:`partial` | #99732, #101407 |
367+
+------------------------------+-----------------------------------------------------------------------------------+--------------------------+--------------------------------------------------------+
366368

367369
.. _Discourse forums (Runtimes - OpenMP category): https://discourse.llvm.org/c/runtimes/openmp/35

clang/docs/ReleaseNotes.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ These changes are ones which we think may surprise users when upgrading to
3737
Clang |release| because of the opportunity they pose for disruption to existing
3838
code bases.
3939

40+
- The ``le32`` and ``le64`` targets have been removed.
41+
4042
C/C++ Language Potentially Breaking Changes
4143
-------------------------------------------
4244

@@ -186,6 +188,9 @@ Bug Fixes to C++ Support
186188
substitutions in concepts, so it doesn't incorrectly complain of missing
187189
module imports in those situations. (#GH60336)
188190
- Fix init-capture packs having a size of one before being instantiated. (#GH63677)
191+
- Clang now preserves the unexpanded flag in a lambda transform used for pack expansion. (#GH56852), (#GH85667),
192+
(#GH99877).
193+
- Fixed a bug when diagnosing ambiguous explicit specializations of constrained member functions.
189194

190195
Bug Fixes to AST Handling
191196
^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -323,11 +328,15 @@ Python Binding Changes
323328

324329
OpenMP Support
325330
--------------
331+
- Added support for 'omp assume' directive.
326332

327333
Improvements
328334
^^^^^^^^^^^^
329335
- Improve the handling of mapping array-section for struct containing nested structs with user defined mappers
330336

337+
- `num_teams` now accepts multiple expressions when it is used along in ``target teams ompx_bare`` construct.
338+
This allows the target region to be launched with multi-dim grid on GPUs.
339+
331340
Additional Information
332341
======================
333342

clang/docs/StandardCPlusPlusModules.rst

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,16 @@ BMIs cannot be shipped in an archive to create a module library. Instead, the
398398
BMIs(``*.pcm``) are compiled into object files(``*.o``) and those object files
399399
are added to the archive instead.
400400

401+
clang-cl
402+
~~~~~~~~
403+
404+
``clang-cl`` supports the same options as ``clang++`` for modules as detailed above;
405+
there is no need to prefix these options with ``/clang:``. Note that ``cl.exe``
406+
`options to emit/consume IFC files <https://devblogs.microsoft.com/cppblog/using-cpp-modules-in-msvc-from-the-command-line-part-1/>` are *not* supported.
407+
The resultant precompiled modules are also not compatible for use with ``cl.exe``.
408+
409+
We recommend that build system authors use the above-mentioned ``clang++`` options with ``clang-cl`` to build modules.
410+
401411
Consistency Requirements
402412
~~~~~~~~~~~~~~~~~~~~~~~~
403413

@@ -1387,13 +1397,6 @@ have ``.cppm`` (or ``.ccm``, ``.cxxm``, ``.c++m``) as the file extension.
13871397
However, the behavior is inconsistent with other compilers. This is tracked by
13881398
`#57416 <https://github.com/llvm/llvm-project/issues/57416>`_.
13891399

1390-
clang-cl is not compatible with standard C++ modules
1391-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1392-
1393-
``/clang:-fmodule-file`` and ``/clang:-fprebuilt-module-path`` cannot be used
1394-
to specify the BMI with ``clang-cl.exe``. This is tracked by
1395-
`#64118 <https://github.com/llvm/llvm-project/issues/64118>`_.
1396-
13971400
Incorrect ODR violation diagnostics
13981401
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13991402

clang/docs/UsersManual.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4745,6 +4745,12 @@ Execute ``clang-cl /?`` to see a list of supported options:
47454745
-flto=<value> Set LTO mode to either 'full' or 'thin'
47464746
-flto Enable LTO in 'full' mode
47474747
-fmerge-all-constants Allow merging of constants
4748+
-fmodule-file=<module_name>=<module-file>
4749+
Use the specified module file that provides the module <module_name>
4750+
-fmodule-header=<header>
4751+
Build <header> as a C++20 header unit
4752+
-fmodule-output=<path>
4753+
Save intermediate module file results when compiling a standard C++ module unit.
47484754
-fms-compatibility-version=<value>
47494755
Dot-separated value representing the Microsoft compiler version
47504756
number to report in _MSC_VER (0 = don't define it; default is same value as installed cl.exe, or 1933)

clang/docs/tools/clang-formatted-files.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,6 @@ clang/lib/Basic/Targets/BPF.cpp
362362
clang/lib/Basic/Targets/BPF.h
363363
clang/lib/Basic/Targets/Hexagon.h
364364
clang/lib/Basic/Targets/Lanai.h
365-
clang/lib/Basic/Targets/Le64.h
366365
clang/lib/Basic/Targets/M68k.h
367366
clang/lib/Basic/Targets/MSP430.h
368367
clang/lib/Basic/Targets/NVPTX.cpp

clang/include/clang-c/Index.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2154,6 +2154,10 @@ enum CXCursorKind {
21542154
*/
21552155
CXCursor_OMPInterchangeDirective = 308,
21562156

2157+
/** OpenMP assume directive.
2158+
*/
2159+
CXCursor_OMPAssumeDirective = 309,
2160+
21572161
/** OpenACC Compute Construct.
21582162
*/
21592163
CXCursor_OpenACCComputeConstruct = 320,
@@ -2974,7 +2978,10 @@ enum CXTypeKind {
29742978

29752979
CXType_ExtVector = 176,
29762980
CXType_Atomic = 177,
2977-
CXType_BTFTagAttributed = 178
2981+
CXType_BTFTagAttributed = 178,
2982+
2983+
// HLSL Intangible Types
2984+
CXType_HLSLResource = 179
29782985
};
29792986

29802987
/**

clang/include/clang/AST/ASTContext.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1173,6 +1173,8 @@ class ASTContext : public RefCountedBase<ASTContext> {
11731173
#include "clang/Basic/WebAssemblyReferenceTypes.def"
11741174
#define AMDGPU_TYPE(Name, Id, SingletonId) CanQualType SingletonId;
11751175
#include "clang/Basic/AMDGPUTypes.def"
1176+
#define HLSL_INTANGIBLE_TYPE(Name, Id, SingletonId) CanQualType SingletonId;
1177+
#include "clang/Basic/HLSLIntangibleTypes.def"
11761178

11771179
// Types for deductions in C++0x [stmt.ranged]'s desugaring. Built on demand.
11781180
mutable QualType AutoDeductTy; // Deduction against 'auto'.

clang/include/clang/AST/ExprCXX.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3229,7 +3229,7 @@ class UnresolvedLookupExpr final
32293229
const DeclarationNameInfo &NameInfo, bool RequiresADL,
32303230
const TemplateArgumentListInfo *TemplateArgs,
32313231
UnresolvedSetIterator Begin, UnresolvedSetIterator End,
3232-
bool KnownDependent);
3232+
bool KnownDependent, bool KnownInstantiationDependent);
32333233

32343234
UnresolvedLookupExpr(EmptyShell Empty, unsigned NumResults,
32353235
bool HasTemplateKWAndArgsInfo);
@@ -3248,7 +3248,7 @@ class UnresolvedLookupExpr final
32483248
NestedNameSpecifierLoc QualifierLoc,
32493249
const DeclarationNameInfo &NameInfo, bool RequiresADL,
32503250
UnresolvedSetIterator Begin, UnresolvedSetIterator End,
3251-
bool KnownDependent);
3251+
bool KnownDependent, bool KnownInstantiationDependent);
32523252

32533253
// After canonicalization, there may be dependent template arguments in
32543254
// CanonicalConverted But none of Args is dependent. When any of
@@ -3258,7 +3258,8 @@ class UnresolvedLookupExpr final
32583258
NestedNameSpecifierLoc QualifierLoc, SourceLocation TemplateKWLoc,
32593259
const DeclarationNameInfo &NameInfo, bool RequiresADL,
32603260
const TemplateArgumentListInfo *Args, UnresolvedSetIterator Begin,
3261-
UnresolvedSetIterator End, bool KnownDependent);
3261+
UnresolvedSetIterator End, bool KnownDependent,
3262+
bool KnownInstantiationDependent);
32623263

32633264
static UnresolvedLookupExpr *CreateEmpty(const ASTContext &Context,
32643265
unsigned NumResults,

0 commit comments

Comments
 (0)