]> granicus.if.org Git - clang/log
clang
8 years ago[OpenCL] Pipe type support
Xiuli Pan [Sat, 9 Jan 2016 12:53:17 +0000 (12:53 +0000)]
[OpenCL] Pipe type support

Summary:
Support for OpenCL 2.0 pipe type.
This is a bug-fix version for bader's patch reviews.llvm.org/D14441

Reviewers: pekka.jaaskelainen, Anastasia

Subscribers: bader, Anastasia, cfe-commits

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

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

8 years agoTest Commit
Xiuli Pan [Sat, 9 Jan 2016 07:12:32 +0000 (07:12 +0000)]
Test Commit

Fix a typo

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

8 years ago[modules] If we're treating an elaborated-type-specifier as if it introduces a
Richard Smith [Sat, 9 Jan 2016 06:58:48 +0000 (06:58 +0000)]
[modules] If we're treating an elaborated-type-specifier as if it introduces a
tag (because the previous declaration was found in a different module), inject
the tag into the appropriate scope (that is, the enclosing scope if we're in a
function prototype scope in C++).

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

8 years agoModule debugging: Add a testcase for standalone forward declarations.
Adrian Prantl [Sat, 9 Jan 2016 01:11:35 +0000 (01:11 +0000)]
Module debugging: Add a testcase for standalone forward declarations.

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

8 years agoOnly take NULL macros instead of all macros into account for -Wnull-conversion.
Richard Trieu [Sat, 9 Jan 2016 01:10:17 +0000 (01:10 +0000)]
Only take NULL macros instead of all macros into account for -Wnull-conversion.

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

8 years agoExclude function calls for functions which have return type nullptr_t from
Richard Trieu [Fri, 8 Jan 2016 23:35:06 +0000 (23:35 +0000)]
Exclude function calls for functions which have return type nullptr_t from
-Wnull-conversion warning.

These functions are basically equivalent to other pointer returning fuctions
which are already excluded by -Wnull-conversion.

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

8 years ago[modules] Make sure we always include the contents of private headers when
Richard Smith [Fri, 8 Jan 2016 22:36:45 +0000 (22:36 +0000)]
[modules] Make sure we always include the contents of private headers when
building a module. Prior to this change, the private header's content would
only be included if the header were included by another header in the same
module. If not (if the private header is only used by the .cc files of the
module, or is included from outside the module via -Wno-private-header),
a #include of that file would be silently ignored.

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

8 years ago[MS ABI] Complete and base constructor GlobalDecls must have the same name
David Majnemer [Fri, 8 Jan 2016 20:48:26 +0000 (20:48 +0000)]
[MS ABI] Complete and base constructor GlobalDecls must have the same name

Clang got itself into the situation where we mangled the same
constructor twice with two different constructor types.  After one of
the constructors were utilized, the tag used for one of the types
changed from class to struct because a class template became complete.
This resulted in one of the constructor types varying from the other
constructor.

Instead, force "base" constructor types to "complete" if the ABI doesn't
have constructor variants.  This will ensure that GlobalDecls for both
variants will get the same mangled name.

This fixes PR26029.

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

8 years agoFix incorrectly line-broken comment in Driver.h.
Justin Lebar [Fri, 8 Jan 2016 19:28:34 +0000 (19:28 +0000)]
Fix incorrectly line-broken comment in Driver.h.

Also sort includes.

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

8 years agoUpdate code in buildCudaActions and BuildActions to latest idiom.
Justin Lebar [Fri, 8 Jan 2016 19:04:11 +0000 (19:04 +0000)]
Update code in buildCudaActions and BuildActions to latest idiom.

Summary:
Use llvm::any_of, llvm::find, etc.

No functional changes.

Reviewers: tra

Subscribers: cfe-commits

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

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

8 years ago[ThinLTO] Leverage new in-place renaming support
Teresa Johnson [Fri, 8 Jan 2016 17:04:29 +0000 (17:04 +0000)]
[ThinLTO] Leverage new in-place renaming support

Due to the new in-place renaming support added in r257174, we no
longer need to invoke ThinLTO global renaming from clang. It will be
invoked on the module in the FunctionImport pass (by an immediately
following llvm commit).

As a result, we don't need to load the FunctionInfoIndex as early,
so that is moved down into EmitAssemblyHelper::EmitAssembly.

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

8 years agoDriver: Use the new ELF lld linker for AMDGPU
Tom Stellard [Fri, 8 Jan 2016 15:14:31 +0000 (15:14 +0000)]
Driver: Use the new ELF lld linker for AMDGPU

Summary: 'gnu-old' has been deprecated in favor or 'gnu'.

Reviewers: arsenm, ruiu, rafael

Subscribers: cfe-commits

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

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

8 years agoclang-format: [JS] Prefer wrapping before the TypeScript return type
Daniel Jasper [Fri, 8 Jan 2016 10:51:24 +0000 (10:51 +0000)]
clang-format: [JS] Prefer wrapping before the TypeScript return type
over wrapping before parameters.

Before:
  function someFunc(
      args: string[]): {longReturnValue: string[]} {}

After:
  function someFunc(args: string[]):
      {longReturnValue: string[]} {}

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

8 years agoclang-format: [JS] Add some Closure Compiler JSDoc tags to the default
Daniel Jasper [Fri, 8 Jan 2016 08:14:58 +0000 (08:14 +0000)]
clang-format: [JS] Add some Closure Compiler JSDoc tags to the default
Google configuration so that they aren't line-wrapped.

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

8 years agoclang-format: [JS] Support more ES6 classes.
Daniel Jasper [Fri, 8 Jan 2016 07:06:07 +0000 (07:06 +0000)]
clang-format: [JS] Support more ES6 classes.

