]> granicus.if.org Git - clang/log
clang
10 years agoRemove useless XPASS
Nico Rieck [Sun, 16 Feb 2014 07:29:55 +0000 (07:29 +0000)]
Remove useless XPASS

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

10 years agoFix broken CHECK lines
Nico Rieck [Sun, 16 Feb 2014 07:29:41 +0000 (07:29 +0000)]
Fix broken CHECK lines

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

10 years agoFileCheck's -LABEL cannot be combined with -NOT or -DAG
Nico Rieck [Sun, 16 Feb 2014 07:28:50 +0000 (07:28 +0000)]
FileCheck's -LABEL cannot be combined with -NOT or -DAG

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

10 years agoFix broken RUN lines
Nico Rieck [Sun, 16 Feb 2014 07:28:32 +0000 (07:28 +0000)]
Fix broken RUN lines

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

10 years agoDebugInfo: imported_decl/using declarations at namespace scope
David Blaikie [Sat, 15 Feb 2014 21:03:07 +0000 (21:03 +0000)]
DebugInfo: imported_decl/using declarations at namespace scope

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

10 years ago[Sema] Fix assertion hit while trying to do constant evaluation for a dependent expre...
Argyrios Kyrtzidis [Sat, 15 Feb 2014 18:53:57 +0000 (18:53 +0000)]
[Sema] Fix assertion hit while trying to do constant evaluation for a dependent expression
inside a GNU statement expression.

rdar://16064952

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

10 years agoMS ABI: Remove a useless FileCheck line
David Majnemer [Sat, 15 Feb 2014 07:02:11 +0000 (07:02 +0000)]
MS ABI: Remove a useless FileCheck line

1. CHECK-NOT-LABEL is not valid FileCheck.
2. This test would not trigger the CHECK-NOT-LABEL even if 'interface' is
   replaced with 'struct'.

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

10 years agoMove test inputs into the Inputs directory (improvement/fix to r201419)
David Blaikie [Sat, 15 Feb 2014 05:09:38 +0000 (05:09 +0000)]
Move test inputs into the Inputs directory (improvement/fix to r201419)

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

10 years agoPGO: fix a bug in parsing pgo data.
Manman Ren [Sat, 15 Feb 2014 01:29:02 +0000 (01:29 +0000)]
PGO: fix a bug in parsing pgo data.

When a function has a single counter, we will offset the pointer by 1 when
parsing the next function. If a function has multiple counters, we are
okay after skipping rest of the counters.

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

10 years agoMS ABI: Fix some layout tests
David Majnemer [Sat, 15 Feb 2014 01:21:20 +0000 (01:21 +0000)]
MS ABI: Fix some layout tests

Some lines intended to be used for testing x86_64 ABI compatibility were
not firing because lines were annotated with the wrong FileCheck prefix:
X64 vs 64

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

10 years agoMS ABI: Fix some layout tests
David Majnemer [Sat, 15 Feb 2014 01:09:56 +0000 (01:09 +0000)]
MS ABI: Fix some layout tests

Some lines intended to be used for testing x86_64 ABI compatibility were
not firing because lines were annotated with the wrong FileCheck prefix:
X64 vs C64

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

10 years agoRemove transactional memory from c++ status page; there's no working paper for it...
Richard Smith [Sat, 15 Feb 2014 00:48:38 +0000 (00:48 +0000)]
Remove transactional memory from c++ status page; there's no working paper for it yet.

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

10 years agoAdd some missing threes.
Richard Smith [Sat, 15 Feb 2014 00:29:44 +0000 (00:29 +0000)]
Add some missing threes.

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

10 years agoAdd entries to C++ status page for Technical Specification Working Papers that
Richard Smith [Sat, 15 Feb 2014 00:29:00 +0000 (00:29 +0000)]
Add entries to C++ status page for Technical Specification Working Papers that
WG21 is about to vote on.

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

10 years ago[Objective-C Sema]. Warn when an indirectly overridden property
Fariborz Jahanian [Sat, 15 Feb 2014 00:04:36 +0000 (00:04 +0000)]
[Objective-C Sema]. Warn when an indirectly overridden property
mismatches the one declared in current class; in addition to
those that are directly overridden.
// rdar://15967517

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

10 years agoFix crash-on-invalid if decltype(auto) is used as a deduced return type in
Richard Smith [Fri, 14 Feb 2014 22:17:32 +0000 (22:17 +0000)]
Fix crash-on-invalid if decltype(auto) is used as a deduced return type in
C++11 mode. Continue to disallow return type deduction in C++11 for now.

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

