@@ -67,8 +67,9 @@ Non-comprehensive list of changes in this release
67
67
- clang adds support for a set of extended integer types (``_ExtInt(N) ``) that
68
68
permit non-power of 2 integers, exposing the LLVM integer types. Since a major
69
69
motivating use case for these types is to limit 'bit' usage, these types don't
70
- automatically promote to 'int' when operations are done between two ``ExtInt(N) ``
71
- types, instead math occurs at the size of the largest ``ExtInt(N) `` type.
70
+ automatically promote to 'int' when operations are done between two
71
+ ``ExtInt(N) `` types, instead math occurs at the size of the largest
72
+ ``ExtInt(N) `` type.
72
73
73
74
- Users of UBSan, PGO, and coverage on Windows will now need to add clang's
74
75
library resource directory to their library search path. These features all
@@ -81,17 +82,15 @@ Non-comprehensive list of changes in this release
81
82
linker. If the user links the program with the ``clang `` or ``clang-cl ``
82
83
drivers, the driver will pass this flag for them.
83
84
84
-
85
85
New Compiler Flags
86
86
------------------
87
87
88
-
89
88
- -fstack-clash-protection will provide a protection against the stack clash
90
89
attack for x86 architecture through automatic probing of each page of
91
90
allocated stack.
92
91
93
92
- -ffp-exception-behavior={ignore,maytrap,strict} allows the user to specify
94
- the floating-point exception behavior. The default setting is ``ignore ``.
93
+ the floating-point exception behavior. The default setting is ``ignore ``.
95
94
96
95
- -ffp-model={precise,strict,fast} provides the user an umbrella option to
97
96
simplify access to the many single purpose floating point options. The default
@@ -110,11 +109,11 @@ Modified Compiler Flags
110
109
111
110
- -fno-common has been enabled as the default for all targets. Therefore, C
112
111
code that uses tentative definitions as definitions of a variable in multiple
113
- translation units will trigger multiple-definition linker errors. Generally,
114
- this occurs when the use of the ``extern `` keyword is neglected in the declaration
115
- of a variable in a header file. In some cases, no specific translation unit
116
- provides a definition of the variable. The previous behavior can be restored by
117
- specifying ``-fcommon ``.
112
+ translation units will trigger multiple-definition linker errors. Generally,
113
+ this occurs when the use of the ``extern `` keyword is neglected in the
114
+ declaration of a variable in a header file. In some cases, no specific
115
+ translation unit provides a definition of the variable. The previous
116
+ behavior can be restored by specifying ``-fcommon ``.
118
117
- -Wasm-ignored-qualifier (ex. `asm const ("") `) has been removed and replaced
119
118
with an error (this matches a recent change in GCC-9).
120
119
- -Wasm-file-asm-volatile (ex. `asm volatile ("") ` at global scope) has been
@@ -176,7 +175,7 @@ C++ Language Changes in Clang
176
175
Previous versions of Clang rejected some constructs of this form
177
176
(specifically, where the linkage of the type happened to be computed
178
177
before the parser reached the typedef name); those cases are still rejected
179
- in Clang 11. In addition, cases that previous versions of Clang did not
178
+ in Clang 11. In addition, cases that previous versions of Clang did not
180
179
reject now produce an extension warning. This warning can be disabled with
181
180
the warning flag ``-Wno-non-c-typedef-for-linkage ``.
182
181
@@ -207,7 +206,6 @@ C++1z Feature Support
207
206
Objective-C Language Changes in Clang
208
207
-------------------------------------
209
208
210
-
211
209
OpenCL C Language Changes in Clang
212
210
----------------------------------
213
211
@@ -216,7 +214,6 @@ OpenCL C Language Changes in Clang
216
214
ABI Changes in Clang
217
215
--------------------
218
216
219
-
220
217
OpenMP Support in Clang
221
218
-----------------------
222
219
@@ -234,7 +231,6 @@ These are major API changes that have happened since the 10.0.0 release of
234
231
Clang. If upgrading an external codebase that uses Clang as a library,
235
232
this section should help get you past the largest hurdles of upgrading.
236
233
237
-
238
234
Build System Changes
239
235
--------------------
240
236
@@ -255,15 +251,11 @@ AST Matchers
255
251
clang-format
256
252
------------
257
253
258
-
259
254
- Option ``IndentCaseBlocks `` has been added to support treating the block
260
255
following a switch case label as a scope block which gets indented itself.
261
256
It helps avoid having the closing bracket align with the switch statement's
262
257
closing bracket (when ``IndentCaseLabels `` is ``false ``).
263
258
264
- - Option ``ObjCBreakBeforeNestedBlockParam `` has been added to optionally apply
265
- linebreaks for function arguments declarations before nested blocks.
266
-
267
259
.. code-block :: c++
268
260
269
261
switch (fool) { vs. switch (fool) {
@@ -278,6 +270,9 @@ clang-format
278
270
}
279
271
}
280
272
273
+ - Option ``ObjCBreakBeforeNestedBlockParam `` has been added to optionally apply
274
+ linebreaks for function arguments declarations before nested blocks.
275
+
281
276
- Option ``InsertTrailingCommas `` can be set to ``TCS_Wrapped `` to insert
282
277
trailing commas in container literals (arrays and objects) that wrap across
283
278
multiple lines. It is currently only available for JavaScript and disabled by
@@ -317,7 +312,6 @@ Static Analyzer
317
312
Undefined Behavior Sanitizer (UBSan)
318
313
------------------------------------
319
314
320
-
321
315
Core Analysis Improvements
322
316
==========================
323
317
0 commit comments