Before:
  foo = class {
      constructor() {}
  }
  ;

After:
  foo = class {
      constructor() {}
  };

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

8 years ago[CUDA] Split out tests for unused-arg warnings from cuda-options.cu.
Justin Lebar [Fri, 8 Jan 2016 03:33:04 +0000 (03:33 +0000)]
[CUDA] Split out tests for unused-arg warnings from cuda-options.cu.

Summary: Trying to make this test a bit more manageable.

Reviewers: tra

Subscribers: cfe-commits

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

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

8 years ago[PPC] Add long long/double support for vec_cts, vec_ctu and vec_ctf
Kyle Butt [Fri, 8 Jan 2016 02:00:48 +0000 (02:00 +0000)]
[PPC] Add long long/double support for vec_cts, vec_ctu and vec_ctf

Add long long/double support for vec_cts, vec_ctu and vec_ctf.

Similar to this change in GCC:
https://gcc.gnu.org/ml/gcc-patches/2014-08/msg02653.html

Patch by Tim Shen.

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

8 years agoTurn off lldb debug tuning by default for FreeBSD
Dimitry Andric [Thu, 7 Jan 2016 22:09:47 +0000 (22:09 +0000)]
Turn off lldb debug tuning by default for FreeBSD

Summary:
This is the clang part of D15966.  In rL256104, debugger tuning was
added to the clang driver, and again the default for FreeBSD was set to
lldb.  The default needs to be gdb instead.

Reviewers: emaste, probinson

Subscribers: cfe-commits, emaste

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

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

8 years agoProperly track that a character literal is UTF-8, and pretty print the prefix properly.
Aaron Ballman [Thu, 7 Jan 2016 20:59:26 +0000 (20:59 +0000)]
Properly track that a character literal is UTF-8, and pretty print the prefix properly.

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

8 years ago[PGO] Simplify coverage mapping lowering
Xinliang David Li [Thu, 7 Jan 2016 20:05:55 +0000 (20:05 +0000)]
[PGO] Simplify coverage mapping lowering

Coverage mapping data may reference names of functions
that are skipped by FE (e.g, unused inline functions). Since
those functions are skipped, normal instr-prof function lowering
pass won't put those names in the right section, so special
handling is needed to walk through coverage mapping structure
and recollect the references.

With this patch, only names that are skipped are processed. This
simplifies the lowering code and it no longer needs to make
assumptions coverage mapping data layout. It should also be
more efficient.

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

8 years agoRemove extraneous "Note t" in comment.
Justin Lebar [Thu, 7 Jan 2016 19:38:29 +0000 (19:38 +0000)]
Remove extraneous "Note t" in comment.

Added in r167571.

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

8 years agoCorrecting the comment in a header file; NFC.
Aaron Ballman [Thu, 7 Jan 2016 19:00:54 +0000 (19:00 +0000)]
Correcting the comment in a header file; NFC.

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

8 years agoclang-format: Fix corner case in one-per-line formatting.
Daniel Jasper [Thu, 7 Jan 2016 18:11:54 +0000 (18:11 +0000)]
clang-format: Fix corner case in one-per-line formatting.

Before (example is JS, but also applies to C++):
  return [
    aaaa()
        .bbbbbbbb('A'),
    aaaa().bbbbbbbb('B'),
    aaaa().bbbbbbbb('C'),
  ];

After:
  return [
    aaaa().bbbbbbbb('A'),
    aaaa().bbbbbbbb('B'),
    aaaa().bbbbbbbb('C'),
  ];

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

8 years ago[OpenMP] Fix issue in the offloading metadata testing.
Samuel Antao [Thu, 7 Jan 2016 14:58:16 +0000 (14:58 +0000)]
[OpenMP] Fix issue in the offloading metadata testing.

 - Allow device ID to be signed.
 - Add missing semicolon to some of the CHECK directives.

Thanks to Amjad Aboud for detecting the issue.

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

8 years agoclang-format: Support weird lambda macros.
Daniel Jasper [Thu, 7 Jan 2016 14:36:11 +0000 (14:36 +0000)]
clang-format: Support weird lambda macros.

Before:
  MACRO((AA & a) { return 1; });

After:
  MACRO((AA &a) { return 1; });

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

8 years agoAdd missing -no-canonical-prefixes.
Daniel Jasper [Thu, 7 Jan 2016 12:53:59 +0000 (12:53 +0000)]
Add missing -no-canonical-prefixes.

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

8 years ago[libclang] Handle AutoType in clang_getTypeDeclaration
Sergey Kalinichev [Thu, 7 Jan 2016 09:20:40 +0000 (09:20 +0000)]
[libclang] Handle AutoType in clang_getTypeDeclaration

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

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

8 years agoARM: allow __thread on OS versions that have the required runtime support.
Tim Northover [Thu, 7 Jan 2016 09:04:46 +0000 (09:04 +0000)]
ARM: allow __thread on OS versions that have the required runtime support.

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

8 years agoMake sure we claim arguments that are going to be passed to a gcc tool,
Eric Christopher [Thu, 7 Jan 2016 09:03:42 +0000 (09:03 +0000)]
Make sure we claim arguments that are going to be passed to a gcc tool,
even if they're not going to be used to avoid unused option warnings.

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

8 years agoclang-format: [JS] Support more ES6 imports.
Daniel Jasper [Thu, 7 Jan 2016 08:53:35 +0000 (08:53 +0000)]
clang-format: [JS] Support more ES6 imports.

Before:
  import a, {X, Y}
  from 'some/module.js';

