Don't dllimport inline functions when targeting MinGW (PR21366)

It turns out that MinGW never dllimports of exports inline functions.
This means that code compiled with Clang would fail to link with
MinGW-compiled libraries since we might try to import functions that
are not imported.

To fix this, make Clang never dllimport inline functions when targeting
MinGW.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221154 91177308-0d34-0410-b5e6-96231b3b80d8
Revert "clang-format: [Java] Allow trailing semicolons after enums."

This reverts commit b5bdb2ef59ab922bcb4d6e843fffaee1f7f68a8c.

This doesn't really seem necessary on second though and causes problems
with C++ enum formatting.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221158 91177308-0d34-0410-b5e6-96231b3b80d8
Don't allow dllimport/export on classes with internal linkage (PR21399)

Trying to import or export such classes doesn't make sense, and Clang
would assert trying to export vtables for them.

This is consistent with how we treat functions with internal linkage,
but it is stricter than MSVC so we may have to back down if it breaks
real code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221160 91177308-0d34-0410-b5e6-96231b3b80d8
Emit OpenCL local global variables without zeorinitializer

Local variables are not initialized, and every target has
been (incorrectly) ignoring the unnecessary request for
zero initialization.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221162 91177308-0d34-0410-b5e6-96231b3b80d8
This patch reverts r220496 which issues warning on comparing 
parameters with nonnull attribute when comparison is always
true/false. Patch causes false positive when parameter is
modified in the function.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221163 91177308-0d34-0410-b5e6-96231b3b80d8
Implement vaarg lowering for ppc32. Lowering of scalars and aggregates
is supported. Complex numbers are not.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221170 91177308-0d34-0410-b5e6-96231b3b80d8
Further restrict issuance of 'override' warning if method
is argument to a macro which is defined in system header.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221172 91177308-0d34-0410-b5e6-96231b3b80d8
Require asserts to unbreak the buildbots.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221174 91177308-0d34-0410-b5e6-96231b3b80d8
Don't diagnose no-prototype callee-cleanup function definitions

We already have a warning on the call sites of code like this:
  void f() { }
  void g() { f(1, 2, 3); }
t.c:2:21: warning: too many arguments in call to 'f'

We can limit ourselves to diagnosing unprototyped forward declarations
of f to cut down on noise.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221184 91177308-0d34-0410-b5e6-96231b3b80d8
Move the no-prototype calling conv check after decl merging

Now we don't warn on this code:
  void __stdcall f(void);
  void __stdcall f();

My previous commit regressed this functionality because I didn't update
the relevant test case which used a definition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221188 91177308-0d34-0410-b5e6-96231b3b80d8
Remove local handling of ASAN_OPTIONS and UBSAN_OPTIONS.

They are now forwarded by TestingConfig.py.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221200 91177308-0d34-0410-b5e6-96231b3b80d8
Remove dead AST type argument to EmitFAbs

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221205 91177308-0d34-0410-b5e6-96231b3b80d8
Lower __builtin_fabs* to @llvm.fabs.*

mingw64's headers implement fabs by calling __builtin_fabs, so using the
library call results in an infinite loop. If the backend legalizes
@llvm.fabs as a call to fabs later, things should work out, as the crt
provides a definition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221206 91177308-0d34-0410-b5e6-96231b3b80d8
Use the new LLVM_END_WITH_NULL name

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221217 91177308-0d34-0410-b5e6-96231b3b80d8
[llvm-api-change] Use findProgramByName.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221222 91177308-0d34-0410-b5e6-96231b3b80d8
[clang-tidy] Move -extra-arg handling to CommonOptionsProvider

Summary:
Handle -extra-arg and -extra-arg-before options in the
CommonOptionsProvider so they can be used in all clang tools. Adjust arguments
in a CompilationDatabase wrapper instead of adding ArgumentsAdjuster to the
tool.

Reviewers: djasper, klimek

Reviewed By: klimek

Subscribers: klimek, cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221248 91177308-0d34-0410-b5e6-96231b3b80d8
Driver: Pass some std::strings by reference instead of value

No functional change intended. This fixes PR21463.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221249 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Fix vim integration if g:clang_format_binary doesn't exist

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221254 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: [Java] Fix class declaration line breaks.

Before:
  @SomeAnnotation()
  abstract
      class aaaaaaaaa<a> extends bbbbbbbbbbbb<b> implements cccccccccccc {
  }

After:
  @SomeAnnotation()
  abstract class aaaaaaaaa<a> extends bbbbbbbbbbbb<b>
      implements cccccccccccc {
  }

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221256 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Use identifier table for keywords in other languages.

Slightly easier to write, more efficient and prevents bugs by
misspelling them.

No functional changes intended.

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