Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1381)

Side by Side Diff: docs/ReleaseNotes.rst

Issue 184973004: Prep for merging 3.4: Undo changes from 3.3 branch (Closed) Base URL: http://git.chromium.org/native_client/pnacl-clang.git@master
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « docs/LanguageExtensions.rst ('k') | include/clang/Basic/DiagnosticCommentKinds.td » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ======================= 1 =====================================
2 Clang 3.3 Release Notes 2 Clang 3.3 (In-Progress) Release Notes
3 ======================= 3 =====================================
4 4
5 .. contents:: 5 .. contents::
6 :local: 6 :local:
7 :depth: 2 7 :depth: 2
8 8
9 Written by the `LLVM Team <http://llvm.org/>`_ 9 Written by the `LLVM Team <http://llvm.org/>`_
10 10
11 .. warning::
12
13 These are in-progress notes for the upcoming Clang 3.3 release. You may
14 prefer the `Clang 3.2 Release Notes
15 <http://llvm.org/releases/3.2/docs/ClangReleaseNotes.html>`_.
16
11 Introduction 17 Introduction
12 ============ 18 ============
13 19
14 This document contains the release notes for the Clang C/C++/Objective-C 20 This document contains the release notes for the Clang C/C++/Objective-C
15 frontend, part of the LLVM Compiler Infrastructure, release 3.3. Here we 21 frontend, part of the LLVM Compiler Infrastructure, release 3.3. Here we
16 describe the status of Clang in some detail, including major improvements from 22 describe the status of Clang in some detail, including major
17 the previous release and new feature work. For the general LLVM release notes, 23 improvements from the previous release and new feature work. For the
18 see `the LLVM documentation <http://llvm.org/docs/ReleaseNotes.html>`_. All LLVM 24 general LLVM release notes, see `the LLVM
19 releases may be downloaded from the `LLVM releases web site 25 documentation <http://llvm.org/docs/ReleaseNotes.html>`_. All LLVM
20 <http://llvm.org/releases/>`_. 26 releases may be downloaded from the `LLVM releases web
27 site <http://llvm.org/releases/>`_.
21 28
22 For more information about Clang or LLVM, including information about the latest 29 For more information about Clang or LLVM, including information about
23 release, please check out the main please see the `Clang Web Site 30 the latest release, please check out the main please see the `Clang Web
24 <http://clang.llvm.org>`_ or the `LLVM Web Site <http://llvm.org>`_. 31 Site <http://clang.llvm.org>`_ or the `LLVM Web
32 Site <http://llvm.org>`_.
25 33
26 Note that if you are reading this file from a Subversion checkout or the main 34 Note that if you are reading this file from a Subversion checkout or the
27 Clang web page, this document applies to the *next* release, not the current 35 main Clang web page, this document applies to the *next* release, not
28 one. To see the release notes for a specific release, please see the `releases 36 the current one. To see the release notes for a specific release, please
29 page <http://llvm.org/releases/>`_. 37 see the `releases page <http://llvm.org/releases/>`_.
30 38
31 What's New in Clang 3.3? 39 What's New in Clang 3.3?
32 ======================== 40 ========================
33 41
34 Some of the major new features and improvements to Clang are listed 42 Some of the major new features and improvements to Clang are listed
35 here. Generic improvements to Clang as a whole or to its underlying 43 here. Generic improvements to Clang as a whole or to its underlying
36 infrastructure are described first, followed by language-specific sections with 44 infrastructure are described first, followed by language-specific
37 improvements to Clang's support for those languages. 45 sections with improvements to Clang's support for those languages.
38 46
39 Major New Features 47 Major New Features
40 ------------------ 48 ------------------
41 49
42 Improvements to Clang's diagnostics 50 Improvements to Clang's diagnostics
43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
44 52
45 Clang's diagnostics are constantly being improved to catch more issues, 53 Clang's diagnostics are constantly being improved to catch more issues,
46 explain them more clearly, and provide more accurate source information 54 explain them more clearly, and provide more accurate source information
47 about them. The improvements since the 3.2 release include: 55 about them. The improvements since the 3.2 release include:
48 56
57 - ...
58
49 Extended Identifiers: Unicode Support and Universal Character Names 59 Extended Identifiers: Unicode Support and Universal Character Names
50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 60 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
51 61
52 Clang 3.3 includes support for *extended identifiers* in C99 and C++. 62 Clang 3.3 includes support for *extended identifiers* in C99 and C++.
53 This feature allows identifiers to contain certain Unicode characters, as 63 This feature allows identifiers to contain certain Unicode characters, as
54 specified by the active language standard; these characters can be written 64 specified by the active language standard; these characters can be written
55 directly in the source file using the UTF-8 encoding, or referred to using 65 directly in the source file using the UTF-8 encoding, or referred to using
56 *universal character names* (``\u00E0``, ``\U000000E0``). 66 *universal character names* (``\u00E0``, ``\U000000E0``).
57 67
68 New Compiler Flags
69 ------------------
70
71 - ...
72
58 C Language Changes in Clang 73 C Language Changes in Clang
59 --------------------------- 74 ---------------------------
60 75
76 C11 Feature Support
77 ^^^^^^^^^^^^^^^^^^^
78
79 ...
80
61 C++ Language Changes in Clang 81 C++ Language Changes in Clang
62 ----------------------------- 82 -----------------------------
63 83
64 - Clang now correctly implements language linkage for functions and variables. 84 - Clang now correctly implements language linkage for functions and variables.
65 This means that, for example, it is now possible to overload static functions 85 This means that, for example, it is now possible to overload static functions
66 declared in an ``extern "C"`` context. For backwards compatibility, an alias 86 declared in an ``extern "C"`` context. For backwards compatibility, an alias
67 with the unmangled name is still emitted if it is the only one and has the 87 with the unmangled name is still emitted if it is the only one and has the
68 ``used`` attribute. 88 ``used`` attribute.
69 89
90 C++11 Feature Support
91 ^^^^^^^^^^^^^^^^^^^^^
92
93 ...
94
95 Objective-C Language Changes in Clang
96 -------------------------------------
97
98 ...
99
70 Internal API Changes 100 Internal API Changes
71 -------------------- 101 --------------------
72 102
73 These are major API changes that have happened since the 3.2 release of 103 These are major API changes that have happened since the 3.2 release of
74 Clang. If upgrading an external codebase that uses Clang as a library, 104 Clang. If upgrading an external codebase that uses Clang as a library,
75 this section should help get you past the largest hurdles of upgrading. 105 this section should help get you past the largest hurdles of upgrading.
76 106
77 Value Casting 107 Value Casting
78 ^^^^^^^^^^^^^ 108 ^^^^^^^^^^^^^
79 109
80 Certain type hierarchies (TypeLoc, CFGElement, ProgramPoint, and SVal) were 110 Certain type hierarchies (TypeLoc, CFGElement, ProgramPoint, and SVal) were
81 misusing the llvm::cast machinery to perform undefined operations. Their APIs 111 misusing the llvm::cast machinery to perform undefined operations. Their APIs
82 have been changed to use two member function templates that return values 112 have been changed to use two member function templates that return values
83 instead of pointers or references - "T castAs" and "Optional<T> getAs" (in the 113 instead of pointers or references - "T castAs" and "Optional<T> getAs" (in the
84 case of the TypeLoc hierarchy the latter is "T getAs" and you can use the 114 case of the TypeLoc hierarchy the latter is "T getAs" and you can use the
85 boolean testability of a TypeLoc (or its 'validity') to verify that the cast 115 boolean testability of a TypeLoc (or its 'validity') to verify that the cast
86 succeeded). Essentially all previous 'cast' usage should be replaced with 116 succeeded). Essentially all previous 'cast' usage should be replaced with
87 'castAs' and 'dyn_cast' should be replaced with 'getAs'. See r175462 for the 117 'castAs' and 'dyn_cast' should be replaced with 'getAs'. See r175462 for the
88 first example of such a change along with many examples of how code was 118 first example of such a change along with many examples of how code was
89 migrated to the new API. 119 migrated to the new API.
90 120
91 Storage Class 121 Storage Class
92 ^^^^^^^^^^^^^ 122 ^^^^^^^^^^^^^
93 123
94 For each variable and function Clang used to keep the storage class as written 124 For each variable and function Clang used to keep the storage class as written
95 in the source, the linkage and a semantic storage class. This was a bit 125 in the source, the linkage and a semantic storage class. This was a bit
96 redundant and the semantic storage class has been removed. The method 126 redundant and the semantic storage class has been removed. The method
97 getStorageClass now returns what is written in the source code for that decl. 127 getStorageClass now returns what is written it the source code for that decl.
128
129 ...
98 130
99 libclang 131 libclang
100 -------- 132 --------
101 133
102 The clang_CXCursorSet_contains() function previously incorrectly returned 0 134 The clang_CXCursorSet_contains() function previously incorrectly returned 0
103 if it contained a CXCursor, contrary to what the documentation stated. This 135 if it contained a CXCursor, contrary to what the documentation stated. This
104 has been fixed so that the function returns a non-zero value if the set 136 has been fixed so that the function returns a non-zero value if the set
105 contains a cursor. This is API breaking change, but matches the intended 137 contains a cursor. This is API breaking change, but matches the intended
106 original behavior. Moreover, this also fixes the issue of an invalid CXCursorSe t 138 original behavior. Moreover, this also fixes the issue of an invalid CXCursorSe t
107 appearing to contain any CXCursor. 139 appearing to contain any CXCursor.
108 140
109 Static Analyzer 141 Static Analyzer
110 --------------- 142 ---------------
111 143
112 The static analyzer (which contains additional code checking beyond compiler 144 The static analyzer (which contains additional code checking beyond compiler
113 warnings) has improved significantly in both in the core analysis engine and 145 warnings) has improved significantly in both in the core analysis engine and
114 also in the kinds of issues it can find. 146 also in the kinds of issues it can find.
115 147
116 Core Analysis Improvements 148 Core Analysis Improvements
117 ========================== 149 ==========================
118 150
119 - Support for interprocedural reasoning about constructors and destructors. 151 - Support for interprocedural reasoning about constructors and destructors.
120 - New false positive suppression mechanisms that reduced the number of false 152 - New false positive suppression mechanisms that reduced the number of false nul l pointer dereference warnings due to interprocedural analysis.
121 null pointer dereference warnings due to interprocedural analysis.
122 - Major performance enhancements to speed up interprocedural analysis 153 - Major performance enhancements to speed up interprocedural analysis
123 154
124 New Issues Found 155 New Issues Found
125 ================ 156 ================
126 157
127 - New memory error checks such as use-after-free with C++ 'delete'. 158 - New memory error checks such as use-after-free with C++ 'delete'.
128 - Detection of mismatched allocators and deallocators (e.g., using 'new' with 159 - Detection of mismatched allocators and deallocators (e.g., using 'new' with 'f ree()', 'malloc()' with 'delete').
129 'free()', 'malloc()' with 'delete').
130 - Additional checks for misuses of Apple Foundation framework collection APIs. 160 - Additional checks for misuses of Apple Foundation framework collection APIs.
131 161
162 Python Binding Changes
163 ----------------------
164
165 The following methods have been added:
166
167 - ...
168
132 Significant Known Problems 169 Significant Known Problems
133 ========================== 170 ==========================
134 171
135 Additional Information 172 Additional Information
136 ====================== 173 ======================
137 174
138 A wide variety of additional information is available on the `Clang web page 175 A wide variety of additional information is available on the `Clang web
139 <http://clang.llvm.org/>`_. The web page contains versions of the API 176 page <http://clang.llvm.org/>`_. The web page contains versions of the
140 documentation which are up-to-date with the Subversion version of the source 177 API documentation which are up-to-date with the Subversion version of
141 code. You can access versions of these documents specific to this release by 178 the source code. You can access versions of these documents specific to
142 going into the "``clang/docs/``" directory in the Clang tree. 179 this release by going into the "``clang/docs/``" directory in the Clang
180 tree.
143 181
144 If you have any questions or comments about Clang, please feel free to contact 182 If you have any questions or comments about Clang, please feel free to
145 us via the `mailing list <http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev>`_. 183 contact us via the `mailing
184 list <http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev>`_.
OLDNEW
« no previous file with comments | « docs/LanguageExtensions.rst ('k') | include/clang/Basic/DiagnosticCommentKinds.td » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698