After:
  import a, {X, Y} from 'some/module.js';

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

8 years ago[WebAssembly] Add -m:e to the target triple.
Dan Gohman [Thu, 7 Jan 2016 03:20:15 +0000 (03:20 +0000)]
[WebAssembly] Add -m:e to the target triple.

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

8 years ago[Sema] Teach overload resolution about unaddressable functions.
George Burgess IV [Thu, 7 Jan 2016 02:26:57 +0000 (02:26 +0000)]
[Sema] Teach overload resolution about unaddressable functions.

Given an expression like `(&Foo)();`, we perform overload resolution as
if we are calling `Foo` directly. This causes problems if `Foo` is a
function that can't have its address taken. This patch teaches overload
resolution to ignore functions that can't have their address taken in
such cases.

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

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

8 years agoReplace a loop with the call that does the same thing.
Eric Christopher [Thu, 7 Jan 2016 02:00:55 +0000 (02:00 +0000)]
Replace a loop with the call that does the same thing.

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

8 years agoRemove leading space added in r227312.
Eric Christopher [Thu, 7 Jan 2016 01:23:21 +0000 (01:23 +0000)]
Remove leading space added in r227312.

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

8 years agoUse an actual real architecture and massage a couple of comments.
Eric Christopher [Thu, 7 Jan 2016 01:23:19 +0000 (01:23 +0000)]
Use an actual real architecture and massage a couple of comments.

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

8 years agoTest that we're not forwarding on -g options to the non integrated assembler.
Eric Christopher [Thu, 7 Jan 2016 01:23:12 +0000 (01:23 +0000)]
Test that we're not forwarding on -g options to the non integrated assembler.

This is adding a test for an old fixed PR to make sure we don't regress.

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

8 years agoImprove documentation comments for IdentifierNamespace values.
Richard Smith [Thu, 7 Jan 2016 01:17:43 +0000 (01:17 +0000)]
Improve documentation comments for IdentifierNamespace values.

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

8 years ago[WebAssembly] Add a test to ensure that -fvisibility=default works.
Dan Gohman [Thu, 7 Jan 2016 01:15:05 +0000 (01:15 +0000)]
[WebAssembly] Add a test to ensure that -fvisibility=default works.

It should override the default of -fvisibility=hidden.

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

8 years ago[WebAssembly] Enable -fvisibility=hidden by default.
Dan Gohman [Thu, 7 Jan 2016 01:00:21 +0000 (01:00 +0000)]
[WebAssembly] Enable -fvisibility=hidden by default.

This, along with many things in the WebAssembly target, is experimental.
Feedback is welcome.

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

8 years ago[WebAssembly] Enable -ffunction-sections and -fdata-sections by default.
Dan Gohman [Thu, 7 Jan 2016 00:50:27 +0000 (00:50 +0000)]
[WebAssembly] Enable -ffunction-sections and -fdata-sections by default.

These remain user-overridable with -fno-function-sections and
-fno-data-sections.

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

8 years ago[WebAssembly] Only enable --gc-sections when optimizations are enabled.
Dan Gohman [Thu, 7 Jan 2016 00:32:04 +0000 (00:32 +0000)]
[WebAssembly] Only enable --gc-sections when optimizations are enabled.

Also, revamp the wasm-toolchain.c test and add a test to ensure that
a user-supplied --no-gc-sections comes after --gc-sections.

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

8 years agoProperly bind up any cleanups in an ExprWithCleanups after
John McCall [Wed, 6 Jan 2016 23:34:20 +0000 (23:34 +0000)]
Properly bind up any cleanups in an ExprWithCleanups after
instantiating a default argument expression.

This was previously just working implicitly by reinstantiating
in the current context, but caching means that we weren't
registering cleanups in subsequent uses.

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

8 years agoPR26048, PR26050: put non-type template parameters and indirect field decls
Richard Smith [Wed, 6 Jan 2016 22:49:11 +0000 (22:49 +0000)]
PR26048, PR26050: put non-type template parameters and indirect field decls
into IDNS_Tag in C++, because they conflict with redeclarations of tags. (This
doesn't affect elaborated-type-specifier lookup, which looks for IDNS_Type in
C++).

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

8 years agoOnly instantiate a default argument once.
John McCall [Wed, 6 Jan 2016 22:34:54 +0000 (22:34 +0000)]
Only instantiate a default argument once.

By storing the instantiated expression back in the ParmVarDecl,
we remove the last need for separately storing the sub-expression
of a CXXDefaultArgExpr.  This makes PCH/Modules merging quite
simple: CXXDefaultArgExpr records are serialized as references
to the ParmVarDecl, and we ignore redundant attempts to overwrite
the instantiated expression.

This has some extremely marginal impact on user-facing semantics.
However, the major effect is that it avoids IRGen errors about
conflicting definitions due to lambdas in the argument being
instantiated multiple times while sharing the same mangling.
It should also slightly improve memory usage and module file size.

rdar://23810407

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

8 years agoFix half of PR26048. We don't yet diagnose the case where the anonymous union member...
Richard Smith [Wed, 6 Jan 2016 21:54:29 +0000 (21:54 +0000)]
Fix half of PR26048. We don't yet diagnose the case where the anonymous union member is declared first and the tag name is declared second.

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

8 years ago[Hexagon] Expand -mvN to -mcpu=hexagonvN
Krzysztof Parzyszek [Wed, 6 Jan 2016 21:27:42 +0000 (21:27 +0000)]
[Hexagon] Expand -mvN to -mcpu=hexagonvN

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

