SanitizerBlacklist: Use spelling location for blacklisting purposes.

When SanitizerBlacklist decides if the SourceLocation is blacklisted,
we need to first turn it into a SpellingLoc before fetching the filename
and scanning "src:" entries. Otherwise we will fail to fecth the
correct filename for function definitions coming from macro expansion.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220403 91177308-0d34-0410-b5e6-96231b3b80d8
Fixup for r220403: Use getFileLoc() instead of getSpellingLoc() in SanitizerBlacklist.

This also handles the case where function name (not its body)
is obtained from macro expansion.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220407 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: Omit scopes in -gmlt to reduce metadata size (on disk and in memory)

I haven't done any actual impact analysis of this change as it's a
strict improvement, but I'd be curious to know how much it helps.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220408 91177308-0d34-0410-b5e6-96231b3b80d8
Correct importing of the type of a TemplateArgument

It's not clear how this would be tested - I imagine we should have an
ASTImporter test that RAVs the new AST and checks that all the elements
in it are from this ASTContext and not the foreign one... but I know
little about the ASTImporter and how/where that testing might be done.

(post-commit review feedback from Richard Smith on r219900)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220411 91177308-0d34-0410-b5e6-96231b3b80d8
Remove unused DiagnosticsEngine::NumErrorsSuppressed member.

Patch by Brad King!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220413 91177308-0d34-0410-b5e6-96231b3b80d8
Add documentation for calling convention attributes

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220415 91177308-0d34-0410-b5e6-96231b3b80d8
Try to fix link errors in mingw cmake -DBUILD_SHARED_LIBS=ON

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220417 91177308-0d34-0410-b5e6-96231b3b80d8
Add support for profiling the matchers used.

Summary:
Add support for profiling the matchers used.
This will be connected with clang-tidy to generate a report to determine
and debug slow checks.

Reviewers: alexfh

Subscribers: klimek, cfe-commits

Differential Revision: http://reviews.llvm.org/D5911

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220418 91177308-0d34-0410-b5e6-96231b3b80d8
Create a documentation category for the new calling convention documentation. Drive-by fixing of duplicate target names from a previous commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220419 91177308-0d34-0410-b5e6-96231b3b80d8
Resubmit "Improve Windows toolchain support for non-standard environments."

This resubmits change r220226.  That change broke the chromium
build bots because chromium it ships an hermetic MSVC toolchain
that it expects clang to fallback to by finding it on the path.

This patch fixes the issue by bumping up the prioritization of PATH
when looking for MSVC binaries.

Reviewed by: Hans Wennborg, Reid Kleckner
Differential Revision: http://reviews.llvm.org/D5892

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220424 91177308-0d34-0410-b5e6-96231b3b80d8
Make a good guess about where MSVC and Windows SDK libraries are for linking.

When a user has not configured a standard Visual Studio environment
by running vcvarsall, clang tries its best to find Visual Studio
include files and executables anyway.  This patch makes clang also
try to find system and Windows SDK libraries for linking against,
as well.

Reviewed by: Hans Wennborg
Differential Revision: http://reviews.llvm.org/D5873

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220425 91177308-0d34-0410-b5e6-96231b3b80d8
Fix up attribute documentation links to MSDN in a nicer way

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220426 91177308-0d34-0410-b5e6-96231b3b80d8
Removing the setLBracLoc and setRBracLoc functions from CompoundStmt -- their only use was with the AST reader, and friendship can be used to handle that. Drive-by rename of "Brac" to "Brace" for the private data members. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220428 91177308-0d34-0410-b5e6-96231b3b80d8
Parse: Ignore "long" and "short" in #pragma section

This fixes PR21337.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220429 91177308-0d34-0410-b5e6-96231b3b80d8
Fix C++ compliance issue.  string literals must be const char *

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220434 91177308-0d34-0410-b5e6-96231b3b80d8
Basic: Add ext_delete_void_ptr_operand to -Wdelete-incomplete

This fixes PR21340.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220442 91177308-0d34-0410-b5e6-96231b3b80d8
[modules] Add support for 'textual header' directives.

This allows a module to specify that it logically contains a file, but that
said file is non-modular and intended for textual inclusion. This allows
layering checks to work properly in the presence of such files.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220448 91177308-0d34-0410-b5e6-96231b3b80d8
Test files I forgot to svn add in r220448.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220449 91177308-0d34-0410-b5e6-96231b3b80d8
Update the documentation for API change to CreateASTConsumer the rest of the way.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220450 91177308-0d34-0410-b5e6-96231b3b80d8
Revert r218541 - Don't link in sanitizer runtimes if -nostdlib/-nodefaultlibs is provided.

This is a sad thing to do, but all the alternatives look ugly.

Looks like there are legitimate cases when users may want to link
with sanitizer runtimes *and* -nodefaultlibs (and ensure they provide
replacements for system libraries). For example, this happens in libc++
test suite.

"-nodefaultlibs" is told to link only the libraries explicitly provided
by the user, and providing "-fsanitize=address" is a clear indication of
intention to link with ASan runtime.
We can't easily introduce analogue of "-print-libgcc-name": linking with
sanitizers runtimes is not trivial: some runtimes are split into several
archive libraries, which are required to be wrapped in
-whole-archive/-no-whole-archive.

If "-fsanitize=whatever" and "-nodefaultlibs" are provided, system library
dependencies of sanitizer runtimes (-lc/-ldl/-lpthread/-lrt) will *not* be
linked, and user would have to link them in manually. Note that this can
cause problems, as failing to provide "-lrt" might lead to crashes in runtime
during ASan initialization. But looks like we should bite this bullet.

See r218541 review thread for the discussion.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220455 91177308-0d34-0410-b5e6-96231b3b80d8