Skip to content

Commit 44dd962

Browse files
committed
[AutoBump] Merge with 62d44fb (Jun 25)
2 parents cca70a5 + 62d44fb commit 44dd962

File tree

817 files changed

+25490
-16772
lines changed

Some content is hidden

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

817 files changed

+25490
-16772
lines changed

.github/CODEOWNERS

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,3 +141,8 @@ clang/test/AST/Interp/ @tbaederr
141141

142142
# ExtractAPI
143143
/clang/**/ExtractAPI @daniel-grumberg
144+
145+
# DWARFLinker, dwarfutil, dsymutil
146+
/llvm/**/DWARFLinker/ @JDevlieghere
147+
/llvm/**/dsymutil/ @JDevlieghere
148+
/llvm/**/llvm-dwarfutil/ @JDevlieghere

bolt/docs/CommandLineArgumentReference.md

Lines changed: 75 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,14 @@
5656

5757
Allow processing of stripped binaries
5858

59+
- `--alt-inst-feature-size=<uint>`
60+
61+
Size of feature field in .altinstructions
62+
63+
- `--alt-inst-has-padlen`
64+
65+
Specify that .altinstructions has padlen field
66+
5967
- `--asm-dump[=<dump folder>]`
6068

6169
Dump function into assembly
@@ -78,6 +86,16 @@
7886
in the input is decoded and re-encoded. If the resulting bytes do not match
7987
the input, a warning message is printed.
8088

89+
- `--comp-dir-override=<string>`
90+
91+
Overrides DW_AT_comp_dir, and provides an alterantive base location, which is
92+
used with DW_AT_dwo_name to construct a path to *.dwo files.
93+
94+
- `--create-debug-names-section`
95+
96+
Creates .debug_names section, if the input binary doesn't have it already, for
97+
DWARF5 CU/TUs.
98+
8199
- `--cu-processing-batch-size=<uint>`
82100

83101
Specifies the size of batches for processing CUs. Higher number has better
@@ -93,7 +111,7 @@
93111

94112
- `--debug-skeleton-cu`
95113

96-
Prints out offsetrs for abbrev and debu_info of Skeleton CUs that get patched.
114+
Prints out offsets for abbrev and debug_info of Skeleton CUs that get patched.
97115

98116
- `--deterministic-debuginfo`
99117

@@ -104,6 +122,10 @@
104122

105123
Add basic block instructions as tool tips on nodes
106124

125+
- `--dump-alt-instructions`
126+
127+
Dump Linux alternative instructions info
128+
107129
- `--dump-cg=<string>`
108130

109131
Dump callgraph to the given file
@@ -117,10 +139,34 @@
117139
Dump function CFGs to graphviz format after each stage;enable '-print-loops'
118140
for color-coded blocks
119141

142+
- `--dump-linux-exceptions`
143+
144+
Dump Linux kernel exception table
145+
120146
- `--dump-orc`
121147

122148
Dump raw ORC unwind information (sorted)
123149

150+
- `--dump-para-sites`
151+
152+
Dump Linux kernel paravitual patch sites
153+
154+
- `--dump-pci-fixups`
155+
156+
Dump Linux kernel PCI fixup table
157+
158+
- `--dump-smp-locks`
159+
160+
Dump Linux kernel SMP locks
161+
162+
- `--dump-static-calls`
163+
164+
Dump Linux kernel static calls
165+
166+
- `--dump-static-keys`
167+
168+
Dump Linux kernel static keys jump table
169+
124170
- `--dwarf-output-path=<string>`
125171

126172
Path to where .dwo files or dwp file will be written out to.
@@ -205,6 +251,14 @@
205251

206252
Skip processing of cold functions
207253

254+
- `--log-file=<string>`
255+
256+
Redirect journaling to a file instead of stdout/stderr
257+
258+
- `--long-jump-labels`
259+
260+
Always use long jumps/nops for Linux kernel static keys
261+
208262
- `--max-data-relocations=<uint>`
209263

210264
Maximum number of data relocations to process
@@ -274,6 +328,10 @@
274328

275329
Number of tasks to be created per thread
276330

331+
- `--terminal-trap`
332+
333+
Assume that execution stops at trap instruction
334+
277335
- `--thread-count=<uint>`
278336

