xref: /minix3/external/bsd/llvm/dist/clang/docs/ReleaseNotes.rst (revision 433d6423c39e34ec4b79c950597bb2d236f886be)
1=====================================
2Clang 3.4 (In-Progress) Release Notes
3=====================================
4
5.. contents::
6   :local:
7   :depth: 2
8
9Introduction
10============
11
12This document contains the release notes for the Clang C/C++/Objective-C
13frontend, part of the LLVM Compiler Infrastructure, release 3.4. Here we
14describe the status of Clang in some detail, including major
15improvements from the previous release and new feature work. For the
16general LLVM release notes, see `the LLVM
17documentation <http://llvm.org/docs/ReleaseNotes.html>`_. All LLVM
18releases may be downloaded from the `LLVM releases web
19site <http://llvm.org/releases/>`_.
20
21For more information about Clang or LLVM, including information about
22the latest release, please check out the main please see the `Clang Web
23Site <http://clang.llvm.org>`_ or the `LLVM Web
24Site <http://llvm.org>`_.
25
26Note that if you are reading this file from a Subversion checkout or the
27main Clang web page, this document applies to the *next* release, not
28the current one. To see the release notes for a specific release, please
29see the `releases page <http://llvm.org/releases/>`_.
30
31What's New in Clang 3.4?
32========================
33
34Some of the major new features and improvements to Clang are listed
35here. Generic improvements to Clang as a whole or to its underlying
36infrastructure are described first, followed by language-specific
37sections with improvements to Clang's support for those languages.
38
39Last release which will build as C++98
40--------------------------------------
41
42This is expected to be the last release of Clang which compiles using a C++98
43toolchain. We expect to start using some C++11 features in Clang starting after
44this release. That said, we are committed to supporting a reasonable set of
45modern C++ toolchains as the host compiler on all of the platforms. This will
46at least include Visual Studio 2012 on Windows, and Clang 3.1 or GCC 4.7.x on
47Mac and Linux. The final set of compilers (and the C++11 features they support)
48is not set in stone, but we wanted users of Clang to have a heads up that the
49next release will involve a substantial change in the host toolchain
50requirements.
51
52Note that this change is part of a change for the entire LLVM project, not just
53Clang.
54
55Major New Features
56------------------
57
58Improvements to Clang's diagnostics
59^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
60
61Clang's diagnostics are constantly being improved to catch more issues,
62explain them more clearly, and provide more accurate source information
63about them. The improvements since the 3.3 release include:
64
65-  ...
66
67New Compiler Flags
68------------------
69
70- Clang no longer special cases -O4 to enable lto. Explicitly pass -flto to
71  enable it.
72- Clang no longer fails on >= -O5. Uses -O3 instead.
73- Command line "clang -O3 -flto a.c -c" and "clang -emit-llvm a.c -c"
74  are no longer equivalent.
75- Clang now errors on unknown -m flags (``-munknown-to-clang``),
76  unknown -f flags (``-funknown-to-clang``) and unknown
77  options (``-what-is-this``).
78
79C Language Changes in Clang
80---------------------------
81
82- Added new checked arithmetic builtins for security critical applications.
83
84C11 Feature Support
85^^^^^^^^^^^^^^^^^^^
86
87...
88
89C++ Language Changes in Clang
90-----------------------------
91
92- Fixed an ABI regression, introduced in Clang 3.2, which affected
93  member offsets for classes inheriting from certain classes with tail padding.
94  See PR16537.
95
96- ...
97
98C++11 Feature Support
99^^^^^^^^^^^^^^^^^^^^^
100
101...
102
103Objective-C Language Changes in Clang
104-------------------------------------
105
106...
107
108OpenCL C Language Changes in Clang
109----------------------------------
110
111- OpenCL C "long" now always has a size of 64 bit, and all OpenCL C
112  types are aligned as specified in the OpenCL C standard. Also,
113  "char" is now always signed.
114
115Internal API Changes
116--------------------
117
118These are major API changes that have happened since the 3.3 release of
119Clang. If upgrading an external codebase that uses Clang as a library,
120this section should help get you past the largest hurdles of upgrading.
121
122Wide Character Types
123^^^^^^^^^^^^^^^^^^^^
124
125The ASTContext class now keeps track of two different types for wide character
126types: WCharTy and WideCharTy. WCharTy represents the built-in wchar_t type
127available in C++. WideCharTy is the type used for wide character literals; in
128C++ it is the same as WCharTy, but in C99, where wchar_t is a typedef, it is an
129integer type.
130
131...
132
133libclang
134--------
135
136...
137
138Static Analyzer
139---------------
140
141The static analyzer (which contains additional code checking beyond compiler
142warnings) has improved significantly in both in the core analysis engine and
143also in the kinds of issues it can find.
144
145Core Analysis Improvements
146==========================
147
148- ...
149
150New Issues Found
151================
152
153- ...
154
155Python Binding Changes
156----------------------
157
158The following methods have been added:
159
160-  ...
161
162Significant Known Problems
163==========================
164
165Additional Information
166======================
167
168A wide variety of additional information is available on the `Clang web
169page <http://clang.llvm.org/>`_. The web page contains versions of the
170API documentation which are up-to-date with the Subversion version of
171the source code. You can access versions of these documents specific to
172this release by going into the "``clang/docs/``" directory in the Clang
173tree.
174
175If you have any questions or comments about Clang, please feel free to
176contact us via the `mailing
177list <http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev>`_.
178