blob: df4ee1b5a09285797af15036c77ea5e6ad92973f [file] [log] [blame]
Sean Silva28c1f752013-01-02 22:05:33 +00001=====================================
Bill Wendlinga03209e2013-06-04 06:17:46 +00002Clang 3.4 (In-Progress) Release Notes
Sean Silva28c1f752013-01-02 22:05:33 +00003=====================================
Sean Silvadebc0182012-12-23 01:19:35 +00004
5.. contents::
6 :local:
7 :depth: 2
8
9Written by the `LLVM Team <http://llvm.org/>`_
10
11.. warning::
12
Bill Wendlinga03209e2013-06-04 06:17:46 +000013 These are in-progress notes for the upcoming Clang 3.4 release. You may
14 prefer the `Clang 3.3 Release Notes
Richard Smith2c720002013-06-17 23:53:08 +000015 <http://llvm.org/releases/3.3/tools/clang/docs/ReleaseNotes.html>`_.
Sean Silvadebc0182012-12-23 01:19:35 +000016
17Introduction
18============
19
20This document contains the release notes for the Clang C/C++/Objective-C
Bill Wendlinga03209e2013-06-04 06:17:46 +000021frontend, part of the LLVM Compiler Infrastructure, release 3.4. Here we
Sean Silvadebc0182012-12-23 01:19:35 +000022describe the status of Clang in some detail, including major
23improvements from the previous release and new feature work. For the
24general LLVM release notes, see `the LLVM
25documentation <http://llvm.org/docs/ReleaseNotes.html>`_. All LLVM
26releases may be downloaded from the `LLVM releases web
27site <http://llvm.org/releases/>`_.
28
29For more information about Clang or LLVM, including information about
30the latest release, please check out the main please see the `Clang Web
31Site <http://clang.llvm.org>`_ or the `LLVM Web
32Site <http://llvm.org>`_.
33
34Note that if you are reading this file from a Subversion checkout or the
35main Clang web page, this document applies to the *next* release, not
36the current one. To see the release notes for a specific release, please
37see the `releases page <http://llvm.org/releases/>`_.
38
Bill Wendlinga03209e2013-06-04 06:17:46 +000039What's New in Clang 3.4?
Sean Silvadebc0182012-12-23 01:19:35 +000040========================
41
42Some of the major new features and improvements to Clang are listed
43here. Generic improvements to Clang as a whole or to its underlying
44infrastructure are described first, followed by language-specific
45sections with improvements to Clang's support for those languages.
46
47Major New Features
48------------------
49
50Improvements to Clang's diagnostics
51^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
52
53Clang's diagnostics are constantly being improved to catch more issues,
54explain them more clearly, and provide more accurate source information
Bill Wendlinga03209e2013-06-04 06:17:46 +000055about them. The improvements since the 3.3 release include:
Sean Silvadebc0182012-12-23 01:19:35 +000056
57- ...
58
Sean Silvadebc0182012-12-23 01:19:35 +000059New Compiler Flags
60------------------
61
Rafael Espindola3b0f62b2013-08-23 21:49:00 +000062- Clang no longer special cases -O4 to enable lto. Explicitly pass -flto to
63 enable it.
Shuxin Yang8b498542013-08-23 22:01:03 +000064- Command line "clang -O3 -flto a.c -c" and "clang -emit-llvm a.c -c"
65 are no longer equivalent.
Sean Silvadebc0182012-12-23 01:19:35 +000066
67C Language Changes in Clang
68---------------------------
69
Michael Gottesman98d1ec12013-06-20 23:28:10 +000070- Added new checked arithmetic builtins for security critical applications.
71
Sean Silvadebc0182012-12-23 01:19:35 +000072C11 Feature Support
73^^^^^^^^^^^^^^^^^^^
74
75...
76
77C++ Language Changes in Clang
78-----------------------------
79
Eli Friedman65400522013-07-20 01:06:31 +000080- Fixed an ABI regression, introduced in Clang 3.2, which affected
81 member offsets for classes inheriting from certain classes with tail padding.
82 See PR16537.
83
Bill Wendlinga03209e2013-06-04 06:17:46 +000084- ...
Rafael Espindola40db5152013-04-09 12:51:24 +000085
Sean Silvadebc0182012-12-23 01:19:35 +000086C++11 Feature Support
87^^^^^^^^^^^^^^^^^^^^^
88
89...
90
91Objective-C Language Changes in Clang
92-------------------------------------
93
94...
95
96Internal API Changes
97--------------------
98
Bill Wendlinga03209e2013-06-04 06:17:46 +000099These are major API changes that have happened since the 3.3 release of
Sean Silvadebc0182012-12-23 01:19:35 +0000100Clang. If upgrading an external codebase that uses Clang as a library,
101this section should help get you past the largest hurdles of upgrading.
102
Hans Wennborg0437e0d2013-05-20 14:53:06 +0000103Wide Character Types
104^^^^^^^^^^^^^^^^^^^^
105
106The ASTContext class now keeps track of two different types for wide character
107types: WCharTy and WideCharTy. WCharTy represents the built-in wchar_t type
108available in C++. WideCharTy is the type used for wide character literals; in
109C++ it is the same as WCharTy, but in C99, where wchar_t is a typedef, it is an
110integer type.
111
Sean Silvadebc0182012-12-23 01:19:35 +0000112...
113
Ted Kremenek230fc372013-04-24 07:33:52 +0000114libclang
115--------
116
Bill Wendlinga03209e2013-06-04 06:17:46 +0000117...
Ted Kremenek230fc372013-04-24 07:33:52 +0000118
Anna Zaks08741a02013-04-25 23:14:38 +0000119Static Analyzer
Ted Kremenek1377a462013-04-26 00:01:34 +0000120---------------
Anna Zaks08741a02013-04-25 23:14:38 +0000121
Ted Kremenek1377a462013-04-26 00:01:34 +0000122The static analyzer (which contains additional code checking beyond compiler
123warnings) has improved significantly in both in the core analysis engine and
124also in the kinds of issues it can find.
125
126Core Analysis Improvements
127==========================
128
Bill Wendlinga03209e2013-06-04 06:17:46 +0000129- ...
Ted Kremenek1377a462013-04-26 00:01:34 +0000130
131New Issues Found
132================
133
Bill Wendlinga03209e2013-06-04 06:17:46 +0000134- ...
Anna Zaks08741a02013-04-25 23:14:38 +0000135
Sean Silvadebc0182012-12-23 01:19:35 +0000136Python Binding Changes
137----------------------
138
139The following methods have been added:
140
141- ...
142
143Significant Known Problems
144==========================
145
146Additional Information
147======================
148
149A wide variety of additional information is available on the `Clang web
150page <http://clang.llvm.org/>`_. The web page contains versions of the
151API documentation which are up-to-date with the Subversion version of
152the source code. You can access versions of these documents specific to
153this release by going into the "``clang/docs/``" directory in the Clang
154tree.
155
156If you have any questions or comments about Clang, please feel free to
157contact us via the `mailing
158list <http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev>`_.