Skip to content

Commit 5136de2

Browse files
Merge branch 'llvm:main' into copy-inout-dev
2 parents 04daa83 + 8d0668c commit 5136de2

File tree

380 files changed

+15000
-9344
lines changed

Some content is hidden

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

380 files changed

+15000
-9344
lines changed

.github/workflows/containers/github-action-ci-windows/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ RUN powershell -Command \
9090
RUN git config --system core.longpaths true & \
9191
git config --global core.autocrlf false
9292
93-
ARG RUNNER_VERSION=2.327.1
93+
ARG RUNNER_VERSION=2.328.0
9494
ENV RUNNER_VERSION=$RUNNER_VERSION
9595
9696
RUN powershell -Command \

.github/workflows/containers/github-action-ci/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ WORKDIR /home/gha
9797

9898
FROM ci-container as ci-container-agent
9999

100-
ENV GITHUB_RUNNER_VERSION=2.327.1
100+
ENV GITHUB_RUNNER_VERSION=2.328.0
101101

102102
RUN mkdir actions-runner && \
103103
cd actions-runner && \

clang/docs/OpenMPSupport.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ implementation.
191191
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
192192
| device | teams construct on the host device | :good:`done` | r371553 |
193193
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
194-
| device | support non-contiguous array sections for target update | :good:`done` | https://github.com/llvm/llvm-project/pull/144635 |
194+
| device | support non-contiguous array sections for target update | :good:`done` | https://github.com/llvm/llvm-project/pull/144635 |
195195
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
196196
| device | pointer attachment | :good:`done` | |
197197
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
@@ -338,7 +338,7 @@ implementation.
338338
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
339339
| OMPT | new 'emi' callbacks for external monitoring interfaces | :good:`done` | |
340340
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
341-
| OMPT | device tracing interface | :none:`unclaimed` | |
341+
| OMPT | device tracing interface | :none:`in progress` | jplehr |
342342
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
343343
| task | 'strict' modifier for taskloop construct | :none:`unclaimed` | |
344344
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
@@ -470,9 +470,9 @@ implementation.
470470
| need_device_addr modifier for adjust_args clause | :part:`partial` | :none:`unclaimed` | Parsing/Sema: https://github.com/llvm/llvm-project/pull/143442 |
471471
| | | | https://github.com/llvm/llvm-project/pull/149586 |
472472
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
473-
| Prescriptive num_threads | :part:`In Progress` | :none:`unclaimed` | |
473+
| Prescriptive num_threads | :part:`In Progress` | :none:`unclaimed` | ro-i |
474474
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
475-
| Message and severity clauses | :part:`In Progress` | :none:`unclaimed` | |
475+
| Message and severity clauses | :part:`In Progress` | :none:`unclaimed` | ro-i |
476476
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
477477
| Local clause on declare target | :part:`In Progress` | :none:`unclaimed` | |
478478
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+

