Add support for sanitizers arguments on FreeBSD

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204129 91177308-0d34-0410-b5e6-96231b3b80d8
[OPENMP] Simplified data-sharing attributes analysis.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204135 91177308-0d34-0410-b5e6-96231b3b80d8
clang/test/Driver/sanitizer-ld.c: Tweak to accept dos path.

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

Due to not resetting the fake rparen data on the token when iterating
over annotated lines, we would pop the last element of the paren stack.

This patch fixes the underlying root cause, and makes the code more
robust against similar problems in the future:
- reset the first token when iterating on the same annotated lines due
  to preprocessor branches
- never pop the last element from the paren stack, so we do not crash,
  but rather incorrectly format
- add assert()s so we can figure out if our assumptions are violated

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204140 91177308-0d34-0410-b5e6-96231b3b80d8
[OPENMP] DSA fix


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204143 91177308-0d34-0410-b5e6-96231b3b80d8
modify declare-use.S to work when full toolchain not present

Test doesn't actually require production of an object file and for
some targets (e.g. hexagon) an assembler is not always available when
lit tests are run.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204144 91177308-0d34-0410-b5e6-96231b3b80d8
Added a __has_feature() for 'is_constructible'

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204153 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Detect function-like macros only when upper case is used.

Reviewers: djasper

Reviewed By: djasper

CC: cfe-commits, klimek

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204156 91177308-0d34-0410-b5e6-96231b3b80d8
Objective-C. Better fix for my previous patch 
"No need to issue deprecated warning if deprecated method 
in class extension is being implemented in primary class implementation
(no overriding is involved).
// rdar://16249335". No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204159 91177308-0d34-0410-b5e6-96231b3b80d8
Creating a printing policy for "half":
Since "half" is an OpenCL keyword and clang accepts __fp16 as an extension for
other languages, error messages and metadata (and hence debug info) should refer
to the half-precision floating point as "__fp16" instead of "half" when
compiling for non-OpenCL languages. This patch creates a new printing policy for
half in a similar manner to what is done for bool and wchar_t.

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



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204164 91177308-0d34-0410-b5e6-96231b3b80d8
In the presence of modules, we can have multiple implicit instantiations of the same template. Teach RecursiveASTVisitor to visit all of those, not just one of them. This is difficult to test by itself, but will be covered by an upcoming change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204175 91177308-0d34-0410-b5e6-96231b3b80d8
Simplify and add FIXME. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204181 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: Include a function hash in instrumentation based profiling

The hash itself is still the number of counters, which isn't all that
useful, but this separates the API changes from the actual
implementation of the hash and will make it easier to transition to
the ProfileData library once it's implemented.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204186 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a typo in r204164 that made *all* keywords available in OpenCL mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204196 91177308-0d34-0410-b5e6-96231b3b80d8
Tests for DR450-475.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204217 91177308-0d34-0410-b5e6-96231b3b80d8
Use the expansion location of the file name when finding the module.

The spelling location of stringified strings is not a file location.
Optimally, we'll want to solve the problem (as the FIXME states) by
handing in the right FileEntry of the #include location.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204220 91177308-0d34-0410-b5e6-96231b3b80d8
Comment parsing: recognize \param ... on function templates with variadic
parameters

Patch by Joe Ranieri.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204235 91177308-0d34-0410-b5e6-96231b3b80d8
Comment parsing: fix a crash when dumping comment ast for a function template
with variadic parameters

Patch by Joe Ranieri.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204236 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] scan-build: when matching flags, make sure the - is the first letter.

PR19191

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204253 91177308-0d34-0410-b5e6-96231b3b80d8
Add a new spelling for module map files 'module.modulemap'

This name, while more verbose, plays more nicely with tools that use
file extensions to determine file types. The existing spelling
'module.map' will continue to work, but the new spelling will take
precedence.

In frameworks, this new filename will only go in a new 'Modules'
sub-directory.

Similarly, add a module.private.modulemap corresponding to
module_private.map.

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