279337
Number of threads
@@ -618,10 +676,6 @@
618676
threshold means fewer functions to process. E.g threshold of 90 means only top
619677
10 percent of functions with profile will be processed.
620678

621-
- `--mcf-use-rarcs`
622-
623-
In MCF, consider the possibility of cancelling flow to balance edges
624-
625679
- `--memcpy1-spec=<func1,func2:cs1:cs2,func3:cs1,...>`
626680

627681
List of functions with call sites for which to specialize memcpy() for size 1
@@ -710,7 +764,7 @@
710764
- `none`: do not reorder functions
711765
- `exec-count`: order by execution count
712766
- `hfsort`: use hfsort algorithm
713-
- `hfsort+`: use hfsort+ algorithm
767+
- `hfsort+`: use cache-directed sort
714768
- `cdsort`: use cache-directed sort
715769
- `pettis-hansen`: use Pettis-Hansen algorithm
716770
- `random`: reorder functions randomly
@@ -804,8 +858,8 @@
804858

805859
- `--stale-matching-min-matched-block=<uint>`
806860

807-
Minimum percent of exact match block for a function to be considered for
808-
profile inference.
861+
Percentage threshold of matched basic blocks at which stale profile inference
862+
is executed.
809863

810864
- `--stale-threshold=<uint>`
811865

@@ -853,6 +907,10 @@
853907

854908
Only apply branch boundary alignment in hot code
855909

910+
- `--x86-strip-redundant-address-size`
911+
912+
Remove redundant Address-Size override prefix
913+
856914
### BOLT options in relocation mode:
857915

858916
- `--align-macro-fusion=<value>`
@@ -1039,6 +1097,10 @@
10391097

10401098
Print clusters
10411099

1100+
- `--print-estimate-edge-counts`
1101+
1102+
Print function after edge counts are set for no-LBR profile
1103+
10421104
- `--print-finalized`
10431105

10441106
Print function after CFG is finalized
@@ -1071,6 +1133,10 @@
10711133

10721134
Print functions after inlining optimization
10731135

1136+
- `--print-large-functions`
1137+
1138+
Print functions that could not be overwritten due to excessive size
1139+
10741140
- `--print-longjmp`
10751141

10761142
Print functions after longjmp pass
@@ -1166,4 +1232,4 @@
11661232

11671233
- `--print-options`
11681234

1169-
Print non-default options after command line parsing
1235+
Print non-default options after command line parsing

clang-tools-extra/clang-tidy/utils/DeclRefExprUtils.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ AST_MATCHER_P(DeclRefExpr, doesNotMutateObject, int, Indirections) {
296296
return false;
297297
}
298298
const auto *const Method =
299-
dyn_cast<CXXMethodDecl>(OpCall->getDirectCallee());
299+
dyn_cast_or_null<CXXMethodDecl>(OpCall->getDirectCallee());
300300

301301
if (Method == nullptr) {
302302
// This is not a member operator. Typically, a friend operator. These

clang-tools-extra/docs/ReleaseNotes.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ Changes in existing checks
398398
analyzed, so the check now handles the common patterns
399399
`const auto e = (*vector_ptr)[i]` and `const auto e = vector_ptr->at(i);`.
400400
Calls to mutable function where there exists a `const` overload are also
401-
handled.
401+
handled. Fix crash in the case of a non-member operator call.
402402

403403
- Improved :doc:`readability-avoid-return-with-void-value
404404
<clang-tidy/checks/readability/avoid-return-with-void-value>` check by adding

clang-tools-extra/test/clang-tidy/checkers/performance/unnecessary-copy-initialization.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -906,3 +906,12 @@ void negativeNonConstMemberExpr() {
906906
}
907907
}
908908

909+
910+
bool operator==(ExpensiveToCopyType, ExpensiveToCopyType);
911+
912+
template<typename T> bool OperatorWithNoDirectCallee(T t) {
913+
ExpensiveToCopyType a1;
914+
ExpensiveToCopyType a2 = a1;
915+
return a1 == t;
916+
}
917+