10 years agoConsistently print anonymous namespace names as "<anonymous namespace>"
David Blaikie [Fri, 14 Feb 2014 22:12:54 +0000 (22:12 +0000)]
Consistently print anonymous namespace names as "<anonymous namespace>"

For some reason we have two bits of code handling this printing:

lib/AST/Decl.cpp:        OS << "<anonymous namespace>";
lib/AST/TypePrinter.cpp:      OS << "<anonymous namespace>::";

it would be nice if we only had one...

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

10 years agoPrint anonymous namespaces as <anonymous namespace> instead of <anonymous>
David Blaikie [Fri, 14 Feb 2014 22:12:51 +0000 (22:12 +0000)]
Print anonymous namespaces as <anonymous namespace> instead of <anonymous>

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

10 years ago[IRGen]. Fixes a crash in using Objective-C array
Fariborz Jahanian [Fri, 14 Feb 2014 19:37:25 +0000 (19:37 +0000)]
[IRGen]. Fixes a crash in using Objective-C array
properties by fixing shouldBindAsLValue to accept arrays
(like record types) because we always manipulate
them in memory. Patch suggested by John MaCall.
// rdar://15610943

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

10 years agoclang-format: Fix formatting of class template declaration.
Daniel Jasper [Fri, 14 Feb 2014 18:22:40 +0000 (18:22 +0000)]
clang-format: Fix formatting of class template declaration.

Before:
  template <class R, class C>
  struct Aaaaaaaaaaaaaaaaa<R (C::*)(int)
                           const> : Aaaaaaaaaaaaaaaaa<R (C::*)(int)> {};

After:
  template <class R, class C>
  struct Aaaaaaaaaaaaaaaaa<R (C::*)(int) const>
      : Aaaaaaaaaaaaaaaaa<R (C::*)(int)> {};

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

10 years agoIf the headermap maps the filename to a framework include ("Foo.h" -> "Foo/Foo.h"),
Argyrios Kyrtzidis [Fri, 14 Feb 2014 14:58:28 +0000 (14:58 +0000)]
If the headermap maps the filename to a framework include ("Foo.h" -> "Foo/Foo.h"),
continue header lookup using the framework include as filename.

This allows us to conveniently treat
  #import "Foo.h"
as an implicit module import if we can resolve "Foo/Foo.h" as such.

rdar://16042979

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

10 years agoEnable generation of unwind tables when building with sanitizers.
Evgeniy Stepanov [Fri, 14 Feb 2014 08:56:25 +0000 (08:56 +0000)]
Enable generation of unwind tables when building with sanitizers.

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

10 years agoEnable AArch64 NEON by default.
Jiangning Liu [Fri, 14 Feb 2014 04:37:46 +0000 (04:37 +0000)]
Enable AArch64 NEON by default.

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

10 years agoAdd a command line option -gdwarf-aranges that will turn on emitting
Eric Christopher [Fri, 14 Feb 2014 01:27:03 +0000 (01:27 +0000)]
Add a command line option -gdwarf-aranges that will turn on emitting
the dwarf .debug_aranges section.

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

10 years agoDebug info: Make DWARF4 the default for Darwin, too.
Adrian Prantl [Fri, 14 Feb 2014 00:29:33 +0000 (00:29 +0000)]
Debug info: Make DWARF4 the default for Darwin, too.

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

10 years agoRevert "[CMake] Disable libclangTests.exe on win32 for now."
Juergen Ributzka [Thu, 13 Feb 2014 23:51:55 +0000 (23:51 +0000)]
Revert "[CMake] Disable libclangTests.exe on win32 for now."

Because I also reverted the original commit that required this change.

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

10 years agoRevert "libclang: fix a bug in processing invalid arguments, introduced in r201249,"
Juergen Ributzka [Thu, 13 Feb 2014 23:34:54 +0000 (23:34 +0000)]
Revert "libclang: fix a bug in processing invalid arguments, introduced in r201249,"

Reverting commit (201346) for now, because it is breaking our internal builds.

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

10 years agoEnable correcting a member declaration where the type is class template,
Kaelyn Uhrain [Thu, 13 Feb 2014 20:14:07 +0000 (20:14 +0000)]
Enable correcting a member declaration where the type is class template,
and the class name is shadowed by another member. Recovery still needs
to be figured out, which is non-trivial since the parser has already gone
down a much different path than if it had recognized the class template
as type instead of seeing the member that shadowed the class template.

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

10 years ago[examples] Add tablegen'd ClangCommentCommandList as a dependency for plugins.
Jordan Rose [Thu, 13 Feb 2014 18:12:30 +0000 (18:12 +0000)]
[examples] Add tablegen'd ClangCommentCommandList as a dependency for plugins.