8 years ago[Hexagon] Treat -march and -mcpu as equivalent
Krzysztof Parzyszek [Wed, 6 Jan 2016 21:12:03 +0000 (21:12 +0000)]
[Hexagon] Treat -march and -mcpu as equivalent

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

8 years agoImprove conditional checking during template instantiation.
Richard Trieu [Wed, 6 Jan 2016 21:11:18 +0000 (21:11 +0000)]
Improve conditional checking during template instantiation.

When the condition in an if statement, while statement, or for loop is created
during template instantiation, it calls MakeFullExpr with only the condition
expression.  However, when these conditions are created for non-templated
code in the Parser, an additional SourceLocation is passed to MakeFullExpr.
The impact of this was that non-dependent templated code could produce
diagnostics that the same code outside templates would not.  Adding the missing
SourceLocation makes diagnostics consistent between templated and non-templated
code.

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

8 years agoAdd -Wfor-loop-analysis to -Wall.
Nico Weber [Wed, 6 Jan 2016 20:55:00 +0000 (20:55 +0000)]
Add -Wfor-loop-analysis to -Wall.

This warning seems to have 0 false positives and some true positives in
practice, without a measurable compile time cost.  It should be in -Wall, and
possibly even become a default warning at some point.

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

8 years ago[WebAssembly] Add --gc-sections to the link line.
Dan Gohman [Wed, 6 Jan 2016 19:43:32 +0000 (19:43 +0000)]
[WebAssembly] Add --gc-sections to the link line.

This will eventually be accompanied with a change to enable -ffunction-sections
and -fdata-sections by default, which is currently delayed by some development
process issues.

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

8 years agoFix a typo.
Adrian Prantl [Wed, 6 Jan 2016 19:22:23 +0000 (19:22 +0000)]
Fix a typo.

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

8 years agoModule debugging: Defer emitting tag types until their definition
Adrian Prantl [Wed, 6 Jan 2016 19:22:19 +0000 (19:22 +0000)]
Module debugging: Defer emitting tag types until their definition
was visited and all decls have been merged.

We only get a single chance to emit the types for virtual classes because
CGDebugInfo::completeRequiredType() categorically doesn't complete them.

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

8 years agoFix -Wdocumentation warning after r256933
Nico Weber [Wed, 6 Jan 2016 19:13:49 +0000 (19:13 +0000)]
Fix -Wdocumentation warning after r256933

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

8 years agoBump DiagnosticDriverKinds count; we're close to hitting it.
Ahmed Bougacha [Wed, 6 Jan 2016 18:43:14 +0000 (18:43 +0000)]
Bump DiagnosticDriverKinds count; we're close to hitting it.

 $ grep '= DIAG_START_DRIVER' include/clang/Basic/DiagnosticIDs.h
       DIAG_START_FRONTEND      = DIAG_START_DRIVER          +  100,
 $ grep 'def ' include/clang/Basic/DiagnosticDriverKinds.td | wc -l
       98

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

8 years agoShow inclusions from a preamble in clang_getInclusions.
Erik Verbruggen [Wed, 6 Jan 2016 15:12:51 +0000 (15:12 +0000)]
Show inclusions from a preamble in clang_getInclusions.

When reparsing a translation unit with preamble generation turned on,
no includes are found. This is due to the fact that all SLocs from
AST/PCH files are skipped as they are 'loaded', and inclusions from a
preamble are also 'loaded'. So, in case a file has a preamble, it first
needs to process those loaded inclusions, and then check for any local
inclusions. This latter one is for any includes that are not part of the
preamble, like includes half-way through a file.

This fixes PR24748.

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

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

8 years ago[Driver] Add support for -fno-builtin-foo options.
Chad Rosier [Wed, 6 Jan 2016 14:35:46 +0000 (14:35 +0000)]
[Driver] Add support for -fno-builtin-foo options.

Addresses PR4941 and rdar://6756912.
http://reviews.llvm.org/D15195

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

8 years ago[Hexagon] Use back_inserter as target iterator in std::copy
Krzysztof Parzyszek [Wed, 6 Jan 2016 14:13:11 +0000 (14:13 +0000)]
[Hexagon] Use back_inserter as target iterator in std::copy

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

8 years ago[OpenMP] Reapply rL256842: [OpenMP] Offloading descriptor registration and device...
Samuel Antao [Wed, 6 Jan 2016 13:42:12 +0000 (13:42 +0000)]
[OpenMP] Reapply rL256842: [OpenMP] Offloading descriptor registration and device codegen.

This patch attempts to fix the regressions identified when the patch was committed initially.

Thanks to Michael Liao for identifying the fix in the offloading metadata generation
related with side effects in evaluation of function arguments.

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

8 years ago[Analyzer] Change the default SA checkers for PS4
Sean Eveson [Wed, 6 Jan 2016 10:03:58 +0000 (10:03 +0000)]
[Analyzer] Change the default SA checkers for PS4

Summary: This patch removes security.*, unix.API and unix.Vfork from the default checkers for PS4.

Reviewers: dcoughlin, zaks.anna

Subscribers: cfe-commits

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

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

8 years agoAdd -fno-movt frontend option, to disable movt/movw on ARM
Dimitry Andric [Wed, 6 Jan 2016 07:42:18 +0000 (07:42 +0000)]
Add -fno-movt frontend option, to disable movt/movw on ARM

Summary:
In rL256641, @davide turned off movt generation by default for FreeBSD.
This was because our ld is very old, and did not support the relocations
for it.  However, Ian Lepore added the support very recently, so we
would like to revert rL256641, and replace it with a new `-fno-movt`
frontend option.  This way, it can be turned off when needed.

Reviewers: dexonsmith, echristo, emaste, davide

