blob: 3032f37900aaf4bcb401d6455cc015a052fa6ea5 [file] [log] [blame]
Sean Silvab0455142013-01-02 22:05:33 +00001=====================================
Bill Wendling0a794a4b2013-11-20 10:13:37 +00002Clang 3.5 (In-Progress) Release Notes
Sean Silvab0455142013-01-02 22:05:33 +00003=====================================
Sean Silvafe251442012-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 Wendling0a794a4b2013-11-20 10:13:37 +000013 These are in-progress notes for the upcoming Clang 3.5 release. You may
14 prefer the `Clang 3.4 Release Notes
15 <http://llvm.org/releases/3.4/tools/clang/docs/ReleaseNotes.html>`_.
Sean Silvafe251442012-12-23 01:19:35 +000016
17Introduction
18============
19
20This document contains the release notes for the Clang C/C++/Objective-C
Bill Wendling0a794a4b2013-11-20 10:13:37 +000021frontend, part of the LLVM Compiler Infrastructure, release 3.5. Here we
Sean Silvafe251442012-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 Wendling0a794a4b2013-11-20 10:13:37 +000039What's New in Clang 3.5?
Sean Silvafe251442012-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
Rafael Espindola34970692013-12-12 16:07:11 +000050- Clang uses the new MingW ABI
51GCC 4.7 changed the mingw ABI. Clang 3.4 and older use the GCC 4.6
52ABI. Clang 3.5 and newer use the GCC 4.7 abi.
53
Aaron Ballmana4bb4b92014-01-09 23:11:13 +000054- The __has_attribute feature test is now target-aware. Older versions of Clang
55would return true when the attribute spelling was known, regardless of whether
56the attribute was available to the specific target. Clang now returns true only
57when the attribute pertains to the current compilation target.
58
Rafael Espindola34970692013-12-12 16:07:11 +000059
Sean Silvafe251442012-12-23 01:19:35 +000060Improvements to Clang's diagnostics
61^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
62
63Clang's diagnostics are constantly being improved to catch more issues,
64explain them more clearly, and provide more accurate source information
Bill Wendling0a794a4b2013-11-20 10:13:37 +000065about them. The improvements since the 3.4 release include:
Sean Silvafe251442012-12-23 01:19:35 +000066
67- ...
68
Sean Silvafe251442012-12-23 01:19:35 +000069New Compiler Flags
70------------------
71
Renato Golin1588cda2013-12-11 09:35:10 +000072The integrated assembler is now turned on by default on ARM (and Thumb),
Saleem Abdulrasool3aa840e2014-02-23 02:08:45 +000073so the use of the option `-fintegrated-as` is now redundant on those
Renato Golin1588cda2013-12-11 09:35:10 +000074architectures. This is an important move to both *eat our own dog food*
75and to ease cross-compilation tremendously.
76
77We are aware of the problems that this may cause for code bases that
78rely on specific GNU syntax or extensions, and we're working towards
79getting them all fixed. Please, report bugs or feature requests if
Saleem Abdulrasool3aa840e2014-02-23 02:08:45 +000080you find anything. In the meantime, use `-fno-integrated-as` to revert
Renato Golin1588cda2013-12-11 09:35:10 +000081back the call to GNU assembler.
Michael Gottesman930ecdb2013-06-20 23:28:10 +000082
Saleem Abdulrasool3aa840e2014-02-23 02:08:45 +000083In order to provide better diagnostics, the integrated assembler validates
84inline assembly when the integrated assembler is enabled. Because this is
85considered a feature of the compiler, it is controlled via the `fintegrated-as`
86and `fno-integrated-as` flags which enable and disable the integrated assembler
87respectively. `-integrated-as` and `-no-integrated-as` are now considered
88legacy flags (but are available as an alias to prevent breaking existing users),
89and users are encouraged to switch to the equivalent new feature flag.
90
Renato Golinf2fcddb2013-12-13 09:27:34 +000091C Language Changes in Clang
92---------------------------
93
94...
95
Sean Silvafe251442012-12-23 01:19:35 +000096C11 Feature Support
97^^^^^^^^^^^^^^^^^^^
98
99...
100
101C++ Language Changes in Clang
102-----------------------------
103
Bill Wendling61f44cc2013-06-04 06:17:46 +0000104- ...
Rafael Espindola9ca6e812013-04-09 12:51:24 +0000105
Sean Silvafe251442012-12-23 01:19:35 +0000106C++11 Feature Support
107^^^^^^^^^^^^^^^^^^^^^
108
109...
110
111Objective-C Language Changes in Clang
112-------------------------------------
113
114...
115
Erik Schnetter489700d2013-11-11 06:36:33 +0000116OpenCL C Language Changes in Clang
117----------------------------------
118
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000119...
Erik Schnetter489700d2013-11-11 06:36:33 +0000120
Sean Silvafe251442012-12-23 01:19:35 +0000121Internal API Changes
122--------------------
123
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000124These are major API changes that have happened since the 3.4 release of
Sean Silvafe251442012-12-23 01:19:35 +0000125Clang. If upgrading an external codebase that uses Clang as a library,
126this section should help get you past the largest hurdles of upgrading.
127
Sean Silvafe251442012-12-23 01:19:35 +0000128...
129
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000130libclang
131--------
132
Bill Wendling61f44cc2013-06-04 06:17:46 +0000133...
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000134
Anna Zaksb6219a92013-04-25 23:14:38 +0000135Static Analyzer
Ted Kremenek004e8232013-04-26 00:01:34 +0000136---------------
Anna Zaksb6219a92013-04-25 23:14:38 +0000137
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000138...
Ted Kremenek004e8232013-04-26 00:01:34 +0000139
140Core Analysis Improvements
141==========================
142
Bill Wendling61f44cc2013-06-04 06:17:46 +0000143- ...
Ted Kremenek004e8232013-04-26 00:01:34 +0000144
145New Issues Found
146================
147
Bill Wendling61f44cc2013-06-04 06:17:46 +0000148- ...
Anna Zaksb6219a92013-04-25 23:14:38 +0000149
Sean Silvafe251442012-12-23 01:19:35 +0000150Python Binding Changes
151----------------------
152
153The following methods have been added:
154
155- ...
156
157Significant Known Problems
158==========================
159
160Additional Information
161======================
162
163A wide variety of additional information is available on the `Clang web
164page <http://clang.llvm.org/>`_. The web page contains versions of the
165API documentation which are up-to-date with the Subversion version of
166the source code. You can access versions of these documents specific to
167this release by going into the "``clang/docs/``" directory in the Clang
168tree.
169
170If you have any questions or comments about Clang, please feel free to
171contact us via the `mailing
172list <http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev>`_.