clang/docs/ClangFormatStyleOptions.rst

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4443,23 +4443,51 @@ the configuration (without a prefix: ``Auto``).
44434443
false:
44444444
import {VeryLongImportsAreAnnoying, VeryLongImportsAreAnnoying, VeryLongImportsAreAnnoying,} from "some/module.js"
44454445
4446+
.. _KeepEmptyLines:
4447+
4448+
**KeepEmptyLines** (``KeepEmptyLinesStyle``) :versionbadge:`clang-format 19` :ref:`<KeepEmptyLines>`
4449+
Which empty lines are kept. See ``MaxEmptyLinesToKeep`` for how many
4450+
consecutive empty lines are kept.
4451+
4452+
Nested configuration flags:
4453+
4454+
Options regarding which empty lines are kept.
4455+
4456+
For example, the config below will remove empty lines at start of the
4457+
file, end of the file, and start of blocks.
4458+
4459+
4460+
.. code-block:: c++
4461+
4462+
KeepEmptyLines:
4463+
AtEndOfFile: false
4464+
AtStartOfBlock: false
4465+
AtStartOfFile: false
4466+
4467+
* ``bool AtEndOfFile`` Keep empty lines at end of file.
4468+
4469+
* ``bool AtStartOfBlock`` Keep empty lines at start of a block.
4470+
4471+
.. code-block:: c++
4472+
4473+
true: false:
4474+
if (foo) { vs. if (foo) {
4475+
bar();
4476+
bar(); }
4477+
}
4478+
4479+
* ``bool AtStartOfFile`` Keep empty lines at start of file.
4480+
4481+
44464482
.. _KeepEmptyLinesAtEOF:
44474483

44484484
**KeepEmptyLinesAtEOF** (``Boolean``) :versionbadge:`clang-format 17` :ref:`<KeepEmptyLinesAtEOF>`
4449-
Keep empty lines (up to ``MaxEmptyLinesToKeep``) at end of file.
4485+
This option is deprecated. See ``AtEndOfFile`` of ``KeepEmptyLines``.
44504486

44514487
.. _KeepEmptyLinesAtTheStartOfBlocks:
44524488

44534489
**KeepEmptyLinesAtTheStartOfBlocks** (``Boolean``) :versionbadge:`clang-format 3.7` :ref:`<KeepEmptyLinesAtTheStartOfBlocks>`
4454-
If true, the empty line at the start of blocks is kept.
4455-
4456-
.. code-block:: c++
4457-
4458-
true: false:
4459-
if (foo) { vs. if (foo) {
4460-
bar();
4461-
bar(); }
4462-
}
4490+
This option is deprecated. See ``AtStartOfBlock`` of ``KeepEmptyLines``.
44634491

44644492
.. _LambdaBodyIndentation:
44654493

clang/docs/LanguageExtensions.rst

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -657,6 +657,12 @@ Unless specified otherwise operation(±0) = ±0 and operation(±infinity) = ±in
657657
T __builtin_elementwise_sin(T x) return the sine of x interpreted as an angle in radians floating point types
658658
T __builtin_elementwise_cos(T x) return the cosine of x interpreted as an angle in radians floating point types
659659
T __builtin_elementwise_tan(T x) return the tangent of x interpreted as an angle in radians floating point types
660+
T __builtin_elementwise_asin(T x) return the arcsine of x interpreted as an angle in radians floating point types
661+
T __builtin_elementwise_acos(T x) return the arccosine of x interpreted as an angle in radians floating point types
662+
T __builtin_elementwise_atan(T x) return the arctangent of x interpreted as an angle in radians floating point types
663+
T __builtin_elementwise_sinh(T x) return the hyperbolic sine of angle x in radians floating point types
664+
T __builtin_elementwise_cosh(T x) return the hyperbolic cosine of angle x in radians floating point types
665+
T __builtin_elementwise_tanh(T x) return the hyperbolic tangent of angle x in radians floating point types
660666
T __builtin_elementwise_floor(T x) return the largest integral value less than or equal to x floating point types
661667
T __builtin_elementwise_log(T x) return the natural logarithm of x floating point types
662668
T __builtin_elementwise_log2(T x) return the base 2 logarithm of x floating point types
@@ -5339,7 +5345,7 @@ The ``#pragma clang section`` directive obeys the following rules:
53395345
53405346
* The pragma clang section is enabled automatically, without need of any flags.
53415347
5342-
* This feature is only defined to work sensibly for ELF targets.
5348+
* This feature is only defined to work sensibly for ELF and Mach-O targets.
53435349
53445350
* If section name is specified through _attribute_((section("myname"))), then
53455351
the attribute name gains precedence.

