-========================================\r
-Clang 11.0.0 (In-Progress) Release Notes\r
-========================================\r
-\r
-.. contents::\r
- :local:\r
- :depth: 2\r
-\r
-Written by the `LLVM Team <https://llvm.org/>`_\r
-\r
-.. warning::\r
-\r
- These are in-progress notes for the upcoming Clang 11 release.\r
- Release notes for previous releases can be found on\r
- `the Download Page <https://releases.llvm.org/download.html>`_.\r
-\r
-Introduction\r
-============\r
-\r
-This document contains the release notes for the Clang C/C++/Objective-C\r
-frontend, part of the LLVM Compiler Infrastructure, release 11.0.0. Here we\r
-describe the status of Clang in some detail, including major\r
-improvements from the previous release and new feature work. For the\r
-general LLVM release notes, see `the LLVM\r
-documentation <https://llvm.org/docs/ReleaseNotes.html>`_. All LLVM\r
-releases may be downloaded from the `LLVM releases web\r
-site <https://llvm.org/releases/>`_.\r
-\r
-For more information about Clang or LLVM, including information about the\r
-latest release, please see the `Clang Web Site <https://clang.llvm.org>`_ or the\r
-`LLVM Web Site <https://llvm.org>`_.\r
-\r
-Note that if you are reading this file from a Git checkout or the\r
-main Clang web page, this document applies to the *next* release, not\r
-the current one. To see the release notes for a specific release, please\r
-see the `releases page <https://llvm.org/releases/>`_.\r
-\r
-What's New in Clang 11.0.0?\r
-===========================\r
-\r
-Some of the major new features and improvements to Clang are listed\r
-here. Generic improvements to Clang as a whole or to its underlying\r
-infrastructure are described first, followed by language-specific\r
-sections with improvements to Clang's support for those languages.\r
-\r
-Major New Features\r
-------------------\r
-\r
-- ...\r
-\r
-Improvements to Clang's diagnostics\r
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
-\r
-- ...\r
-\r
-Non-comprehensive list of changes in this release\r
--------------------------------------------------\r
-\r
-\r
-New Compiler Flags\r
-------------------\r
-\r
-\r
-- -fstack-clash-protection will provide a protection against the stack clash\r
- attack for x86 architecture through automatic probing of each page of\r
- allocated stack.\r
-\r
-Deprecated Compiler Flags\r
--------------------------\r
-\r
-The following options are deprecated and ignored. They will be removed in\r
-future versions of Clang.\r
-\r
-- ...\r
-\r
-Modified Compiler Flags\r
------------------------\r
-\r
-\r
-New Pragmas in Clang\r
---------------------\r
-\r
-- ...\r
-\r
-Attribute Changes in Clang\r
---------------------------\r
-\r
-- ...\r
-\r
-Windows Support\r
----------------\r
-\r
-C Language Changes in Clang\r
----------------------------\r
-\r
-- ...\r
-\r
-C11 Feature Support\r
-^^^^^^^^^^^^^^^^^^^\r
-\r
-...\r
-\r
-C++ Language Changes in Clang\r
------------------------------\r
-\r
-- Clang now implements a restriction on giving non-C-compatible anonymous\r
- structs a typedef name for linkage purposes, as described in C++ committee\r
- paper `P1766R1 <http://wg21.link/p1766r1>`. This paper was adopted by the\r
- C++ committee as a Defect Report resolution, so it is applied retroactively\r
- to all C++ standard versions. This affects code such as:\r
-\r
- .. code-block:: c++\r
-\r
- typedef struct {\r
- int f() { return 0; }\r
- } S;\r
-\r
- Previous versions of Clang rejected some constructs of this form\r
- (specifically, where the linkage of the type happened to be computed\r
- before the parser reached the typedef name); those cases are still rejected\r
- in Clang 11. In addition, cases that previous versions of Clang did not\r
- reject now produce an extension warning. This warning can be disabled with\r
- the warning flag ``-Wno-non-c-typedef-for-linkage``.\r
-\r
- Affected code should be updated to provide a tag name for the anonymous\r
- struct:\r
-\r
- .. code-block:: c++\r
-\r
- struct S {\r
- int f() { return 0; }\r
- };\r
-\r
- If the code is shared with a C compilation (for example, if the parts that\r
- are not C-compatible are guarded with ``#ifdef __cplusplus``), the typedef\r
- declaration should be retained, but a tag name should still be provided:\r
-\r
- .. code-block:: c++\r
-\r
- typedef struct S {\r
- int f() { return 0; }\r
- } S;\r
-\r
-C++1z Feature Support\r
-^^^^^^^^^^^^^^^^^^^^^\r
-\r
-...\r
-\r
-Objective-C Language Changes in Clang\r
--------------------------------------\r
-\r
-\r
-OpenCL C Language Changes in Clang\r
-----------------------------------\r
-\r
-...\r
-\r
-ABI Changes in Clang\r
---------------------\r
-\r
-\r
-OpenMP Support in Clang\r
------------------------\r
-\r
-- ...\r
-\r
-CUDA Support in Clang\r
----------------------\r
-\r
-- ...\r
-\r
-Internal API Changes\r
---------------------\r
-\r
-These are major API changes that have happened since the 10.0.0 release of\r
-Clang. If upgrading an external codebase that uses Clang as a library,\r
-this section should help get you past the largest hurdles of upgrading.\r
-\r
-\r
-Build System Changes\r
---------------------\r
-\r
-These are major changes to the build system that have happened since the 10.0.0\r
-release of Clang. Users of the build system should adjust accordingly.\r
-\r
-- ...\r
-\r
-AST Matchers\r
-------------\r
-\r
-- ...\r
-\r
-clang-format\r
-------------\r
-\r
-\r
-- Option ``IndentCaseBlocks`` has been added to support treating the block\r
- following a switch case label as a scope block which gets indented itself.\r
- It helps avoid having the closing bracket align with the switch statement's\r
- closing bracket (when ``IndentCaseLabels`` is ``false``).\r
-\r
-- Option ``ObjCBreakBeforeNestedBlockParam`` has been added to optionally apply\r
- linebreaks for function arguments declarations before nested blocks.\r
-\r
- .. code-block:: c++\r
-\r
- switch (fool) { vs. switch (fool) {\r
- case 1: case 1: {\r
- { bar();\r
- bar(); } break;\r
- } default: {\r
- break; plop();\r
- default: }\r
- { }\r
- plop();\r
- }\r
- }\r
-\r
-- Option ``InsertTrailingCommas`` can be set to ``TCS_Wrapped`` to insert\r
- trailing commas in container literals (arrays and objects) that wrap across\r
- multiple lines. It is currently only available for JavaScript and disabled by\r
- default (``TCS_None``).\r
-\r
-- Option ``BraceWrapping.BeforeLambdaBody`` has been added to manage lambda\r
- line break inside function parameter call in Allman style.\r
-\r
- .. code-block:: c++\r
-\r
- true:\r
- connect(\r
- []()\r
- {\r
- foo();\r
- bar();\r
- });\r
-\r
- false:\r
- connect([]() {\r
- foo();\r
- bar();\r
- });\r
-\r
-libclang\r
---------\r
-\r
-- ...\r
-\r
-Static Analyzer\r
----------------\r
-\r
-- ...\r
-\r
-.. _release-notes-ubsan:\r
-\r
-Undefined Behavior Sanitizer (UBSan)\r
-------------------------------------\r
-\r
-\r
-Core Analysis Improvements\r
-==========================\r
-\r
-- ...\r
-\r
-New Issues Found\r
-================\r
-\r
-- ...\r
-\r
-Python Binding Changes\r
-----------------------\r
-\r
-The following methods have been added:\r
-\r
-- ...\r
-\r
-Significant Known Problems\r
-==========================\r
-\r
-Additional Information\r
-======================\r
-\r
-A wide variety of additional information is available on the `Clang web\r
-page <https://clang.llvm.org/>`_. The web page contains versions of the\r
-API documentation which are up-to-date with the Subversion version of\r
-the source code. You can access versions of these documents specific to\r
-this release by going into the "``clang/docs/``" directory in the Clang\r
-tree.\r
-\r
-If you have any questions or comments about Clang, please feel free to\r
-contact us via the `mailing\r
-list <https://lists.llvm.org/mailman/listinfo/cfe-dev>`_.\r
+========================================
+Clang 11.0.0 (In-Progress) Release Notes
+========================================
+
+.. contents::
+ :local:
+ :depth: 2
+
+Written by the `LLVM Team <https://llvm.org/>`_
+
+.. warning::
+
+ These are in-progress notes for the upcoming Clang 11 release.
+ Release notes for previous releases can be found on
+ `the Download Page <https://releases.llvm.org/download.html>`_.
+
+Introduction
+============
+
+This document contains the release notes for the Clang C/C++/Objective-C
+frontend, part of the LLVM Compiler Infrastructure, release 11.0.0. Here we
+describe the status of Clang in some detail, including major
+improvements from the previous release and new feature work. For the
+general LLVM release notes, see `the LLVM
+documentation <https://llvm.org/docs/ReleaseNotes.html>`_. All LLVM
+releases may be downloaded from the `LLVM releases web
+site <https://llvm.org/releases/>`_.
+
+For more information about Clang or LLVM, including information about the
+latest release, please see the `Clang Web Site <https://clang.llvm.org>`_ or the
+`LLVM Web Site <https://llvm.org>`_.
+
+Note that if you are reading this file from a Git checkout or the
+main Clang web page, this document applies to the *next* release, not
+the current one. To see the release notes for a specific release, please
+see the `releases page <https://llvm.org/releases/>`_.
+
+What's New in Clang 11.0.0?
+===========================
+
+Some of the major new features and improvements to Clang are listed
+here. Generic improvements to Clang as a whole or to its underlying
+infrastructure are described first, followed by language-specific
+sections with improvements to Clang's support for those languages.
+
+Major New Features
+------------------
+
+- ...
+
+Improvements to Clang's diagnostics
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- ...
+
+Non-comprehensive list of changes in this release
+-------------------------------------------------
+
+
+New Compiler Flags
+------------------
+
+
+- -fstack-clash-protection will provide a protection against the stack clash
+ attack for x86 architecture through automatic probing of each page of
+ allocated stack.
+
+Deprecated Compiler Flags
+-------------------------
+
+The following options are deprecated and ignored. They will be removed in
+future versions of Clang.
+
+- ...
+
+Modified Compiler Flags
+-----------------------
+
+
+New Pragmas in Clang
+--------------------
+
+- ...
+
+Attribute Changes in Clang
+--------------------------
+
+- ...
+
+Windows Support
+---------------
+
+C Language Changes in Clang
+---------------------------
+
+- ...
+
+C11 Feature Support
+^^^^^^^^^^^^^^^^^^^
+
+...
+
+C++ Language Changes in Clang
+-----------------------------
+
+- Clang now implements a restriction on giving non-C-compatible anonymous
+ structs a typedef name for linkage purposes, as described in C++ committee
+ paper `P1766R1 <http://wg21.link/p1766r1>`. This paper was adopted by the
+ C++ committee as a Defect Report resolution, so it is applied retroactively
+ to all C++ standard versions. This affects code such as:
+
+ .. code-block:: c++
+
+ typedef struct {
+ int f() { return 0; }
+ } S;
+
+ Previous versions of Clang rejected some constructs of this form
+ (specifically, where the linkage of the type happened to be computed
+ before the parser reached the typedef name); those cases are still rejected
+ in Clang 11. In addition, cases that previous versions of Clang did not
+ reject now produce an extension warning. This warning can be disabled with
+ the warning flag ``-Wno-non-c-typedef-for-linkage``.
+
+ Affected code should be updated to provide a tag name for the anonymous
+ struct:
+
+ .. code-block:: c++
+
+ struct S {
+ int f() { return 0; }
+ };
+
+ If the code is shared with a C compilation (for example, if the parts that
+ are not C-compatible are guarded with ``#ifdef __cplusplus``), the typedef
+ declaration should be retained, but a tag name should still be provided:
+
+ .. code-block:: c++
+
+ typedef struct S {
+ int f() { return 0; }
+ } S;
+
+C++1z Feature Support
+^^^^^^^^^^^^^^^^^^^^^
+
+...
+
+Objective-C Language Changes in Clang
+-------------------------------------
+
+
+OpenCL C Language Changes in Clang
+----------------------------------
+
+...
+
+ABI Changes in Clang
+--------------------
+
+
+OpenMP Support in Clang
+-----------------------
+
+- ...
+
+CUDA Support in Clang
+---------------------
+
+- ...
+
+Internal API Changes
+--------------------
+
+These are major API changes that have happened since the 10.0.0 release of
+Clang. If upgrading an external codebase that uses Clang as a library,
+this section should help get you past the largest hurdles of upgrading.
+
+
+Build System Changes
+--------------------
+
+These are major changes to the build system that have happened since the 10.0.0
+release of Clang. Users of the build system should adjust accordingly.
+
+- ...
+
+AST Matchers
+------------
+
+- ...
+
+clang-format
+------------
+
+
+- Option ``IndentCaseBlocks`` has been added to support treating the block
+ following a switch case label as a scope block which gets indented itself.
+ It helps avoid having the closing bracket align with the switch statement's
+ closing bracket (when ``IndentCaseLabels`` is ``false``).
+
+- Option ``ObjCBreakBeforeNestedBlockParam`` has been added to optionally apply
+ linebreaks for function arguments declarations before nested blocks.
+
+ .. code-block:: c++
+
+ switch (fool) { vs. switch (fool) {
+ case 1: case 1: {
+ { bar();
+ bar(); } break;
+ } default: {
+ break; plop();
+ default: }
+ { }
+ plop();
+ }
+ }
+
+- Option ``InsertTrailingCommas`` can be set to ``TCS_Wrapped`` to insert
+ trailing commas in container literals (arrays and objects) that wrap across
+ multiple lines. It is currently only available for JavaScript and disabled by
+ default (``TCS_None``).
+
+- Option ``BraceWrapping.BeforeLambdaBody`` has been added to manage lambda
+ line break inside function parameter call in Allman style.
+
+ .. code-block:: c++
+
+ true:
+ connect(
+ []()
+ {
+ foo();
+ bar();
+ });
+
+ false:
+ connect([]() {
+ foo();
+ bar();
+ });
+
+libclang
+--------
+
+- ...
+
+Static Analyzer
+---------------
+
+- ...
+
+.. _release-notes-ubsan:
+
+Undefined Behavior Sanitizer (UBSan)
+------------------------------------
+
+
+Core Analysis Improvements
+==========================
+
+- ...
+
+New Issues Found
+================
+
+- ...
+
+Python Binding Changes
+----------------------
+
+The following methods have been added:
+
+- ...
+
+Significant Known Problems
+==========================
+
+Additional Information
+======================
+
+A wide variety of additional information is available on the `Clang web
+page <https://clang.llvm.org/>`_. The web page contains versions of the
+API documentation which are up-to-date with the Subversion version of
+the source code. You can access versions of these documents specific to
+this release by going into the "``clang/docs/``" directory in the Clang
+tree.
+
+If you have any questions or comments about Clang, please feel free to
+contact us via the `mailing
+list <https://lists.llvm.org/mailman/listinfo/cfe-dev>`_.