Subscribers: andrew, aemerson, rengolin, davide, cfe-commits, ahatanak, emaste

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

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

8 years agoChange the set of actions built for external gcc tools.
Eric Christopher [Wed, 6 Jan 2016 07:24:45 +0000 (07:24 +0000)]
Change the set of actions built for external gcc tools.

A gcc tool has an "integrated" assembler (usually gas) that it
will call to produce an object. Let it use that assembler so
that we don't have to deal with assembly syntax incompatibilities.

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

8 years ago[modules] When a tag type that was imported from a module is referenced via an
Richard Smith [Wed, 6 Jan 2016 03:52:10 +0000 (03:52 +0000)]
[modules] When a tag type that was imported from a module is referenced via an
elaborated-type-specifier, create a declaration of it to track that the current
module makes it visible too.

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

8 years agoAvoid assert failure on some invalid cc1 options.
Douglas Katzman [Wed, 6 Jan 2016 01:37:57 +0000 (01:37 +0000)]
Avoid assert failure on some invalid cc1 options.

Addressing review comment in D13221.

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

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

8 years ago[analyzer] Fix false warning about memory leak for QApplication::postEvent
Anna Zaks [Wed, 6 Jan 2016 00:32:56 +0000 (00:32 +0000)]
[analyzer] Fix false warning about memory leak for QApplication::postEvent

According to Qt documentation Qt takes care of memory allocated for QEvent:
http://doc.qt.io/qt-4.8/qcoreapplication.html#postEvent

A patch by Evgeniy Dushistov!

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

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

8 years ago[analyzer] Suppress reports coming from std::__independent_bits_engine
Anna Zaks [Wed, 6 Jan 2016 00:32:52 +0000 (00:32 +0000)]
[analyzer] Suppress reports coming from std::__independent_bits_engine

