Enable -gcolumn-info by default.

This patch flips the default value for -gcolumn-info to be on by
default. I discussed the rationale and provided compile/size data
in:

http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-June/074290.html

This also updates the documentation and some tests that relied on
the lack of column information. Some tests had column information
in the expected output, but it was wrong (the tsan tests). Others
were using the driver to execute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212781 91177308-0d34-0410-b5e6-96231b3b80d8
MSVC compat: Allow lookup of friend types in enclosing namespaces

The relevant portion of C++ standard says [namespace.memdef]p3:

  If the name in a friend declaration is neither qualified nor a
  template-id and the declaration is a function or an
  elaborated-type-specifier, the lookup to determine whether the entity
  has been previously declared shall not consider any scopes outside the
  innermost enclosing namespace.

MSVC does not implement that rule for types.  If there is a type in an
enclosing namespace, they consider an unqualified tag declaration with
the same name to be a redeclaration of the type from another namespace.

Implementing compatibility is a simple matter of disabling our
implementation of this rule for types, which was added in r177473.

Reviewers: rsmith

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212784 91177308-0d34-0410-b5e6-96231b3b80d8
Return a FixItHint instead of taking a diagnostic builder

Addressing review comments from r212784.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212786 91177308-0d34-0410-b5e6-96231b3b80d8
clang/test/CodeGenCXX/PR20038.cpp: Appease targeting msvc due to incompatibility of dw.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212787 91177308-0d34-0410-b5e6-96231b3b80d8
[modules] Don't try to merge template specializations by performing name lookup
into their container; we won't find them there. These things are already being
merged when they're added to their primary template's folding set, so this
merging is redundant (and causes us to reject-valid because we think we've
found an odr violation).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212788 91177308-0d34-0410-b5e6-96231b3b80d8
TestAfterDivZeroChecker.cpp: Avoid member initializer. It is unsupported in msc17.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212789 91177308-0d34-0410-b5e6-96231b3b80d8
Don't assume StringRef.data() is null-terminated

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212790 91177308-0d34-0410-b5e6-96231b3b80d8
[OPENMP] Parsing and sema analysis for 'omp task' directive.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212804 91177308-0d34-0410-b5e6-96231b3b80d8
GCC compatibility: Create a Group to ignore unsupported optimization.

Returns a warning when using an unknown optimization flag.
This patch includes -finline-limit as one of those ignored flags.
More options will be moved in this group

Patch by Arthur Marble <arthur@info9.net> in the context of
Debian Google Summer of code 2014.

Reviewers: rnk, Sylvestre



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212805 91177308-0d34-0410-b5e6-96231b3b80d8
Tiny improvement in a test (missing quote)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212806 91177308-0d34-0410-b5e6-96231b3b80d8
[PATCH] [x32] Introduce -mx32 flag enforcing x32 mode for other triplets. By Pavel Chupin (@pavel.v.chupin).

-mx32 flag setup target environment to GNUX32 and can be used for 
other 32/64-bit triplets (i386-unknown-linux, x86_64-unknown-linux) to
turn on x32 mode. Compatible with GCC -mx32 flag.

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



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212817 91177308-0d34-0410-b5e6-96231b3b80d8
Instantiate llvm::Registry<clang::PluginASTAction> in FrontendAction.cpp.

  - Plugins don't need to export _ZN4llvm8Registry*.
  - Win32.DLL cannot merge common symbols among DLLs. Static members in llvm::Registry should be instantiated in a parent.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212821 91177308-0d34-0410-b5e6-96231b3b80d8
The returns_nonnull attribute does not require a function prototype because it affects only the return value, not any arguments. In turn, asking for a function or method result type should not require a function prototype either, so getFunctionOrMethodResultType has been relaxed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212827 91177308-0d34-0410-b5e6-96231b3b80d8
Test for warning being silenced

Summary:
Added some tests to see if the new warning would be silenced with a flag.

Patch by Arthur Marble <arthur@info9.net> in the context of Debian Google Summer of code 2014.


Reviewers: sylvestre.ledru

Reviewed By: sylvestre.ledru

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212833 91177308-0d34-0410-b5e6-96231b3b80d8
Add nonnull in CodeGen for __attribute__((nonnull))

We now have an LLVM-level nonnull attribute that can be applied to function
parameters, and we emit it for reference types (as of r209723), but did not
emit it when an __attribute__((nonnull)) was provided. Now we will.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212835 91177308-0d34-0410-b5e6-96231b3b80d8
[modules] When merging a class template, also merge the definition of its pattern.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212836 91177308-0d34-0410-b5e6-96231b3b80d8
Handle SPARC float command line parameters for SPARCv9.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212838 91177308-0d34-0410-b5e6-96231b3b80d8
MS extension: Make __noop be the integer zero, not void

We still don't accept '__noop;', and we don't consider __noop to be the
integer literal zero.  More work is needed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212839 91177308-0d34-0410-b5e6-96231b3b80d8
oops. correct the prefix.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212840 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: Don't emit a thread-wrapper if we can't touch the backing variable

OS X TLS has all accesses going through the thread-wrapper function and
gives the backing thread-local variable internal linkage.  This means
that thread-wrappers must have WeakAnyLinkage so that references to the
internal thread-local variables do not get propagated to other code.

It also means that translation units which do not provide a definition
for the thread-local variable cannot attempt to emit a thread-wrapper
because the thread wrapper will attempt to reference the backing
variable.

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

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