• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1=====================================
2Clang 3.5 (In-Progress) Release Notes
3=====================================
4
5.. contents::
6   :local:
7   :depth: 2
8
9Written by the `LLVM Team <http://llvm.org/>`_
10
11.. warning::
12
13   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>`_.
16
17Introduction
18============
19
20This document contains the release notes for the Clang C/C++/Objective-C
21frontend, part of the LLVM Compiler Infrastructure, release 3.5. Here we
22describe 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
39What's New in Clang 3.5?
40========================
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
50- Clang uses the new MingW ABI
51  GCC 4.7 changed the mingw ABI. Clang 3.4 and older use the GCC 4.6
52  ABI. Clang 3.5 and newer use the GCC 4.7 abi.
53
54- The __has_attribute feature test is now target-aware. Older versions of Clang
55  would return true when the attribute spelling was known, regardless of whether
56  the attribute was available to the specific target. Clang now returns true
57  only when the attribute pertains to the current compilation target.
58
59
60Improvements 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
65about them. The improvements since the 3.4 release include:
66
67-  ...
68
69New Compiler Flags
70------------------
71
72The integrated assembler is now turned on by default on ARM (and Thumb),
73so the use of the option `-fintegrated-as` is now redundant on those
74architectures. 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
80you find anything. In the meantime, use `-fno-integrated-as` to revert
81back the call to GNU assembler.
82
83In 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
91Deprecated flags `-faddress-sanitizer`, `-fthread-sanitizer`,
92`-fcatch-undefined-behavior` and `-fbounds-checking` were removed in favor of
93`-fsanitize=` family of flags.
94
95It is now possible to get optimization reports from the major transformation
96passes via three new flags: `-Rpass`, `-Rpass-missed` and `-Rpass-analysis`.
97These flags take a POSIX regular expression which indicates the name
98of the pass (or passes) that should emit optimization remarks.
99
100New Pragmas in Clang
101-----------------------
102
103Loop optimization hints can be specified using the new `#pragma clang loop`
104directive just prior to the desired loop. The directive allows vectorization,
105interleaving, and unrolling to be enabled or disabled. Vector width as well
106as interleave and unrolling count can be manually specified.  See language
107extensions for details.
108
109C Language Changes in Clang
110---------------------------
111
112...
113
114C11 Feature Support
115^^^^^^^^^^^^^^^^^^^
116
117...
118
119C++ Language Changes in Clang
120-----------------------------
121
122- ...
123
124C++11 Feature Support
125^^^^^^^^^^^^^^^^^^^^^
126
127...
128
129Objective-C Language Changes in Clang
130-------------------------------------
131
132...
133
134OpenCL C Language Changes in Clang
135----------------------------------
136
137...
138
139Internal API Changes
140--------------------
141
142These are major API changes that have happened since the 3.4 release of
143Clang. If upgrading an external codebase that uses Clang as a library,
144this section should help get you past the largest hurdles of upgrading.
145
146...
147
148libclang
149--------
150
151...
152
153Static Analyzer
154---------------
155
156The `-analyzer-config` options are now passed from scan-build through to
157ccc-analyzer and then to Clang.
158
159With the option `-analyzer-config stable-report-filename=true`,
160instead of `report-XXXXXX.html`, scan-build/clang analyzer generate
161`report-<filename>-<function, method name>-<function position>-<id>.html`.
162(id = i++ for several issues found in the same function/method).
163
164List the function/method name in the index page of scan-build.
165
166...
167
168Core Analysis Improvements
169==========================
170
171- ...
172
173New Issues Found
174================
175
176- ...
177
178Python Binding Changes
179----------------------
180
181The following methods have been added:
182
183-  ...
184
185Significant Known Problems
186==========================
187
188Additional Information
189======================
190
191A wide variety of additional information is available on the `Clang web
192page <http://clang.llvm.org/>`_. The web page contains versions of the
193API documentation which are up-to-date with the Subversion version of
194the source code. You can access versions of these documents specific to
195this release by going into the "``clang/docs/``" directory in the Clang
196tree.
197
198If you have any questions or comments about Clang, please feel free to
199contact us via the `mailing
200list <http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev>`_.
201