The analyzer reports a shift by a negative value in the constructor. The bug can
be easily triggered by calling std::random_shuffle on a vector
(<rdar://problem/19658126>).

(The shift by a negative value is reported because __w0_ gets constrained to
63 by the conditions along the path:__w0_ < _WDt && __w0_ >= _WDt-1,
where _WDt is 64. In normal execution, __w0_ is not 63, it is 1 and there is
no overflow. The path is infeasible, but the analyzer does not know about that.)

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

8 years ago[analyzer] Don't report null dereferences on address_space annotated memory
Anna Zaks [Wed, 6 Jan 2016 00:32:49 +0000 (00:32 +0000)]
[analyzer] Don't report null dereferences on address_space annotated memory

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

8 years agoFix a typo in testcase and increase its coverage!
Adrian Prantl [Tue, 5 Jan 2016 23:54:01 +0000 (23:54 +0000)]
Fix a typo in testcase and increase its coverage!

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

8 years ago[CMake] Support a simple case for bootstrap builds to generate PGO data
Chris Bieneman [Tue, 5 Jan 2016 23:51:42 +0000 (23:51 +0000)]
[CMake] Support a simple case for bootstrap builds to generate PGO data

Summary:
This patch adds support for the clang multi-stage bootstrapping to support PGO profdata generation, and can build a 2 or 3 stage compiler.

With this patch applied you can configure your build directory with the following invocation of CMake:

cmake -G <generator> -C <path_to_clang>/cmake/caches/PGO.cmake <source dir>

After configuration the following additional targets will be generated:

stage2-instrumented:
Builds a stage1 x86 compiler, runtime, and required tools (llvm-config, llvm-profdata) then uses that compiler to build an instrumented stage2 compiler.

stage2-instrumented-generate-profdata:
Depends on "stage2-instrumented" and will use the instrumented compiler to generate profdata based on the training files in <clang>/utils/perf-training

stage2:
Depends on "stage2-instrumented-generate-profdata" and will use the stage1 compiler with the stage2 profdata to build a PGO-optimized compiler.

stage2-check-llvm:
Depends on stage2 and runs check-llvm using the stage3 compiler.

stage2-check-clang:
Depends on stage2 and runs check-clang using the stage3 compiler.

stage2-check-all:
Depends on stage2 and runs check-all using the stage3 compiler.

stage2-test-suite:
Depends on stage2 and runs the test-suite using the stage3 compiler (requires in-tree test-suite).

Reviewers: bogner, silvas, chandlerc

Subscribers: cfe-commits

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

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

8 years ago[Clang/Support/Windows/Unix] Command lines created by clang may exceed the command...
Oleg Ranevskyy [Tue, 5 Jan 2016 19:54:39 +0000 (19:54 +0000)]
[Clang/Support/Windows/Unix] Command lines created by clang may exceed the command length limit set by the OS

Summary:
LLVM part of the patch is D15831.

When clang runs an external tool such as a linker it may create a command line that exceeds the length limit.

Clang uses the llvm::sys::argumentsFitWithinSystemLimits function to check if command line length fits the OS

limitation. There are two problems in this function that may cause exceeding of the limit:

1. It ignores the length of the program path in its calculations. On the other hand, clang adds the program

path to the command line when it runs the program.

2. It assumes no space character is inserted after the last argument, which is not true for Windows. The flattenArgs function adds the trailing space for *each* argument. The result of this is that the terminating NULL character is not counted and may be placed beyond the length limit if the command line is exactly 32768 characters long. The WinAPI's CreateProcess does not find the NULL character and fails.

Reviewers: rafael, asl

Subscribers: asl, llvm-commits

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

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

8 years ago[OpenMP] Revert rL256842: [OpenMP] Offloading descriptor registration and device...
Samuel Antao [Tue, 5 Jan 2016 19:16:13 +0000 (19:16 +0000)]
[OpenMP] Revert rL256842: [OpenMP] Offloading descriptor registration and device codegen.

It was causing two regression, so I'm reverting until the cause is found.

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

8 years ago[PGO] Enable clang to pass compiler-rt profile support library to linker on Windows
Nathan Slingerland [Tue, 5 Jan 2016 18:27:06 +0000 (18:27 +0000)]
[PGO] Enable clang to pass compiler-rt profile support library to linker on Windows

Summary: This change enables clang to automatically link binaries built with the -fprofile-instr-generate against the clang_rt.profile-i386.lib library.

Reviewers: davidxl, dnovillo

Subscribers: llvm-commits

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

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

8 years ago[OpenMP] Allow file ID to be signed in the offloading metadata.
Samuel Antao [Tue, 5 Jan 2016 18:02:24 +0000 (18:02 +0000)]
[OpenMP] Allow file ID to be signed in the offloading metadata.

This fixes a regression introduced by rL256842.

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

8 years ago[OpenMP] Offloading descriptor registration and device codegen.
Samuel Antao [Tue, 5 Jan 2016 16:23:04 +0000 (16:23 +0000)]
[OpenMP] Offloading descriptor registration and device codegen.

Summary:
In order to offloading work properly two things need to be in place:
- a descriptor with all the offloading information (device entry functions, and global variable) has to be created by the host and registered in the OpenMP offloading runtime library.
- all the device functions need to be emitted for the device and a convention has to be in place so that the runtime library can easily map the host ID of an entry point with the actual function in the device.

This patch adds support for these two things. However, only entry functions are being registered given that 'declare target' directive is not yet implemented.

About offloading descriptor:

The details of the descriptor are explained with more detail in http://goo.gl/L1rnKJ. Basically the descriptor will have fields that specify the number of devices, the pointers to where the device images begin and end (that will be defined by the linker), and also pointers to a the begin and end of table whose entries contain information about a specific entry point. Each entry has the type:
```
struct __tgt_offload_entry{
 void *addr;
 char *name;
 int64_t size;
};
```
and will be implemented in a pre determined (ELF) section `.omp_offloading.entries` with 1-byte alignment, so that when all the objects are linked, the table is in that section with no padding in between entries (will be like a C array). The code generation ensures that all `__tgt_offload_entry` entries are emitted in the same order for both host and device so that the runtime can have the corresponding entries in both host and device in same index of the table, and efficiently implement the mapping.

The resulting descriptor is registered/unregistered with the runtime library using the calls `__tgt_register_lib` and `__tgt_unregister_lib`. The registration is implemented in a high priority global initializer so that the registration happens always before any initializer (that can potentially include target regions) is run.

The driver flag -omptargets= was created to specify a comma separated list of devices the user wants to support so that the new functionality can be exercised. Each device is specified with its triple.

About target codegen:

The target codegen is pretty much straightforward as it reuses completely the logic of the host version for the same target region. The tricky part is to identify the meaningful target regions in the device side. Unlike other programming models, like CUDA, there are no already outlined functions with attributes that mark what should be emitted or not. So, the information on what to emit is passed in the form of metadata in host bc file. This requires a new option to pass the host bc to the device frontend. Then everything is similar to what happens in CUDA: the global declarations emission is intercepted to check to see if it is an "interesting" declaration. The difference is that instead of checking an attribute, the metadata information in checked. Right now, there is only a form of metadata to pass information about the device entry points (target regions). A class `OffloadEntriesInfoManagerTy` was created to manage all the information and queries related with the metadata. The metadata looks like this:
```
!omp_offload.info = !{!0, !1, !2, !3, !4, !5, !6}

!0 = !{i32 0, i32 52, i32 77426347, !"_ZN2S12r1Ei", i32 479, i32 13, i32 4}
!1 = !{i32 0, i32 52, i32 77426347, !"_ZL7fstatici", i32 461, i32 11, i32 5}
!2 = !{i32 0, i32 52, i32 77426347, !"_Z9ftemplateIiET_i", i32 444, i32 11, i32 6}
!3 = !{i32 0, i32 52, i32 77426347, !"_Z3fooi", i32 99, i32 11, i32 0}
!4 = !{i32 0, i32 52, i32 77426347, !"_Z3fooi", i32 272, i32 11, i32 3}
!5 = !{i32 0, i32 52, i32 77426347, !"_Z3fooi", i32 127, i32 11, i32 1}
!6 = !{i32 0, i32 52, i32 77426347, !"_Z3fooi", i32 159, i32 11, i32 2}
```
The fields in each metadata entry are (in sequence):
Entry 1) an ID of the type of metadata - right now only zero is used meaning "OpenMP target region".
Entry 2) a unique ID of the device where the input source file that contain the target region lives.
Entry 3) a unique ID of the file where the input source file that contain the target region lives.
Entry 4) a mangled name of the function that encloses the target region.
Entries 5) and 6) line and column number where the target region was found.
Entry 7) is the order the entry was emitted.

Entry 2) and 3) are required to distinguish files that have the same function name.
Entry 4) is required to distinguish different instances of the same declaration (usually templated ones)
Entries 5) and 6) are required to distinguish the particular target region in body of the function (it is possible that a given target region is not an entry point - if clause can evaluate always to zero - and therefore we need to identify the "interesting" target regions. )

This patch replaces http://reviews.llvm.org/D12306.

Reviewers: ABataev, hfinkel, tra, rjmccall, sfantao

Subscribers: FBrygidyn, piotr.rak, Hahnfeld, cfe-commits

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

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

