hanchenye-llvm-project/clang
Reid Kleckner 18da98ef99 [ms-cxxabi] Use sugared types in the mangler instead of canonical types
At this point, it's clear that the MSVC mangler uses the type-as-written
instead of the canonical type, so this should bring us closer to MSVC.
The main thrust of this change is to fix the way we mangle decayed array
parameters of function pointer parameters.  With a DecayedType sugar
node, this code can now be much simpler.

Fixes PR16096.

This also fixes a separate issue that Richard spotted in review.
Because separate declarations of the same entity can be spelled and
mangled differently, MSVC always mangles the earliest declaration in an
attempt to avoid link errors.  Clang now does the same.

Reviewers: rsmith

Differential Revision: http://llvm-reviews.chandlerc.com/D844

llvm-svn: 184777
2013-06-24 19:21:52 +00:00
..
INPUTS
bindings Comment parsing: allow "\param ..." to describe variadic arguments 2013-06-24 04:41:32 +00:00
docs [analyzer] Add a debug checker that prints Exploded Graph 2013-06-24 18:12:12 +00:00
examples Include PathV1.h only where it is used. 2013-06-17 17:23:47 +00:00
include [AST] Introduce a new DecayedType sugar node 2013-06-24 17:51:48 +00:00
lib [ms-cxxabi] Use sugared types in the mangler instead of canonical types 2013-06-24 19:21:52 +00:00
runtime The makefile build system had two lists of the 32-bit runtime libraries 2013-06-23 10:10:25 +00:00
test [ms-cxxabi] Use sugared types in the mangler instead of canonical types 2013-06-24 19:21:52 +00:00
tools [AST] Introduce a new DecayedType sugar node 2013-06-24 17:51:48 +00:00
unittests clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp: Suppress unexpected failures on MS hosts. 2013-06-24 13:19:26 +00:00
utils Remove option emitter from clang-tblgen 2013-06-18 15:25:00 +00:00
www DR14, DR101, and part of DR1: fix handling of extern "C" declarations in 2013-06-18 20:15:12 +00:00
.arcconfig
.gitignore
CMakeLists.txt Retain linker flags specified on cmake command line. 2013-06-12 20:02:59 +00:00
CODE_OWNERS.TXT
INSTALL.txt Reverting test commit 2013-06-07 05:33:21 +00:00
LICENSE.TXT
Makefile
ModuleInfo.txt
NOTES.txt
README.txt

README.txt

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:              http://clang.llvm.org/
Building and using Clang:          http://clang.llvm.org/get_started.html
Clang Static Analyzer:             http://clang-analyzer.llvm.org/
Information on the LLVM project:   http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/