clang/docs/ReleaseNotes.rst

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ C++ Specific Potentially Breaking Changes
7171
7272
To fix this, update libstdc++ to version 14.1.1 or greater.
7373

74+
- Clang now emits errors when Thread Safety Analysis trylock attributes are
75+
applied to functions or methods with incompatible return values, such as
76+
constructors, destructors, and void-returning functions. This only affects the
77+
``TRY_ACQUIRE`` and ``TRY_ACQUIRE_SHARED`` attributes (and any synonyms).
78+
7479
ABI Changes in This Version
7580
---------------------------
7681
- Fixed Microsoft name mangling of implicitly defined variables used for thread
@@ -95,13 +100,17 @@ ABI Changes in This Version
95100
- Fixed Microsoft calling convention when returning classes that have a deleted
96101
copy assignment operator. Such a class should be returned indirectly.
97102

103+
- Removed the global alias that was pointing to AArch64 Function Multiversioning
104+
ifuncs. Its purpose was to preserve backwards compatibility when the ".ifunc"
105+
suffix got removed from the name mangling. The alias interacts badly with
106+
GlobalOpt (see the issue #96197).
107+
98108
- Fixed Microsoft name mangling for auto non-type template arguments of pointer
99109
type for MSVC 1920+. This change resolves incompatibilities with code compiled
100110
by MSVC 1920+ but will introduce incompatibilities with code compiled by
101111
earlier versions of Clang unless such code is built with the compiler option
102112
`-fms-compatibility-version=19.14` to imitate the MSVC 1914 mangling behavior.
103113

104-
105114
AST Dumping Potentially Breaking Changes
106115
----------------------------------------
107116

@@ -511,6 +520,11 @@ Attribute Changes in Clang
511520
};
512521
513522
523+
- Introduced new function type attributes ``[[clang::nonblocking]]``, ``[[clang::nonallocating]]``,
524+
``[[clang::blocking]]``, and ``[[clang::allocating]]``, with GNU-style variants as well.
525+
The attributes declare constraints about a function's behavior pertaining to blocking and
526+
heap memory allocation.
527+
514528
Improvements to Clang's diagnostics
515529
-----------------------------------
516530
- Clang now applies syntax highlighting to the code snippets it
@@ -720,6 +734,11 @@ Bug Fixes in This Version
720734

721735
- Fixed `static_cast` to array of unknown bound. Fixes (#GH62863).
722736

737+
- Clang's Thread Safety Analysis now evaluates trylock success arguments of enum
738+
types rather than silently defaulting to false. This fixes a class of false
739+
negatives where the analysis failed to detect unchecked access to guarded
740+
data.
741+
723742
Bug Fixes to Compiler Builtins
724743
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
725744

@@ -914,6 +933,7 @@ Bug Fixes to C++ Support
914933
- Clang now diagnoses explicit specializations with storage class specifiers in all contexts.
915934
- Fix an assertion failure caused by parsing a lambda used as a default argument for the value of a
916935
forward-declared class. (#GH93512).
936+
- Fixed a bug in access checking inside return-type-requirement of compound requirements. (#GH93788).
917937

918938
Bug Fixes to AST Handling
919939
^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -1090,6 +1110,8 @@ clang-format
10901110
- Adds ``AllowShortCaseExpressionOnASingleLine`` option.
10911111
- Adds ``AlignCaseArrows`` suboption to ``AlignConsecutiveShortCaseStatements``.
10921112
- Adds ``LeftWithLastLine`` suboption to ``AlignEscapedNewlines``.
1113+
- Adds ``KeepEmptyLines`` option to deprecate ``KeepEmptyLinesAtEOF``
1114+
and ``KeepEmptyLinesAtTheStartOfBlocks``.
10931115

10941116
libclang
10951117
--------

0 commit comments

Comments
 (0)