8 years agoclang-format: Fix corner case in "if it saves columns"-calculation.
Daniel Jasper [Tue, 5 Jan 2016 16:10:39 +0000 (16:10 +0000)]
clang-format: Fix corner case in "if it saves columns"-calculation.

Before:
  aaaa
      .aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
      .aaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

After:
  aaaa.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
      .aaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

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

8 years ago[OpenCL] Disallow taking an address of a function.
Anastasia Stulova [Tue, 5 Jan 2016 14:39:27 +0000 (14:39 +0000)]
[OpenCL] Disallow taking an address of a function.

An undecorated function designator implies taking the address of a function,
which is illegal in OpenCL. Implementing a check for this earlier to allow
the error to be reported even in the presence of other more obvious errors.

Patch by Neil Hickey!

http://reviews.llvm.org/D15691

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

8 years agoclang-format: Handle \n the same way as std::endl with stream operator.
Daniel Jasper [Tue, 5 Jan 2016 13:06:27 +0000 (13:06 +0000)]
clang-format: Handle \n the same way as std::endl with stream operator.

clang-format breaks multi-line streams after std::endl.
It now also break for '\n', the suggested replacement for std::endl:

  http://llvm.org/docs/CodingStandards.html#avoid-std-endl

Before:
  llvm::errs() << aaaaaaaaaaaaaaaaaaaaaa << '\n' << bbbbbbbbbbbbbbbbbbbbbb
               << '\n';
  llvm::errs() << aaaa << "aaaaaaaaaaaaaaaaaa\n" << bbbb
               << "bbbbbbbbbbbbbbbbbb\n";

After:
  llvm::errs() << aaaaaaaaaaaaaaaaaaaaaa << '\n'
               << bbbbbbbbbbbbbbbbbbbbbb << '\n';
  llvm::errs() << aaaa << "aaaaaaaaaaaaaaaaaa\n"
               << bbbb << "bbbbbbbbbbbbbbbbbb\n";

This changeset ensure that multiline streams have a line break after:
  - std::endl
  - '\n'
  - "\n"
  - "Some Text\n"

Patch by Jean-Philippe Dufraigne, thank you.

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

8 years agoclang-format: Avoid creating hanging indents in call sequences.
Daniel Jasper [Tue, 5 Jan 2016 13:03:59 +0000 (13:03 +0000)]
clang-format: Avoid creating hanging indents in call sequences.

Before:
  aaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaa(
                      aaaaaaaaaaaaaaaaaaaa)
        .aaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

After:
  aaaaaaaaaaaaaaaa
        .aaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaa)
        .aaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

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

8 years agoclang-format: Improve line wrapping behavior in call sequences.
Daniel Jasper [Tue, 5 Jan 2016 13:03:50 +0000 (13:03 +0000)]
clang-format: Improve line wrapping behavior in call sequences.

r256750 has been leading to an undesired behavior:

  aaaaaaaaaa
      .aaaaaaaaaaaaaaaaaaaaaaaa.aaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

This change increases penalty for wrapping before member accesses that aren't
calls. Thus, this is again formatted as (as it has been before r256750):

  aaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaaa.aaaaaa(
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

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

8 years ago[AArch64] Teaches clang about Samsung Exynos-M1
MinSeong Kim [Tue, 5 Jan 2016 12:53:24 +0000 (12:53 +0000)]
[AArch64] Teaches clang about Samsung Exynos-M1

Adds core tuning support for new Samsung Exynos-M1 core (ARMv8-A).

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

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

8 years ago[ARM] [AARCH64] Add CodeGen IR tests for {VS}QRDML{AS}H v8.1a intrinsics.
Alexandros Lamprineas [Tue, 5 Jan 2016 09:58:29 +0000 (09:58 +0000)]
[ARM] [AARCH64] Add CodeGen IR tests for {VS}QRDML{AS}H v8.1a intrinsics.

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

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

8 years agoAvoid walking all the declarations in the TU when a tag is declared in function
Richard Smith [Tue, 5 Jan 2016 01:21:53 +0000 (01:21 +0000)]
Avoid walking all the declarations in the TU when a tag is declared in function
prototype scope in a function definition.

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

8 years agoRemove an unused parameter
David Majnemer [Tue, 5 Jan 2016 00:08:41 +0000 (00:08 +0000)]
Remove an unused parameter

No functionality change is intended

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

8 years ago[ms-inline-asm] Handle dependent identifiers in inline asm
David Majnemer [Mon, 4 Jan 2016 23:51:15 +0000 (23:51 +0000)]
[ms-inline-asm] Handle dependent identifiers in inline asm

Build up a dependent expression for MS-style inline assembly if the
identifier's type is dependent.

This fixes PR26001.

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

8 years agoRemove setting of inlinehint and cold attributes based on profile data
Easwaran Raman [Mon, 4 Jan 2016 23:32:28 +0000 (23:32 +0000)]
Remove setting of inlinehint and cold attributes based on profile data

NFC. These hints are only used for inlining and the inliner now uses
the same criteria to identify hot and cold callees and set appropriate
thresholds without relying on these hints. Hence this removed code is
superfluous.

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

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

8 years agoAdd some overlooked optnone tests, and tighten up an existing test.
Paul Robinson [Mon, 4 Jan 2016 17:03:58 +0000 (17:03 +0000)]
Add some overlooked optnone tests, and tighten up an existing test.

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

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

8 years agoclang-format: [JS] Support more ES6 default exports.
Daniel Jasper [Mon, 4 Jan 2016 16:10:36 +0000 (16:10 +0000)]
clang-format: [JS] Support more ES6 default exports.

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

8 years agoclang-format: [JS] Support ES6 exports of array literals.
Daniel Jasper [Mon, 4 Jan 2016 15:51:56 +0000 (15:51 +0000)]
clang-format: [JS] Support ES6 exports of array literals.

Before:
  export default[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb];
  export default[];

After:
  export default [
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
    bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
  ];
  export default [];

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

8 years agoclang-format: [JS] Improve empty array literal detection.
Daniel Jasper [Mon, 4 Jan 2016 13:11:41 +0000 (13:11 +0000)]
clang-format: [JS] Improve empty array literal detection.

Previously, the [] in the following example were recognized as an array
subscript leading to weird indentation.

Before:
  var aaaa = aaaaa || // wrap
                          [];

After:
  var aaaa = aaaaa || // wrap
             [];

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

8 years agoclang-format: Fix corner case in builder-type call formatting.
Daniel Jasper [Mon, 4 Jan 2016 12:41:11 +0000 (12:41 +0000)]
clang-format: Fix corner case in builder-type call formatting.

Before:
  return aaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa,
  aaaaaaaaaaaaaaaaa)
      .aaaa(aaaaaaaaaaaaaa);