clang/docs/ReleaseNotes.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,17 @@ Improvements to Clang's diagnostics
155155
- Fixed fix-it hint for fold expressions. Clang now correctly places the suggested right
156156
parenthesis when diagnosing malformed fold expressions. (#GH151787)
157157

158+
- Fixed an issue where emitted format-signedness diagnostics were not associated with an appropriate
159+
diagnostic id. Besides being incorrect from an API standpoint, this was user visible, e.g.:
160+
"format specifies type 'unsigned int' but the argument has type 'int' [-Wformat]"
161+
"signedness of format specifier 'u' is incompatible with 'c' [-Wformat]"
162+
This was misleading, because even though -Wformat is required in order to emit the diagnostics,
163+
the warning flag the user needs to concerned with here is -Wformat-signedness, which is also
164+
required and is not enabled by default. With the change you'll now see:
165+
"format specifies type 'unsigned int' but the argument has type 'int', which differs in signedness [-Wformat-signedness]"
166+
"signedness of format specifier 'u' is incompatible with 'c' [-Wformat-signedness]"
167+
and the API-visible diagnostic id will be appropriate.
168+
158169
Improvements to Clang's time-trace
159170
----------------------------------
160171

@@ -194,6 +205,7 @@ Bug Fixes to C++ Support
194205
- Fix the dynamic_cast to final class optimization to correctly handle
195206
casts that are guaranteed to fail (#GH137518).
196207
- Fix bug rejecting partial specialization of variable templates with auto NTTPs (#GH118190).
208+
- Fix a crash when using ``explicit(bool)`` in pre-C++11 language modes. (#GH152729)
197209

198210
Bug Fixes to AST Handling
199211
^^^^^^^^^^^^^^^^^^^^^^^^^

clang/include/clang/AST/APValue.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ class APValue {
143143
AddrLabelDiff
144144
};
145145

146-
class LValueBase {
146+
class alignas(uint64_t) LValueBase {
147147
typedef llvm::PointerUnion<const ValueDecl *, const Expr *, TypeInfoLValue,
148148
DynamicAllocLValue>
149149
PtrTy;

clang/include/clang/Basic/DiagnosticSemaKinds.td

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10423,9 +10423,10 @@ def warn_format_conversion_argument_type_mismatch : Warning<
1042310423
def warn_format_conversion_argument_type_mismatch_pedantic : Extension<
1042410424
warn_format_conversion_argument_type_mismatch.Summary>,
1042510425
InGroup<FormatPedantic>;
10426-
def warn_format_conversion_argument_type_mismatch_signedness : Warning<
10427-
warn_format_conversion_argument_type_mismatch.Summary>,
10428-
InGroup<FormatSignedness>, DefaultIgnore;
10426+
def warn_format_conversion_argument_type_mismatch_signedness: Warning<
10427+
"format specifies type %0 but the argument has %select{type|underlying "
10428+
"type}2 %1, which differs in signedness" >
10429+
, InGroup<FormatSignedness>, DefaultIgnore;
1042910430
def warn_format_conversion_argument_type_mismatch_confusion : Warning<
1043010431
warn_format_conversion_argument_type_mismatch.Summary>,
1043110432
InGroup<FormatTypeConfusion>, DefaultIgnore;
@@ -10537,8 +10538,10 @@ def warn_format_cmp_sensitivity_mismatch : Warning<
1053710538
"it should be %select{unspecified|private|public|sensitive}1">, InGroup<Format>;
1053810539
def warn_format_cmp_specifier_mismatch : Warning<
1053910540
"format specifier '%0' is incompatible with '%1'">, InGroup<Format>;
10540-
def warn_format_cmp_specifier_sign_mismatch : Warning<
10541-
"signedness of format specifier '%0' is incompatible with '%1'">, InGroup<Format>;
10541+
def warn_format_cmp_specifier_sign_mismatch
10542+
: Warning<"signedness of format specifier '%0' is incompatible with '%1'">,
10543+
InGroup<FormatSignedness>,
10544+
DefaultIgnore;
1054210545
def warn_format_cmp_specifier_mismatch_pedantic : Extension<
1054310546
warn_format_cmp_specifier_sign_mismatch.Summary>, InGroup<FormatPedantic>;
1054410547
def note_format_cmp_with : Note<
@@ -13529,7 +13532,7 @@ def err_acc_invalid_modifier
1352913532
def err_acc_invalid_default_type
1353013533
: Error<"invalid value %0 in '%1' clause; valid values are %2">;
1353113534
def err_acc_device_type_multiple_archs
13532-
: Error<"OpenACC 'device_type' clause on a 'set' construct only permits "
13535+
: Error<"OpenACC 'device_type' clause on a '%0' construct only permits "
1353313536
"one architecture">;
1353413537
def warn_acc_var_referenced_non_const_array
1353513538
: Warning<"variable of array type %0 referenced in OpenACC '%1' clause "

clang/include/clang/Basic/TokenKinds.h

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,20 @@ inline bool isStringLiteral(TokenKind K) {
9595
/// Return true if this is a "literal" kind, like a numeric
9696
/// constant, string, etc.
9797
inline bool isLiteral(TokenKind K) {
98-
return K == tok::numeric_constant || K == tok::char_constant ||
99-
K == tok::wide_char_constant || K == tok::utf8_char_constant ||
100-
K == tok::utf16_char_constant || K == tok::utf32_char_constant ||
101-
isStringLiteral(K) || K == tok::header_name || K == tok::binary_data;
98+
const bool isInLiteralRange =
99+
K >= tok::numeric_constant && K <= tok::utf32_string_literal;
100+
101+
#if !NDEBUG
102+
const bool isLiteralExplicit =
103+
K == tok::numeric_constant || K == tok::char_constant ||
104+
K == tok::wide_char_constant || K == tok::utf8_char_constant ||
105+
K == tok::utf16_char_constant || K == tok::utf32_char_constant ||
106+
isStringLiteral(K) || K == tok::header_name || K == tok::binary_data;
107+
assert(isInLiteralRange == isLiteralExplicit &&
108+
"TokenKind literals should be contiguous");
109+
#endif
110+
111+
return isInLiteralRange;
102112
}
103113

104114
/// Return true if this is any of tok::annot_* kinds.

0 commit comments

Comments
 (0)