forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			177 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
			
		
		
	
	
			177 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
| =====================================
 | |
| Clang 3.5 (In-Progress) Release Notes
 | |
| =====================================
 | |
| 
 | |
| .. contents::
 | |
|    :local:
 | |
|    :depth: 2
 | |
| 
 | |
| Written by the `LLVM Team <http://llvm.org/>`_
 | |
| 
 | |
| .. warning::
 | |
| 
 | |
|    These are in-progress notes for the upcoming Clang 3.5 release. You may
 | |
|    prefer the `Clang 3.4 Release Notes
 | |
|    <http://llvm.org/releases/3.4/tools/clang/docs/ReleaseNotes.html>`_.
 | |
| 
 | |
| Introduction
 | |
| ============
 | |
| 
 | |
| This document contains the release notes for the Clang C/C++/Objective-C
 | |
| frontend, part of the LLVM Compiler Infrastructure, release 3.5. Here we
 | |
| describe the status of Clang in some detail, including major
 | |
| improvements from the previous release and new feature work. For the
 | |
| general LLVM release notes, see `the LLVM
 | |
| documentation <http://llvm.org/docs/ReleaseNotes.html>`_. All LLVM
 | |
| releases may be downloaded from the `LLVM releases web
 | |
| site <http://llvm.org/releases/>`_.
 | |
| 
 | |
| For more information about Clang or LLVM, including information about
 | |
| the latest release, please check out the main please see the `Clang Web
 | |
| Site <http://clang.llvm.org>`_ or the `LLVM Web
 | |
| Site <http://llvm.org>`_.
 | |
| 
 | |
| Note that if you are reading this file from a Subversion checkout or the
 | |
| main Clang web page, this document applies to the *next* release, not
 | |
| the current one. To see the release notes for a specific release, please
 | |
| see the `releases page <http://llvm.org/releases/>`_.
 | |
| 
 | |
| What's New in Clang 3.5?
 | |
| ========================
 | |
| 
 | |
| Some of the major new features and improvements to Clang are listed
 | |
| here. Generic improvements to Clang as a whole or to its underlying
 | |
| infrastructure are described first, followed by language-specific
 | |
| sections with improvements to Clang's support for those languages.
 | |
| 
 | |
| Major New Features
 | |
| ------------------
 | |
| 
 | |
| - Clang uses the new MingW ABI
 | |
|   GCC 4.7 changed the mingw ABI. Clang 3.4 and older use the GCC 4.6
 | |
|   ABI. Clang 3.5 and newer use the GCC 4.7 abi.
 | |
| 
 | |
| - The __has_attribute feature test is now target-aware. Older versions of Clang 
 | |
|   would return true when the attribute spelling was known, regardless of whether 
 | |
|   the attribute was available to the specific target. Clang now returns true only 
 | |
|   when the attribute pertains to the current compilation target.
 | |
| 
 | |
| 
 | |
| Improvements to Clang's diagnostics
 | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| Clang's diagnostics are constantly being improved to catch more issues,
 | |
| explain them more clearly, and provide more accurate source information
 | |
| about them. The improvements since the 3.4 release include:
 | |
| 
 | |
| -  ...
 | |
| 
 | |
| New Compiler Flags
 | |
| ------------------
 | |
| 
 | |
| The integrated assembler is now turned on by default on ARM (and Thumb),
 | |
| so the use of the option `-fintegrated-as` is now redundant on those
 | |
| architectures. This is an important move to both *eat our own dog food*
 | |
| and to ease cross-compilation tremendously.
 | |
| 
 | |
| We are aware of the problems that this may cause for code bases that
 | |
| rely on specific GNU syntax or extensions, and we're working towards
 | |
| getting them all fixed. Please, report bugs or feature requests if
 | |
| you find anything. In the meantime, use `-fno-integrated-as` to revert
 | |
| back the call to GNU assembler.
 | |
| 
 | |
| In order to provide better diagnostics, the integrated assembler validates
 | |
| inline assembly when the integrated assembler is enabled.  Because this is
 | |
| considered a feature of the compiler, it is controlled via the `fintegrated-as`
 | |
| and `fno-integrated-as` flags which enable and disable the integrated assembler
 | |
| respectively.  `-integrated-as` and `-no-integrated-as` are now considered
 | |
| legacy flags (but are available as an alias to prevent breaking existing users),
 | |
| and users are encouraged to switch to the equivalent new feature flag.
 | |
| 
 | |
| Deprecated flags `-faddress-sanitizer`, `-fthread-sanitizer`,
 | |
| `-fcatch-undefined-behavior` and `-fbounds-checking` were removed in favor of
 | |
| `-fsanitize=` family of flags.
 | |
| 
 | |
| C Language Changes in Clang
 | |
| ---------------------------
 | |
| 
 | |
| ...
 | |
| 
 | |
| C11 Feature Support
 | |
| ^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| ...
 | |
| 
 | |
| C++ Language Changes in Clang
 | |
| -----------------------------
 | |
| 
 | |
| - ...
 | |
| 
 | |
| C++11 Feature Support
 | |
| ^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| ...
 | |
| 
 | |
| Objective-C Language Changes in Clang
 | |
| -------------------------------------
 | |
| 
 | |
| ...
 | |
| 
 | |
| OpenCL C Language Changes in Clang
 | |
| ----------------------------------
 | |
| 
 | |
| ...
 | |
| 
 | |
| Internal API Changes
 | |
| --------------------
 | |
| 
 | |
| These are major API changes that have happened since the 3.4 release of
 | |
| Clang. If upgrading an external codebase that uses Clang as a library,
 | |
| this section should help get you past the largest hurdles of upgrading.
 | |
| 
 | |
| ...
 | |
| 
 | |
| libclang
 | |
| --------
 | |
| 
 | |
| ...
 | |
| 
 | |
| Static Analyzer
 | |
| ---------------
 | |
| 
 | |
| ...
 | |
| 
 | |
| Core Analysis Improvements
 | |
| ==========================
 | |
| 
 | |
| - ...
 | |
| 
 | |
| New Issues Found
 | |
| ================
 | |
| 
 | |
| - ...
 | |
| 
 | |
| Python Binding Changes
 | |
| ----------------------
 | |
| 
 | |
| The following methods have been added:
 | |
| 
 | |
| -  ...
 | |
| 
 | |
| Significant Known Problems
 | |
| ==========================
 | |
| 
 | |
| Additional Information
 | |
| ======================
 | |
| 
 | |
| A wide variety of additional information is available on the `Clang web
 | |
| page <http://clang.llvm.org/>`_. The web page contains versions of the
 | |
| API documentation which are up-to-date with the Subversion version of
 | |
| the source code. You can access versions of these documents specific to
 | |
| this release by going into the "``clang/docs/``" directory in the Clang
 | |
| tree.
 | |
| 
 | |
| If you have any questions or comments about Clang, please feel free to
 | |
| contact us via the `mailing
 | |
| list <http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev>`_.
 |