After:
  return aaaaaaaaaaaaaaaa
      .aaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
      .aaaa(aaaaaaaaaaaaaa);

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

8 years agoConvert test/CXX/lex/lex.literal/lex.string/p4.cpp back to DOS line
Dimitry Andric [Mon, 4 Jan 2016 10:17:48 +0000 (10:17 +0000)]
Convert test/CXX/lex/lex.literal/lex.string/p4.cpp back to DOS line
endings, since the file is supposed to have them, according to its
comments.  Also set its svn:eol-style property.  Noticed by Nico Weber.

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

8 years agoclang-format: Align long braced init lists even if they are nested in
Daniel Jasper [Mon, 4 Jan 2016 07:30:44 +0000 (07:30 +0000)]
clang-format: Align long braced init lists even if they are nested in
function calls.

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

8 years agoclang-format: Fix corner case for lambda assignments.
Daniel Jasper [Mon, 4 Jan 2016 07:29:40 +0000 (07:29 +0000)]
clang-format: Fix corner case for lambda assignments.

Before:
  std::function<std::string(const std::string &)> my_lambda = [](
      const string &s) { return s; };

After:
  std::function<std::string(const std::string &)> my_lambda =
      [](const string &s) { return s; };

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

8 years agoclang-format: Fix corner-case in ObjC method declaration formatting
Daniel Jasper [Mon, 4 Jan 2016 07:29:07 +0000 (07:29 +0000)]
clang-format: Fix corner-case in ObjC method declaration formatting

Before:
  - (void)shortf:(GTMFoo *)theFoo
     longKeyword:(NSRect)theRect
   longerKeyword:(float)theInterval
           error:(NSError **)theError {
  }

After:
  - (void)shortf:(GTMFoo *)theFoo
        longKeyword:(NSRect)theRect
      longerKeyword:(float)theInterval
              error:(NSError **)theError {
  }

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

8 years agoclang-format: [Proto] Basic support for options with <> for repeated fields.
Daniel Jasper [Mon, 4 Jan 2016 07:28:12 +0000 (07:28 +0000)]
clang-format: [Proto] Basic support for options with <> for repeated fields.

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

8 years agoclang-format: [Proto] Improve wrapping of message field attributes.
Daniel Jasper [Mon, 4 Jan 2016 07:27:33 +0000 (07:27 +0000)]
clang-format: [Proto] Improve wrapping of message field attributes.

Before:
  optional AAA aaa = 1 [foo =
    {
      key: "a"  //
    },
bar = {
  key: "a"  //
}];

After:
  optional AAA aaa = 1 [
    foo = {
      key: "a"  //
    },
    bar = {
      key: "a"  //
    }
  ];

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

8 years ago[TableGen] Call llvm_shutdown on exit so that all the ManagedStatic objects in the...
Craig Topper [Mon, 4 Jan 2016 04:51:46 +0000 (04:51 +0000)]
[TableGen] Call llvm_shutdown on exit so that all the ManagedStatic objects in the support library will be deleted.

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

8 years agoArrayRef-ize a function. NFC
Craig Topper [Sun, 3 Jan 2016 19:43:23 +0000 (19:43 +0000)]
ArrayRef-ize a function. NFC

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

8 years agoUse std::is_sorted instead of a manual loop. NFC
Craig Topper [Sun, 3 Jan 2016 19:43:20 +0000 (19:43 +0000)]
Use std::is_sorted instead of a manual loop. NFC

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

8 years ago[PGO] Cleanup: Use covmap header definition in the template file
Xinliang David Li [Sun, 3 Jan 2016 19:25:54 +0000 (19:25 +0000)]
[PGO] Cleanup: Use covmap header definition in the template file

This is one last remaining instrumentatation related structure
that needs to be migrate to use the centralized template
definition.  With this change, instrumentation code
related to coverage module header will be kept in sync
with the coverage mapping reader. The remaining code
which makes implicit assumption about covmap control
structure layout in the the lowering pass will cleaned
up in a different patch. This patch is not intended to
have no functional change.

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

8 years agoFix several accidental DOS line endings in source files
Dimitry Andric [Sun, 3 Jan 2016 15:55:40 +0000 (15:55 +0000)]
Fix several accidental DOS line endings in source files

Summary:
There are a number of files in the tree which have been accidentally checked in with DOS line endings. Convert these to native line endings.

There are also a few files which have DOS line endings on purpose, and I have set the svn:eol-style property to 'CRLF' on those.

Reviewers: joerg, aaron.ballman

Subscribers: aaron.ballman, cfe-commits

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

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