Also, remove library dependencies for the sample analyzer-plugin. The only
library changes that would require a rebuild should be in headers, which
should already implicitly be marked as dependencies.

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

10 years ago[CMake] Disable libclangTests.exe on win32 for now.
NAKAMURA Takumi [Thu, 13 Feb 2014 17:51:35 +0000 (17:51 +0000)]
[CMake] Disable libclangTests.exe on win32 for now.

libclangTests.exe cannot find libclang.dll since it is not on $PATH.

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

10 years agolibclang: fix a bug in processing invalid arguments, introduced in r201249,
Dmitri Gribenko [Thu, 13 Feb 2014 16:51:38 +0000 (16:51 +0000)]
libclang: fix a bug in processing invalid arguments, introduced in r201249,
pointed out by Daniel Jasper in r201329

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

10 years agoRe-commit: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTe...
Daniel Sanders [Thu, 13 Feb 2014 14:44:26 +0000 (14:44 +0000)]
Re-commit: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call

Summary:
AsmPrinter::EmitInlineAsm() will no longer use the EmitRawText() call for
targets with mature MC support. Such targets will always parse the inline
assembly (even when emitting assembly). Targets without mature MC support
continue to use EmitRawText() for assembly output.

The hasRawTextSupport() check in AsmPrinter::EmitInlineAsm() has been replaced
with MCAsmInfo::UseIntegratedAs which when true, causes the integrated assembler
to parse inline assembly (even when emitting assembly output). UseIntegratedAs
is set to true for targets that consider any failure to parse valid assembly
to be a bug. Target specific subclasses generally enable the integrated
assembler in their constructor. The default value can be overridden with
-no-integrated-as.

All tests that rely on inline assembly supporting invalid assembly (for example,
those that use mnemonics such as 'foo' or 'hello world') have been updated to
disable the integrated assembler.

Changes since review (and last commit attempt):
- Fixed test failures that were missed due to configuration of local build.
  (fixes crash.ll and a couple others).
- Fixed tests that happened to pass because the local build was on X86
  (should fix 2007-12-17-InvokeAsm.ll)
- mature-mc-support.ll's should no longer require all targets to be compiled.
  (should fix ARM and PPC buildbots)
- Object output (-filetype=obj and similar) now forces the integrated assembler
  to be enabled regardless of default setting or -no-integrated-as.
  (should fix SystemZ buildbots)

Reviewers: rafael

Reviewed By: rafael

CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2686

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

10 years agoRemove assert added in r201249.
Daniel Jasper [Thu, 13 Feb 2014 14:24:14 +0000 (14:24 +0000)]
Remove assert added in r201249.

This triggers on one of our internal tests.

Dmitri:
I do not understand this part of the codebase well enough to locate the
underlying cause easily. If the correct fix is not obvious, I can try to
debug the problem further or try to come up with reduced test case.

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

10 years agoclang-format: Improve documentation of DerivePointerBinding.
Daniel Jasper [Thu, 13 Feb 2014 12:51:50 +0000 (12:51 +0000)]
clang-format: Improve documentation of DerivePointerBinding.

For reference: llvm.org/PR18690.

Also updated generated help page and page creation script.

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

