• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1=====================================
2Clang 3.3 (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.3 release. You may
14   prefer the `Clang 3.2 Release Notes
15   <http://llvm.org/releases/3.2/docs/ClangReleaseNotes.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.3. 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.3?
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
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
55about them. The improvements since the 3.2 release include:
56
57-  ...
58
59Extended Identifiers: Unicode Support and Universal Character Names
60^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
61
62Clang 3.3 includes support for *extended identifiers* in C99 and C++.
63This feature allows identifiers to contain certain Unicode characters, as
64specified by the active language standard; these characters can be written
65directly in the source file using the UTF-8 encoding, or referred to using
66*universal character names* (``\u00E0``, ``\U000000E0``).
67
68New Compiler Flags
69------------------
70
71-  ...
72
73C Language Changes in Clang
74---------------------------
75
76C11 Feature Support
77^^^^^^^^^^^^^^^^^^^
78
79...
80
81C++ Language Changes in Clang
82-----------------------------
83
84C++11 Feature Support
85^^^^^^^^^^^^^^^^^^^^^
86
87...
88
89Objective-C Language Changes in Clang
90-------------------------------------
91
92...
93
94Internal API Changes
95--------------------
96
97These are major API changes that have happened since the 3.2 release of
98Clang. If upgrading an external codebase that uses Clang as a library,
99this section should help get you past the largest hurdles of upgrading.
100
101Value Casting
102^^^^^^^^^^^^^
103
104Certain type hierarchies (TypeLoc, CFGElement, ProgramPoint, and SVal) were
105misusing the llvm::cast machinery to perform undefined operations. Their APIs
106have been changed to use two member function templates that return values
107instead of pointers or references - "T castAs" and "Optional<T> getAs" (in the
108case of the TypeLoc hierarchy the latter is "T getAs" and you can use the
109boolean testability of a TypeLoc (or its 'validity') to verify that the cast
110succeeded). Essentially all previous 'cast' usage should be replaced with
111'castAs' and 'dyn_cast' should be replaced with 'getAs'. See r175462 for the
112first example of such a change along with many examples of how code was
113migrated to the new API.
114
115API change 1
116^^^^^^^^^^^^
117
118...
119
120Python Binding Changes
121----------------------
122
123The following methods have been added:
124
125-  ...
126
127Significant Known Problems
128==========================
129
130Additional Information
131======================
132
133A wide variety of additional information is available on the `Clang web
134page <http://clang.llvm.org/>`_. The web page contains versions of the
135API documentation which are up-to-date with the Subversion version of
136the source code. You can access versions of these documents specific to
137this release by going into the "``clang/docs/``" directory in the Clang
138tree.
139
140If you have any questions or comments about Clang, please feel free to
141contact us via the `mailing
142list <http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev>`_.
143