10 years ago[CMake] add_clang_library(MODULE): Create a phony target when llvm_add_library(MODULE...
NAKAMURA Takumi [Thu, 13 Feb 2014 11:24:45 +0000 (11:24 +0000)]
[CMake] add_clang_library(MODULE): Create a phony target when llvm_add_library(MODULE) gave up.

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

10 years agoARM & AArch64 NEON: share the vabs implementation.
Tim Northover [Thu, 13 Feb 2014 10:44:17 +0000 (10:44 +0000)]
ARM & AArch64 NEON: share the vabs implementation.

This changes ARM to use @llvm.fabs for floating-point vabs. Patterns
already existed in the backend, and it might help mid-end phases since
it's more likely to be understood than @llvm.arm.neon.vabs.

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

10 years agoXCore target pass -v flag to assembler & linker
Robert Lytton [Thu, 13 Feb 2014 10:40:12 +0000 (10:40 +0000)]
XCore target pass -v flag to assembler & linker

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

10 years agoadd comment explaining previous commit
Robert Lytton [Thu, 13 Feb 2014 10:38:56 +0000 (10:38 +0000)]
add comment explaining previous commit

 see 'XCore target -fexceptions flag handling'

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

10 years agoXCore target -fexceptions flag handling
Robert Lytton [Thu, 13 Feb 2014 10:34:44 +0000 (10:34 +0000)]
XCore target -fexceptions flag handling

XCore target has -fno-exception as the default option
Pass on "-fexceptions" flag to xcc (linker)

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

10 years agoRemove spurious default case to silent sanitizer
Renato Golin [Thu, 13 Feb 2014 10:26:33 +0000 (10:26 +0000)]
Remove spurious default case to silent sanitizer

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

10 years agoAdd EXPERIMENTAL --rtlib=compiler-rt to GNU Clang
Renato Golin [Thu, 13 Feb 2014 10:01:16 +0000 (10:01 +0000)]
Add EXPERIMENTAL --rtlib=compiler-rt to GNU Clang

This commit is not strictly correct nor accounts for all uses (shared
objects, for example), but it allows one to test the compiler-rt library
on GNU targets.

Using this patch to run the test-suite has already shown me problems
on ARM. Since this is a Darwin-only flag, nobody is using it, so it
shouldn't be a problem.

I will need extension to deal with the shared cases, but since we're
not compiling libclang_rt.so, that's not yet applicable. Many other
problems will have to be fixed first in compiler-rt (such as removing
the 'arch' name from it and making it trully multi-arch, moving it to
the default lib directory, make both .a and .so variants, etc).

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

10 years ago[OPENMP] 'if' clause support (no CodeGen support)
Alexey Bataev [Thu, 13 Feb 2014 05:29:23 +0000 (05:29 +0000)]
[OPENMP] 'if' clause support (no CodeGen support)

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

10 years agoThere is no std namespace for standards-based attributes. Removing the scope qualifie...
Aaron Ballman [Thu, 13 Feb 2014 04:31:04 +0000 (04:31 +0000)]
There is no std namespace for standards-based attributes. Removing the scope qualifier and updating the only affected test case.

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

10 years agoUse simpler version of fs::create_directory.
Rafael Espindola [Thu, 13 Feb 2014 04:22:54 +0000 (04:22 +0000)]
Use simpler version of fs::create_directory.

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

10 years agoUse simpler version of llvm::sys::fs::create_directories.
Rafael Espindola [Thu, 13 Feb 2014 04:08:44 +0000 (04:08 +0000)]
Use simpler version of llvm::sys::fs::create_directories.

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

10 years agoFixing a compiler assertion with zero-width bit-fields in packed structs.
Yunzhong Gao [Thu, 13 Feb 2014 02:45:10 +0000 (02:45 +0000)]
Fixing a compiler assertion with zero-width bit-fields in packed structs.
According to the GNU docs, zero-sized bitfields should not be affected by the
packed attribute.

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

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

10 years agoReally fix unused variable warnings in CIndex.
Reid Kleckner [Thu, 13 Feb 2014 01:19:59 +0000 (01:19 +0000)]
Really fix unused variable warnings in CIndex.

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

10 years agoms_struct layout replaces platform-specific behavior like
John McCall [Thu, 13 Feb 2014 00:50:08 +0000 (00:50 +0000)]
ms_struct layout replaces platform-specific behavior like
useBitFieldTypeAlignment() and appears to ignore the special
bit-packing semantics of __attribute__((packed)).

Further flesh out an already-extensive comment.

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

10 years agoChange testcase to use FileCheck.
John McCall [Thu, 13 Feb 2014 00:50:02 +0000 (00:50 +0000)]
Change testcase to use FileCheck.

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

10 years agoFix uninitialized read in vtordisp pragma code.
Reid Kleckner [Thu, 13 Feb 2014 00:44:34 +0000 (00:44 +0000)]
Fix uninitialized read in vtordisp pragma code.

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

10 years agoFix some -Wdocumentation warnings in Sema.h and try to fix test for win64
Reid Kleckner [Thu, 13 Feb 2014 00:22:04 +0000 (00:22 +0000)]
Fix some -Wdocumentation warnings in Sema.h and try to fix test for win64

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

10 years agoSilence unused variable warning in CIndex.cpp with NDEBUG
Reid Kleckner [Wed, 12 Feb 2014 23:56:20 +0000 (23:56 +0000)]
Silence unused variable warning in CIndex.cpp with NDEBUG

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

10 years agoMS ABI: Implement #pragma vtordisp() and clang-cl /vdN
Reid Kleckner [Wed, 12 Feb 2014 23:50:26 +0000 (23:50 +0000)]
MS ABI: Implement #pragma vtordisp() and clang-cl /vdN

These features are new in VS 2013 and are necessary in order to layout
std::ostream correctly.  Currently we have an ABI incompatibility when
self-hosting with the 2013 stdlib in our convertible_fwd_ostream wrapper
in gtest.

This change adds another implicit attribute, MSVtorDispAttr, because
implicit attributes are currently the best way to make sure the
information stays on class templates through instantiation.

Reviewers: majnemer

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

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

10 years agoRemove FIXME and hardcoded triple from this test (PR18251)
Hans Wennborg [Wed, 12 Feb 2014 21:40:46 +0000 (21:40 +0000)]
Remove FIXME and hardcoded triple from this test (PR18251)

We don't support using the MS ABI with non-x86/x86_64 targets anyway.

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

10 years agoRemove unused diagnostic.
Benjamin Kramer [Wed, 12 Feb 2014 21:25:40 +0000 (21:25 +0000)]
Remove unused diagnostic.

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

10 years ago[examples] Use loadable modules instead of shared libraries for Clang plugins.
Jordan Rose [Wed, 12 Feb 2014 21:04:23 +0000 (21:04 +0000)]
[examples] Use loadable modules instead of shared libraries for Clang plugins.

This avoids linking in extra copies of, say, LLVMSupport.

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

10 years agoSema: Restrict alignment to 2**28.
David Majnemer [Wed, 12 Feb 2014 20:36:10 +0000 (20:36 +0000)]
Sema: Restrict alignment to 2**28.

Allowing alignment past this point causes wrap around within clang.

N.B.  GCC has the same restriction.

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

10 years agoAttributes: Avoid a big useless copy in the emitter
Reid Kleckner [Wed, 12 Feb 2014 19:26:24 +0000 (19:26 +0000)]
Attributes: Avoid a big useless copy in the emitter

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

10 years agorelax testcase and make ppc64 buildbots happy.
Adrian Prantl [Wed, 12 Feb 2014 19:26:19 +0000 (19:26 +0000)]
relax testcase and make ppc64 buildbots happy.

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

10 years agolibclang: report error code for bad PCH files
Dmitri Gribenko [Wed, 12 Feb 2014 19:12:37 +0000 (19:12 +0000)]
libclang: report error code for bad PCH files

This commit improves libclang to report the error condition when
CXTranslationUnit can not be created because of a stale PCH file.  This allows
the caller, for example, to rebuild the PCH file and retry the request.

There two are APIs in libclang that return a CXTranslationUnit and don't
support reporting detailed errors (the only error condition is a NULL result).
For these APIs, a second, superior, version is introduced --
clang_createTranslationUnit2 and clang_parseTranslationUnit2.  These functions
return a CXTranslationUnit indirectly and also return an error code.  Old
functions are still supported and are nothing more than convenience wrappers
that ignore extended error codes.

As a cleanup, this commit also categorizes some libclang errors in the
functions I had to modify anyway.

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

10 years agoDocument and improve the debug-property-synth.m test based on the
Adrian Prantl [Wed, 12 Feb 2014 18:24:07 +0000 (18:24 +0000)]
Document and improve the debug-property-synth.m test based on the
information provided in the referenced radar.

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

10 years agoRevert "Remove bad debug info test."
Adrian Prantl [Wed, 12 Feb 2014 18:24:04 +0000 (18:24 +0000)]
Revert "Remove bad debug info test."

This reverts commit r201183.
The test, albeit undocumented and badly written is still testing something
useful. It will be updated in a subsequent commit.

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

10 years agoAttributes: Emit enumerators in td file declaration order
Reid Kleckner [Wed, 12 Feb 2014 18:22:18 +0000 (18:22 +0000)]
Attributes: Emit enumerators in td file declaration order

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

10 years agoRevert r201237+r201238: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and...
Daniel Sanders [Wed, 12 Feb 2014 15:39:20 +0000 (15:39 +0000)]
Revert r201237+r201238: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call

It introduced multiple test failures in the buildbots.

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

10 years agoArcanist failed to commit the two clang test corrections that should have been in...
Daniel Sanders [Wed, 12 Feb 2014 14:46:15 +0000 (14:46 +0000)]
Arcanist failed to commit the two clang test corrections that should have been in r201237.

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

10 years agolibclang: fix a crash in clang_disposeDiagnosticSet when it is passed a NULL argument
Dmitri Gribenko [Wed, 12 Feb 2014 14:17:58 +0000 (14:17 +0000)]
libclang: fix a crash in clang_disposeDiagnosticSet when it is passed a NULL argument

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

10 years agoWhitespace cleanup (mostly stray tabs, a few not-quite-empty lines).
Tim Northover [Wed, 12 Feb 2014 12:56:48 +0000 (12:56 +0000)]
Whitespace cleanup (mostly stray tabs, a few not-quite-empty lines).

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

10 years agoARM & NEON: add test for r101232
Tim Northover [Wed, 12 Feb 2014 12:08:06 +0000 (12:08 +0000)]
ARM & NEON: add test for r101232

rdar://problem/16035743

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

10 years agoARM NEON: fix range checking on immediates.
Tim Northover [Wed, 12 Feb 2014 12:04:59 +0000 (12:04 +0000)]
ARM NEON: fix range checking on immediates.

Previously, range checking on the __builtin_neon_XYZ_v Clang intrinsics didn't
take account of the type actually passed to the call, which meant a request
like "vext_s16(a, b, 7)" was allowed through (TableGen was conservative and
allowed 0-7 for all types). This caused an assert in the backend because the
lane doesn't make sense.

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

10 years agoDon't use find | xargs in test/Modules/fmodules-validate-once-per-build-session.c
Dmitri Gribenko [Wed, 12 Feb 2014 11:50:37 +0000 (11:50 +0000)]
Don't use find | xargs in test/Modules/fmodules-validate-once-per-build-session.c

With -fdisable-module-hash, we can implement this with a simple 'cp'.

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

10 years agoclang/test/Modules/fmodules-validate-once-per-build-session.c: Tweak for gnuwin32...
NAKAMURA Takumi [Wed, 12 Feb 2014 11:42:12 +0000 (11:42 +0000)]
clang/test/Modules/fmodules-validate-once-per-build-session.c: Tweak for gnuwin32 with %/t (instead of %t).

xargs didn't handle dosish paths, while find foo\bar\ emits dosish paths.

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

10 years agoclang/lib/Driver/Multilib.cpp: Rewrite normalizePathSegment() to be tolerant dosish...
NAKAMURA Takumi [Wed, 12 Feb 2014 11:42:02 +0000 (11:42 +0000)]
clang/lib/Driver/Multilib.cpp: Rewrite normalizePathSegment() to be tolerant dosish pathsep.

FIXME: It could be more simple...

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

10 years ago'svn add' files I forgot for r201224 (Add an option to allow Clang verify
Dmitri Gribenko [Wed, 12 Feb 2014 10:40:07 +0000 (10:40 +0000)]
'svn add' files I forgot for r201224 (Add an option to allow Clang verify
source files for a module only once during)

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

10 years agoAdd an option to allow Clang verify source files for a module only once during
Dmitri Gribenko [Wed, 12 Feb 2014 10:33:14 +0000 (10:33 +0000)]
Add an option to allow Clang verify source files for a module only once during
the build

When Clang loads the module, it verifies the user source files that the module
was built from.  If any file was changed, the module is rebuilt.  There are two
problems with this:
1. correctness: we don't verify system files (there are too many of them, and
   stat'ing all of them would take a lot of time);
2. performance: the same module file is verified again and again during a
   single build.

This change allows the build system to optimize source file verification.  The
idea is based on the fact that while the project is being built, the source
files don't change.  This allows us to verify the module only once during a
single build session.  The build system passes a flag,
-fbuild-session-timestamp=, to inform Clang of the time when the build started.
The build system also requests to enable this feature by passing
-fmodules-validate-once-per-build-session.  If these flags are not passed, the
behavior is not changed.  When Clang verifies the module the first time, it
writes out a timestamp file.  Then, when Clang loads the module the second
time, it finds a timestamp file, so it can compare the verification timestamp
of the module with the time when the build started.  If the verification
timestamp is too old, the module is verified again, and the timestamp file is
updated.

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

10 years ago[ARM] Fix NEON wrongly being enabled with soft-float when targeting armv8/Cortex...
Amara Emerson [Wed, 12 Feb 2014 10:22:35 +0000 (10:22 +0000)]
[ARM] Fix NEON wrongly being enabled with soft-float when targeting armv8/Cortex-A53/A57.

This was caused by r200708 which enabled the crypto feature for these cores.

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

10 years agoFix memory leak introduced by r201010.
Daniel Jasper [Wed, 12 Feb 2014 08:45:05 +0000 (08:45 +0000)]
Fix memory leak introduced by r201010.

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

10 years agoFix r201205's use-after-free bug caught by sanitizer bot
Jonathan Roelofs [Wed, 12 Feb 2014 06:37:27 +0000 (06:37 +0000)]
Fix r201205's use-after-free bug caught by sanitizer bot

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

10 years agoAdd Multilib selection machinery
Jonathan Roelofs [Wed, 12 Feb 2014 03:21:20 +0000 (03:21 +0000)]
Add Multilib selection machinery

This patch improves the support for picking Multilibs from gcc installations.
It also provides a better approximation for the flags '-print-multi-directory'
and '-print-multi-lib'.

This reverts r201203 (i.e. re-applying r201202 with small fixes in
unittests/CMakeLists.txtto make the build bots happy).

review: http://llvm-reviews.chandlerc.com/D2538

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

10 years agoRevert 201202
Jonathan Roelofs [Wed, 12 Feb 2014 01:36:51 +0000 (01:36 +0000)]
Revert 201202

Breaks cmake configure of new unit tests directory

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

10 years agoAdd Multilib selection machinery
Jonathan Roelofs [Wed, 12 Feb 2014 01:29:25 +0000 (01:29 +0000)]
Add Multilib selection machinery

This patch improves the support for picking Multilibs from gcc installations.
It also provides a better approximation for the flags '-print-multi-directory'
and '-print-multi-lib'.

review: http://llvm-reviews.chandlerc.com/D2538

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

10 years agoMS ABI: vptr injection should obey alignment requirements
David Majnemer [Wed, 12 Feb 2014 00:43:02 +0000 (00:43 +0000)]
MS ABI: vptr injection should obey alignment requirements

vptr injection must inject padding equivalent to the alignment of the
most aligned non-virtual subobject, not the alignment of the enclosing
record.

To fascilitate this change, don't let record layout observe the
alignment of the record until we've injected our vptrs. Also, do not
allow the alignment of vbases to affect required alignment until just
before we insert the vtordisp field.

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

10 years agoFix build error caused by r201186 (GCC's "declaration of X changes meaning of Y").
Alexander Kornienko [Tue, 11 Feb 2014 22:14:03 +0000 (22:14 +0000)]
Fix build error caused by r201186 (GCC's "declaration of X changes meaning of Y").

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

10 years agoExpose the name of the checker producing each diagnostic message.
Alexander Kornienko [Tue, 11 Feb 2014 21:49:21 +0000 (21:49 +0000)]
Expose the name of the checker producing each diagnostic message.

Summary:
In clang-tidy we'd like to know the name of the checker producing each
diagnostic message. PathDiagnostic has BugType and Category fields, which are
both arbitrary human-readable strings, but we need to know the exact name of the
checker in the form that can be used in the CheckersControlList option to
enable/disable the specific checker.

This patch adds the CheckName field to the CheckerBase class, and sets it in
the CheckerManager::registerChecker() method, which gets them from the
CheckerRegistry.

Checkers that implement multiple checks have to store the names of each check
in the respective registerXXXChecker method.

Reviewers: jordan_rose, krememek

Reviewed By: jordan_rose

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2557

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

10 years agoRemove bad debug info test.
David Blaikie [Tue, 11 Feb 2014 21:37:47 +0000 (21:37 +0000)]
Remove bad debug info test.

Another test that's testing through assembly from Clang which is
problematic. An attempt to upgrade this to just be an IR-generation test
was unsuccessful (I was unable to get this test to fail) but it looks
like there's other, better, test coverage in this area
(test/CodeGenObjC/debuginfo-properties.m) anyway.

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

10 years agoupdate of the clang version (should probably managed in the configure)
Sylvestre Ledru [Tue, 11 Feb 2014 21:37:27 +0000 (21:37 +0000)]
update of the clang version (should probably managed in the configure)

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

10 years agoRemove bad debug info test.
David Blaikie [Tue, 11 Feb 2014 21:16:44 +0000 (21:16 +0000)]
Remove bad debug info test.

This test case doesn't belong in Clang (it's testing IndVarSimplify) but
in an effort to reproduce the test case this was intended to cover (by
essentially reverting r134441) I wasn't able to reproduce the failure
this test case should've produced. So I haven't ported this down to
LLVM, instead I'm just deleting it.

I suspect the test is just underconstrained, but I've no great interest
in trying hard to fix it right now - if anyone else wants to, I'd be
more than welcome to that.

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

10 years agoMS ABI: Add support for the -vm{b,g,s,m,v} flags
David Majnemer [Tue, 11 Feb 2014 21:05:00 +0000 (21:05 +0000)]
MS ABI: Add support for the -vm{b,g,s,m,v} flags

These flags control the inheritance model initially used by the
translation unit.

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

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

10 years agoTest commit -- Remove an extra newline from Toolchains.cpp
Jonathan Roelofs [Tue, 11 Feb 2014 20:02:34 +0000 (20:02 +0000)]
Test commit -- Remove an extra newline from Toolchains.cpp

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

10 years ago[Sema] Revert the change in r200622 that allowed integer casts to silence -Wnon-liter...
Argyrios Kyrtzidis [Tue, 11 Feb 2014 17:53:22 +0000 (17:53 +0000)]
[Sema] Revert the change in r200622 that allowed integer casts to silence -Wnon-literal-null-conversion in C code.

It is actually useful to warn in such cases, thanks to Dmitri for pushing on this and making us see the light!

Related to rdar://15925483 and rdar://15922612. The latter radar is where the usefulness of the warning is most clear.

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

10 years ago'nonnull(1)' on a block parameter should apply to the block's argument.
Jordan Rose [Tue, 11 Feb 2014 17:27:59 +0000 (17:27 +0000)]
'nonnull(1)' on a block parameter should apply to the block's argument.

Thanks to r199467, __attribute__((nonnull)) (without arguments) can apply
directly to parameters, instead of being applied to the whole function.
However, the old form of nonnull (with an argument index) could also apply
to the arguments of function and block pointers, and both of these can be
passed as parameters.

Now, if 'nonnull' with an argument is found on a parameter, /and/ the
parameter is a function or block pointer, it is handled the old way.

PR18795

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

10 years agoRename some PCH-related errors to have 'err_' as their prefix
Dmitri Gribenko [Tue, 11 Feb 2014 15:40:09 +0000 (15:40 +0000)]
Rename some PCH-related errors to have 'err_' as their prefix

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

10 years agoFix a typo in the function name that I just introduced (r201155)
Dmitri Gribenko [Tue, 11 Feb 2014 15:02:48 +0000 (15:02 +0000)]
Fix a typo in the function name that I just introduced (r201155)

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

10 years agolibclang: audit all APIs that accept a CXTranslationUnit to make sure that
Dmitri Gribenko [Tue, 11 Feb 2014 14:34:14 +0000 (14:34 +0000)]
libclang: audit all APIs that accept a CXTranslationUnit to make sure that
checks for invalid translation unit are in place.  Also, while there, add log
output for this case.

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

10 years agolibclang: use namespace qualifiers in the macro, so that it does not require
Dmitri Gribenko [Tue, 11 Feb 2014 12:25:31 +0000 (12:25 +0000)]
libclang: use namespace qualifiers in the macro, so that it does not require
'using namespace clang::cxindex'.

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

10 years agoAArch64: share slgihtly more NEON implementation with ARM.
Tim Northover [Tue, 11 Feb 2014 11:27:44 +0000 (11:27 +0000)]
AArch64: share slgihtly more NEON implementation with ARM.

The s64/u64 vcvt conversion operations are actually pretty much identical to
the s32/u32 ones in implementation, and can be shared with just one extra
variable.

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

10 years agoXCore target: add section information.
Robert Lytton [Tue, 11 Feb 2014 10:34:51 +0000 (10:34 +0000)]
XCore target: add section information.

Xcore target ABI requires const data that is externally visible
to be handled differently if it has C-language linkage rather than
C++ language linkage.

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

10 years agoXCore target: Pass through "-fverbose-asm" flag to xcc assembler.
Robert Lytton [Tue, 11 Feb 2014 10:34:45 +0000 (10:34 +0000)]
XCore target: Pass through "-fverbose-asm" flag to xcc assembler.

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

10 years agoclang-format: Support lambdas with namespace-qualified return types.
Daniel Jasper [Tue, 11 Feb 2014 10:16:55 +0000 (10:16 +0000)]
clang-format: Support lambdas with namespace-qualified return types.

E.g.:
  Foo([]()->std::vector<int> { return { 2 }; }());

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

10 years agoclang-format: Fix alignment of comments inside statements.
Daniel Jasper [Tue, 11 Feb 2014 10:08:11 +0000 (10:08 +0000)]
clang-format: Fix alignment of comments inside statements.

Before:
  auto result = SomeObject
                // Calling someFunction on SomeObject
                    .someFunction();

After:
  auto result = SomeObject
                    // Calling someFunction on SomeObject
                    .someFunction();

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

10 years agoAAPCS: Do not split structs after CPRC allocated on stack
Oliver Stannard [Tue, 11 Feb 2014 09:25:50 +0000 (09:25 +0000)]
AAPCS: Do not split structs after CPRC allocated on stack

According to the AAPCS, we can split structs between GPRs and the stack,
except for when an argument has already been allocated on the stack. This
can occur when a large number of floating-point arguments fill up the VFP
registers, and are alllocated on the stack before the general-purpose argument
registers are full.

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