]> granicus.if.org Git - clang/log
clang
9 years agoIntroduced pragmas for audited nullability regions.
Douglas Gregor [Fri, 19 Jun 2015 18:25:57 +0000 (18:25 +0000)]
Introduced pragmas for audited nullability regions.

Introduce the clang pragmas "assume_nonnull begin" and "assume_nonnull
end" in which we make default assumptions about the nullability of many
unannotated pointers:

  - Single-level pointers are inferred to __nonnull
  - NSError** in a (function or method) parameter list is inferred to
    NSError * __nullable * __nullable.
  - CFErrorRef * in a (function or method) parameter list is inferred
    to CFErrorRef __nullable * __nullable.
  - Other multi-level pointers are never inferred to anything.

Implements rdar://problem/19191042.

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

9 years agoImplement the 'null_resettable' attribute for Objective-C properties.
Douglas Gregor [Fri, 19 Jun 2015 18:14:46 +0000 (18:14 +0000)]
Implement the 'null_resettable' attribute for Objective-C properties.

'null_resettable' properties are those whose getters return nonnull
but whose setters take nil, to "reset" the property to some
default. Implements rdar://problem/19051334.

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

9 years agoExtend type nullability qualifiers for Objective-C.
Douglas Gregor [Fri, 19 Jun 2015 18:14:38 +0000 (18:14 +0000)]
Extend type nullability qualifiers for Objective-C.

Introduce context-sensitive, non-underscored nullability specifiers
(nonnull, nullable, null_unspecified) for Objective-C method return
types, method parameter types, and properties.

Introduce Objective-C-specific semantics, including computation of the
nullability of the result of a message send, merging of nullability
information from the @interface of a class into its @implementation,
etc .

This is the Objective-C part of rdar://problem/18868820.

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

9 years agoDiagnose unsafe uses of nil and __nonnull pointers.
Douglas Gregor [Fri, 19 Jun 2015 18:13:19 +0000 (18:13 +0000)]
Diagnose unsafe uses of nil and __nonnull pointers.

This generalizes the checking of null arguments to also work with
values of pointer-to-function, reference-to-function, and block
pointer type, using the nullability information within the underling
function prototype to extend non-null checking, and diagnoses returns
of 'nil' within a function with a __nonnull return type.

Note that we don't warn about nil returns from Objective-C methods,
because it's common for Objective-C methods to mimic the nil-swallowing
behavior of the receiver by checking ostensibly non-null parameters
and returning nil from otherwise non-null methods in that
case.

It also diagnoses (via a separate flag) conversions from nullable to
nonnull pointers. It's a separate flag because this warning can be noisy.

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

9 years agoAdd a comment and FIXME based on the commit message that made the
Eric Christopher [Fri, 19 Jun 2015 18:09:33 +0000 (18:09 +0000)]
Add a comment and FIXME based on the commit message that made the
intrinsic _mm_prefetch into a builtin rather than by textual inclusion
via the intrinsic headers.

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

9 years agoAMDGPU: Fix renamed file that was somehow dropped from last commit
Matt Arsenault [Fri, 19 Jun 2015 17:55:06 +0000 (17:55 +0000)]
AMDGPU: Fix renamed file that was somehow dropped from last commit

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

9 years agoAMDGPU: Fix places missed in rename
Matt Arsenault [Fri, 19 Jun 2015 17:54:10 +0000 (17:54 +0000)]
AMDGPU: Fix places missed in rename

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

9 years agoIntroduce type nullability specifiers for C/C++.
Douglas Gregor [Fri, 19 Jun 2015 17:51:05 +0000 (17:51 +0000)]
Introduce type nullability specifiers for C/C++.

Introduces the type specifiers __nonnull, __nullable, and
__null_unspecified that describe the nullability of the pointer type
to which the specifier appertains. Nullability type specifiers improve
on the existing nonnull attributes in a few ways:
  - They apply to types, so one can represent a pointer to a non-null
    pointer, use them in function pointer types, etc.
  - As type specifiers, they are syntactically more lightweight than
    __attribute__s or [[attribute]]s.
  - They can express both the notion of 'should never be null' and
  also 'it makes sense for this to be null', and therefore can more
  easily catch errors of omission where one forgot to annotate the
  nullability of a particular pointer (this will come in a subsequent
  patch).

Nullability type specifiers are maintained as type sugar, and
therefore have no effect on mangling, encoding, overloading,
etc. Nonetheless, they will be used for warnings about, e.g., passing
'null' to a method that does not accept it.

This is the C/C++ part of rdar://problem/18868820.

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

9 years agoFix typo in comment.
Douglas Katzman [Fri, 19 Jun 2015 15:40:00 +0000 (15:40 +0000)]
Fix typo in comment.

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

9 years agoAdd nominal support for 'shave' target.
Douglas Katzman [Fri, 19 Jun 2015 14:55:19 +0000 (14:55 +0000)]
Add nominal support for 'shave' target.

This change passes through C and assembler jobs to Movidius tools by
constructing commands which are the same as ones produces by the examples
in the SDK. But rather than reference MV_TOOLS_DIR to find tools,
we will assume that binaries are installed wherever the Driver would
find its native tools. Similarly, this change assumes that -I options
will "just work" based on where SDK headers get installed, rather than
baking into the Driver some magic paths.

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

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

9 years ago[ASan] Initial support for Kernel AddressSanitizer
Alexander Potapenko [Fri, 19 Jun 2015 12:19:07 +0000 (12:19 +0000)]
[ASan] Initial support for Kernel AddressSanitizer

This patch adds initial support for the -fsanitize=kernel-address flag to Clang.
Right now it's quite restricted: only out-of-line instrumentation is supported, globals are not instrumented, some GCC kasan flags are not supported.
Using this patch I am able to build and boot the KASan tree with LLVMLinux patches from github.com/ramosian-glider/kasan/tree/kasan_llvmlinux.
To disable KASan instrumentation for a certain function attribute((no_sanitize("kernel-address"))) can be used.

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

9 years agoclang-format: Make exception to AlwaysBreakBeforeMultilineStrings more
Daniel Jasper [Fri, 19 Jun 2015 10:32:28 +0000 (10:32 +0000)]
clang-format: Make exception to AlwaysBreakBeforeMultilineStrings more
conservative.

In particular, this fixes an unwanted corner case.

Before:
  string s =
      someFunction("aaaa"
                   "bbbb");

After:
  string s = someFunction(
      "aaaa"
      "bbbb");

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

9 years agoclang-format: Add TypeScript detection to git-clang-format.
Daniel Jasper [Fri, 19 Jun 2015 08:23:10 +0000 (08:23 +0000)]
clang-format: Add TypeScript detection to git-clang-format.

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

9 years agoclang-format: Better fix to detect elaborated enum return types.
Daniel Jasper [Fri, 19 Jun 2015 08:17:32 +0000 (08:17 +0000)]
clang-format: Better fix to detect elaborated enum return types.

The previous one (r240021) regressed:
  enum E Type::f() { .. }

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

9 years ago[ATTRIBUTE] Fixed test compatibility.
Alexey Bataev [Fri, 19 Jun 2015 08:09:27 +0000 (08:09 +0000)]
[ATTRIBUTE] Fixed test compatibility.

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

9 years ago[ATTRIBUTE] Support base vector types of __attribute__((mode)), patch by Alexey Frolov
Alexey Bataev [Fri, 19 Jun 2015 07:46:21 +0000 (07:46 +0000)]
[ATTRIBUTE] Support base vector types of __attribute__((mode)), patch by Alexey Frolov

Base type of attribute((mode)) can actually be a vector type.
The patch is to distinguish between base type and base element type.

This fixes http://llvm.org/PR17453.
Differential Revision: http://reviews.llvm.org/D10058

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

9 years agoCFI: Implement bitset emission for the Microsoft ABI.
Peter Collingbourne [Fri, 19 Jun 2015 02:30:43 +0000 (02:30 +0000)]
CFI: Implement bitset emission for the Microsoft ABI.

Clang's control flow integrity implementation works by conceptually attaching
"tags" (in the form of bitset entries) to each virtual table, identifying
the names of the classes that the virtual table is compatible with. Under
the Itanium ABI, it is simple to assign tags to virtual tables; they are
simply the address points, which are available via VTableLayout. Because any
overridden methods receive an entry in the derived class's virtual table,
a check for an overridden method call can always be done by checking the
tag of whichever derived class overrode the method call.

The Microsoft ABI is a little different, as it does not directly use address
points, and overrides in a derived class do not cause new virtual table entries
to be added to the derived class; instead, the slot in the base class is
reused, and the compiler needs to adjust the this pointer at the call site
to (generally) the base class that initially defined the method. After the
this pointer has been adjusted, we cannot check for the derived class's tag,
as the virtual table may not be compatible with the derived class. So we
need to determine which base class we have been adjusted to.

Specifically, at each call site, we use ASTRecordLayout to identify the most
derived class whose virtual table is laid out at the "this" pointer offset
we are using to make the call, and check the virtual table for that tag.

Because address point information is unavailable, we "reconstruct" it as
follows: any virtual tables we create for a non-derived class receive a tag
for that class, and virtual tables for a base class inside a derived class
receive a tag for the base class, together with tags for any derived classes
which are laid out at the same position as the derived class (and therefore
have compatible virtual tables).

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

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

9 years agoFix Windows test failure.
Peter Collingbourne [Fri, 19 Jun 2015 02:24:25 +0000 (02:24 +0000)]
Fix Windows test failure.

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

9 years agoFix "the the" in comments/documentation/etc.
Eric Christopher [Fri, 19 Jun 2015 01:52:53 +0000 (01:52 +0000)]
Fix "the the" in comments/documentation/etc.

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

9 years agoImplement diagnostic mode for -fsanitize=cfi*, -fsanitize=cfi-diag.
Peter Collingbourne [Fri, 19 Jun 2015 01:51:54 +0000 (01:51 +0000)]
Implement diagnostic mode for -fsanitize=cfi*, -fsanitize=cfi-diag.

This causes programs compiled with this flag to print a diagnostic when
a control flow integrity check fails instead of aborting. Diagnostics are
printed using UBSan's runtime library.

The main motivation of this feature over -fsanitize=vptr is fidelity with
the -fsanitize=cfi implementation: the diagnostics are printed under exactly
the same conditions as those which would cause -fsanitize=cfi to abort the
program. This means that the same restrictions apply regarding compiling
all translation units with -fsanitize=cfi, cross-DSO virtual calls are
forbidden, etc.

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

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

9 years agoFix hexagon test failure.
Peter Collingbourne [Fri, 19 Jun 2015 00:39:59 +0000 (00:39 +0000)]
Fix hexagon test failure.

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

9 years agoIntroduce -fsanitize-trap= flag.
Peter Collingbourne [Thu, 18 Jun 2015 23:59:22 +0000 (23:59 +0000)]
Introduce -fsanitize-trap= flag.

This flag controls whether a given sanitizer traps upon detecting
an error. It currently only supports UBSan. The existing flag
-fsanitize-undefined-trap-on-error has been made an alias of
-fsanitize-trap=undefined.

This change also cleans up some awkward behavior around the combination
of -fsanitize-trap=undefined and -fsanitize=undefined. Previously we
would reject command lines containing the combination of these two flags,
as -fsanitize=vptr is not compatible with trapping. This required the
creation of -fsanitize=undefined-trap, which excluded -fsanitize=vptr
(and -fsanitize=function, but this seems like an oversight).

Now, -fsanitize=undefined is an alias for -fsanitize=undefined-trap,
and if -fsanitize-trap=undefined is specified, we treat -fsanitize=vptr
as an "unsupported" flag, which means that we error out if the flag is
specified explicitly, but implicitly disable it if the flag was implied
by -fsanitize=undefined.

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

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

9 years ago[modules] Merging support for enums with a local definition prior to the first
Richard Smith [Thu, 18 Jun 2015 22:07:00 +0000 (22:07 +0000)]
[modules] Merging support for enums with a local definition prior to the first
imported definition.

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

9 years ago[Driver] Compute MacOS/iOS version from triple if/when we actually need it. NFC.
Alexey Samsonov [Thu, 18 Jun 2015 21:46:05 +0000 (21:46 +0000)]
[Driver] Compute MacOS/iOS version from triple if/when we actually need it. NFC.

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

9 years agoAMDGPU: Add missing GK_VOLCANIC_ISLANDS to switch statement
Tom Stellard [Thu, 18 Jun 2015 21:13:29 +0000 (21:13 +0000)]
AMDGPU: Add missing GK_VOLCANIC_ISLANDS to switch statement

This fixes buildbot failures introduced by r240038.

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

9 years ago[modules] This debugging option doesn't need to match between module creation and...
Richard Smith [Thu, 18 Jun 2015 21:10:28 +0000 (21:10 +0000)]
[modules] This debugging option doesn't need to match between module creation and use.

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

9 years agoAdd -Winfinite-recursion to -Wmost (and -Wall), PR23789.
Nico Weber [Thu, 18 Jun 2015 21:09:24 +0000 (21:09 +0000)]
Add -Winfinite-recursion to -Wmost (and -Wall), PR23789.

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

9 years agoForgot to update to a test in r240043
David Majnemer [Thu, 18 Jun 2015 20:34:05 +0000 (20:34 +0000)]
Forgot to update to a test in r240043

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

9 years ago[MS ABI] Initialize "most general" member pointers which don't point at a vbase
David Majnemer [Thu, 18 Jun 2015 20:20:10 +0000 (20:20 +0000)]
[MS ABI] Initialize "most general" member pointers which don't point at a vbase

The most general model has fields for the vbptr offset and the vbindex.
Don't initialize the vbptr offset if the vbindex is 0: we aren't
referencing an entity from a vbase.

Getting this wrong can make member pointer equality fail.

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

9 years agoWrap to 80 columns, no behavior change.
Nico Weber [Thu, 18 Jun 2015 20:09:49 +0000 (20:09 +0000)]
Wrap to 80 columns, no behavior change.

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

9 years agoR600: Add Volcanic Islands targets
Tom Stellard [Thu, 18 Jun 2015 19:14:15 +0000 (19:14 +0000)]
R600: Add Volcanic Islands targets

Reviewers: arsenm

Subscribers: cfe-commits

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

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

9 years agoAdd missing overrides to MultiplexConsumer. Test coverage will be
Adrian Prantl [Thu, 18 Jun 2015 16:41:53 +0000 (16:41 +0000)]
Add missing overrides to MultiplexConsumer. Test coverage will be
provided by an upcoming commit.

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

9 years agoFix a typo.
Adrian Prantl [Thu, 18 Jun 2015 16:41:51 +0000 (16:41 +0000)]
Fix a typo.

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

9 years agoclang-format: Row back on the AlwaysBreakBeforeMultilineStrings change.
Daniel Jasper [Thu, 18 Jun 2015 16:05:17 +0000 (16:05 +0000)]
clang-format: Row back on the AlwaysBreakBeforeMultilineStrings change.

It was a bit too aggressive.

With this patch, we keep on breaking here:
  aaaaaaaaaaaaa(aaaaaaa,
                "aaaaaaa"
                "bbbbbbb");

But don't break in:
  aaaaaaaaaaaaa(aaaaaaaaaaaaaaa("aaaaaaa"
                                  "bbbbbbb"));

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

9 years agoclang-format: Better support functions with elaborated enum return types.
Daniel Jasper [Thu, 18 Jun 2015 15:45:17 +0000 (15:45 +0000)]
clang-format: Better support functions with elaborated enum return types.

Before, this wasn't formatted properly:
  enum ::C f() {
    return a;
  }

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

9 years agoAllow case-insensitive values for -march for AArch64 target in line with GCC.
Gabor Ballabas [Thu, 18 Jun 2015 14:23:12 +0000 (14:23 +0000)]
Allow case-insensitive values for -march for AArch64 target in line with GCC.

GCC allows case-insensitive values for -mcpu, -march and -mtune options.
This patch implements the same behaviour for the -march option for the AArch64 target.

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

9 years ago[OPENMP] Codegen for 'proc_bind' clause (4.0).
Alexey Bataev [Thu, 18 Jun 2015 13:40:03 +0000 (13:40 +0000)]
[OPENMP] Codegen for 'proc_bind' clause (4.0).

Adds emission of the code for 'proc_bind(master|close|spread)' clause:
call void @__kmpc_push_proc_bind(<loc>, i32 thread_id, i32 4|3|2)

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

9 years agoclang-format: [JS] Add a special case for indenting function literals.
Daniel Jasper [Thu, 18 Jun 2015 12:32:59 +0000 (12:32 +0000)]
clang-format: [JS] Add a special case for indenting function literals.

Before:
  var func =
      function() {
        doSomething();
      };

After:
  var func =
      function() {
    doSomething();
  };

This is a very narrow special case which fixes most of the discrepency
with what our users do. In the long run, we should try to come up with
a more generic fix for indenting these.

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

9 years ago[OPENMP] Support for '#pragma omp taskgroup' directive.
Alexey Bataev [Thu, 18 Jun 2015 12:14:09 +0000 (12:14 +0000)]
[OPENMP] Support for '#pragma omp taskgroup' directive.

Added parsing, sema analysis and codegen for '#pragma omp taskgroup' directive (OpenMP 4.0).
The code for directive is generated the following way:
#pragma omp taskgroup
<body>

void __kmpc_taskgroup(<loc>, thread_id);
<body>
void __kmpc_end_taskgroup(<loc>, thread_id);

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

9 years ago[OPENMP] Fixed test for '#pragma omp parallel for simd'.
Alexey Bataev [Thu, 18 Jun 2015 11:26:55 +0000 (11:26 +0000)]
[OPENMP] Fixed test for '#pragma omp parallel for simd'.

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

9 years ago[clang] Refactoring of conditions so they use isOneOf() instead of multiple is().
Daniel Marjamaki [Thu, 18 Jun 2015 10:59:26 +0000 (10:59 +0000)]
[clang] Refactoring of conditions so they use isOneOf() instead of multiple is().

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

9 years ago[OPENMP] Add support for 'omp parallel for' directive.
Alexey Bataev [Thu, 18 Jun 2015 10:10:12 +0000 (10:10 +0000)]
[OPENMP] Add support for 'omp parallel for' directive.

Codegen for this directive is a combined codegen for 'omp parallel' region with 'omp for simd' region inside. Clauses are supported.

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

9 years agoclang-format: Make AlwaysBreakBeforeMultilineStrings more conservative.
Daniel Jasper [Thu, 18 Jun 2015 09:12:47 +0000 (09:12 +0000)]
clang-format: Make AlwaysBreakBeforeMultilineStrings more conservative.

In essence this is meant to consistently indent multiline strings by a
fixed amount of spaces from the start of the line. Don't do this in
cases where it wouldn't help anyway.

Before:
  someFunction(aaaaa,
               "aaaaa"
               "bbbbb");

After:
  someFunction(aaaaa, "aaaaa"
                      "bbbbb");

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

9 years ago[OPENMP] Add support for 'omp for simd' directive.
Alexey Bataev [Thu, 18 Jun 2015 04:45:29 +0000 (04:45 +0000)]
[OPENMP] Add support for 'omp for simd' directive.

Added codegen for combined 'omp for simd' directives, that is a combination of 'omp for' directive followed by 'omp simd' directive. Includes support for all clauses.

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

9 years ago[Driver] Remove unused class member. NFC.
Alexey Samsonov [Thu, 18 Jun 2015 00:36:40 +0000 (00:36 +0000)]
[Driver] Remove unused class member. NFC.

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

9 years ago[Driver] Simplify code choosing between MacOS and iOS platforms. NFC.
Alexey Samsonov [Thu, 18 Jun 2015 00:36:38 +0000 (00:36 +0000)]
[Driver] Simplify code choosing between MacOS and iOS platforms. NFC.

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

9 years ago[analyzer] Cleanup: $Status is always 0 here.
Anton Yartsev [Wed, 17 Jun 2015 23:25:58 +0000 (23:25 +0000)]
[analyzer] Cleanup: $Status is always 0 here.

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

9 years ago[analyzer] Close file handle before output to file from external command.
Anton Yartsev [Wed, 17 Jun 2015 23:12:33 +0000 (23:12 +0000)]
[analyzer] Close file handle before output to file from external command.

An old code caused problems under Windows - additional temporary file was created for clang preprocessor output while the right output file remained empty.

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

9 years ago[modules] Ensure that if we merge the definitions of two enumerations, that
Richard Smith [Wed, 17 Jun 2015 23:07:50 +0000 (23:07 +0000)]
[modules] Ensure that if we merge the definitions of two enumerations, that
making either of them visible makes the merged definition visible.

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

9 years ago[Driver] Add an assert to Darwin::isTargetMacOS() for consistency.
Alexey Samsonov [Wed, 17 Jun 2015 22:51:12 +0000 (22:51 +0000)]
[Driver] Add an assert to Darwin::isTargetMacOS() for consistency.

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

9 years agoRevert "[Sanitizers] Provide better diagnostic for sanitizers unsupported for target...
Alexey Samsonov [Wed, 17 Jun 2015 22:27:32 +0000 (22:27 +0000)]
Revert "[Sanitizers] Provide better diagnostic for sanitizers unsupported for target triple."

This reverts commit r239953, while I'm investigating assertion
failure from http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/9994/

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

9 years ago[modules] Fix typo in default argument merging.
Richard Smith [Wed, 17 Jun 2015 22:13:23 +0000 (22:13 +0000)]
[modules] Fix typo in default argument merging.

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

9 years ago[Sanitizers] Provide better diagnostic for sanitizers unsupported for target triple.
Alexey Samsonov [Wed, 17 Jun 2015 22:07:28 +0000 (22:07 +0000)]
[Sanitizers] Provide better diagnostic for sanitizers unsupported for target triple.

Summary:
Introduce ToolChain::getSupportedSanitizers() that would return the set
of sanitizers available on given toolchain. By default, these are
sanitizers which don't necessarily require runtime support (i.e.
set from -fsanitize=undefined-trap).

Sanitizers (ASan, DFSan, TSan, MSan etc.) which cannot function
without runtime library are marked as supported only on platforms
for which we actually build these runtimes.

This would allow more fine-grained checks in the future: for instance,
we have to restrict availability of -fsanitize=vptr to Mac OS 10.9+
(PR23539)

Update test cases accrodingly: add tests for certain unsupported
configurations, remove test cases for -fsanitize=vptr + PS4
integration, as we don't build the runtime for PS4 at the moment.

Test Plan: regression test suite

Reviewers: pcc

Subscribers: cfe-commits, filcab, eugenis, thakis, kubabrecka, emaste, rsmith

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

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

9 years agoUpdate clang to take into account the changes to personality fns
David Majnemer [Wed, 17 Jun 2015 20:53:19 +0000 (20:53 +0000)]
Update clang to take into account the changes to personality fns

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

9 years ago[modules] If we merge a template, also track that its parameters are merged so
Richard Smith [Wed, 17 Jun 2015 20:39:41 +0000 (20:39 +0000)]
[modules] If we merge a template, also track that its parameters are merged so
that we know when its default arguments should be visible.

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

9 years ago[modules] Improve diagnostic for a template-id that's invalid because a default
Richard Smith [Wed, 17 Jun 2015 20:16:32 +0000 (20:16 +0000)]
[modules] Improve diagnostic for a template-id that's invalid because a default
argument is not visible.

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

9 years ago[ARM] Replace hard coded metadata arguments in tests with a regex.
Ranjeet Singh [Wed, 17 Jun 2015 19:56:30 +0000 (19:56 +0000)]
[ARM] Replace hard coded metadata arguments in tests with a regex.

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

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

9 years agoCodeGen: Factor out some of the bitset entry creation code. NFC.
Peter Collingbourne [Wed, 17 Jun 2015 19:08:05 +0000 (19:08 +0000)]
CodeGen: Factor out some of the bitset entry creation code. NFC.

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

9 years agoMove xtest to its own file to match the gcc header organization.
Eric Christopher [Wed, 17 Jun 2015 18:42:07 +0000 (18:42 +0000)]
Move xtest to its own file to match the gcc header organization.

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

9 years agoUpdate comments on HLE, RTM, and ADX support for intrinsics.
Eric Christopher [Wed, 17 Jun 2015 18:42:03 +0000 (18:42 +0000)]
Update comments on HLE, RTM, and ADX support for intrinsics.

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

9 years ago[fixit] Use overwriteChangedFiles() to deal with Windows mapped files
Reid Kleckner [Wed, 17 Jun 2015 17:47:30 +0000 (17:47 +0000)]
[fixit] Use overwriteChangedFiles() to deal with Windows mapped files

Fixes one instance of PR17960.

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

9 years agoclang-format: clang-format (NFC)
Daniel Jasper [Wed, 17 Jun 2015 13:08:06 +0000 (13:08 +0000)]
clang-format: clang-format (NFC)

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

9 years agoQualify all types used in AST matcher macros.
Alexander Kornienko [Wed, 17 Jun 2015 12:49:00 +0000 (12:49 +0000)]
Qualify all types used in AST matcher macros.

Summary:
Qualify all types used in AST matcher macros. This makes it possible to
put AST matchers in user code into a namespace other than clang::ast_matchers
and this way prevent ODR violations that could happen when a matcher with the
same name is defined in multiple translation units. Updated comments
accordingly.

Reviewers: djasper, klimek

Reviewed By: djasper, klimek

Subscribers: klimek, cfe-commits

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

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

9 years agoclang-format: Don't generate unnecessary replacements for \r\n line endings.
Daniel Jasper [Wed, 17 Jun 2015 12:23:15 +0000 (12:23 +0000)]
clang-format: Don't generate unnecessary replacements for \r\n line endings.

Patch by Mathieu Champlon. Thank you.

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

9 years agoFix clang/test/Headers/x86intrin-2.c. _readfsbase_u32() is provided in not i686 but...
NAKAMURA Takumi [Wed, 17 Jun 2015 10:40:51 +0000 (10:40 +0000)]
Fix clang/test/Headers/x86intrin-2.c. _readfsbase_u32() is provided in not i686 but x86-64.

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

9 years ago[OPENMP] Fixed failed test for reduction clause in simd constructs.
Alexey Bataev [Wed, 17 Jun 2015 09:51:18 +0000 (09:51 +0000)]
[OPENMP] Fixed failed test for reduction clause in simd constructs.

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

9 years agoclang-format: [JS] Don't put top-level typescript enums on a single line.
Daniel Jasper [Wed, 17 Jun 2015 09:44:07 +0000 (09:44 +0000)]
clang-format: [JS] Don't put top-level typescript enums on a single line.

This makes this consistent with non-typescript enums.

Also shuffle the language-dependent stuff in mustBreakBefore to a
single location.

Patch initiated by Martin Probst.

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

9 years agoclang-format: [JS] Fix typescript enum formatting.
Daniel Jasper [Wed, 17 Jun 2015 09:44:02 +0000 (09:44 +0000)]
clang-format: [JS] Fix typescript enum formatting.

Patch by Martin Probst.

Before:
  enum {
    A,
    B
  } var x = 1;

After:
  enum {
    A,
    B
  }
  var x = 1;

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

9 years agoclang-format: NFC. Add a function to test whether an annotated line
Daniel Jasper [Wed, 17 Jun 2015 09:43:56 +0000 (09:43 +0000)]
clang-format: NFC. Add a function to test whether an annotated line
starts with a given sequence of tokens. Only the one-token version is
used yet, but other usages are coming up momentarily.

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

9 years ago[OPENMP] Code reformatting for omp simd codegen, NFC.
Alexey Bataev [Wed, 17 Jun 2015 07:45:51 +0000 (07:45 +0000)]
[OPENMP] Code reformatting for omp simd codegen, NFC.

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

9 years agoUpdate the intel intrinsic headers to use the target attribute support.
Eric Christopher [Wed, 17 Jun 2015 07:09:32 +0000 (07:09 +0000)]
Update the intel intrinsic headers to use the target attribute support.

This involved removing the conditional inclusion and replacing them
with target attributes matching the original conditional inclusion
and checks. The testcase update removes the macro checks for each
file and replaces them with usage of the __target__ attribute, e.g.:

int __attribute__((__target__(("sse3")))) foo(int a) {
  _mm_mwait(0, 0);
  return 4;
}

This usage does require the enclosing function have the requisite
__target__ attribute for inlining and code generation - also for
any macro intrinsic uses in the enclosing function. There's no change
for existing uses of the intrinsic headers.

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

9 years agoUse a define for per-file function attributes for the Intel intrinsic headers.
Eric Christopher [Wed, 17 Jun 2015 07:09:20 +0000 (07:09 +0000)]
Use a define for per-file function attributes for the Intel intrinsic headers.

This is a precursor to changing them to use the new target attribute
code.

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

9 years ago[OPENMP] Supported reduction clause in omp simd construct.
Alexey Bataev [Wed, 17 Jun 2015 06:21:39 +0000 (06:21 +0000)]
[OPENMP] Supported reduction clause in omp simd construct.

The following code is generated for reduction clause within 'omp simd' loop construct:
#pragma omp simd reduction(op:var)
for (...)
  <body>

alloca priv_var
priv_var = <initial reduction value>;
<loop_start>:
<body> // references to original 'var' are replaced by 'priv_var'
<loop_end>:
var op= priv_var;

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

9 years agoparser: wordsmith diagnostic message
Saleem Abdulrasool [Wed, 17 Jun 2015 03:54:21 +0000 (03:54 +0000)]
parser: wordsmith diagnostic message

Address post-commit commit about the wording of the warning.

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

9 years agoBasic: tweak whitespace in Attr.td
Saleem Abdulrasool [Wed, 17 Jun 2015 03:54:19 +0000 (03:54 +0000)]
Basic: tweak whitespace in Attr.td

Separate two class definitions that had been merged into a single line.  NFC.

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

9 years ago[.gitignore] ignore vim swap files harder
Sean Silva [Wed, 17 Jun 2015 02:21:35 +0000 (02:21 +0000)]
[.gitignore] ignore vim swap files harder

This matches the patterns for vim swap files in llvm/.gitignore

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

9 years agoUpdate for llvm api change.
Rafael Espindola [Tue, 16 Jun 2015 22:32:44 +0000 (22:32 +0000)]
Update for llvm api change.

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

9 years ago[modules] Fix merging of default template arguments onto friend templates.
Richard Smith [Tue, 16 Jun 2015 21:57:05 +0000 (21:57 +0000)]
[modules] Fix merging of default template arguments onto friend templates.

Previously we'd complain about redefinition of default arguments when we
instantiated a class with a friend template that inherits its default argument,
because we propagate the default template arguemnt onto the friend when we
reload the AST.

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

9 years agoHonor the objc_runtime_name attribute when encoding class/protocol names.
Douglas Gregor [Tue, 16 Jun 2015 21:04:55 +0000 (21:04 +0000)]
Honor the objc_runtime_name attribute when encoding class/protocol names.

While the rest of the Objective-C metadata seems to honor
objc_runtime_name, the encoding strings produced by, e.g., @encode and
property meta, were not. Fixes rdar://problem/21408305.

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

9 years agoAdjust clang side tests effected by 239795 before reapplying said change
Philip Reames [Tue, 16 Jun 2015 20:24:06 +0000 (20:24 +0000)]
Adjust clang side tests effected by 239795 before reapplying said change

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

9 years agoparser: diagnose empty attribute blocks
Saleem Abdulrasool [Tue, 16 Jun 2015 20:03:47 +0000 (20:03 +0000)]
parser: diagnose empty attribute blocks

MS attributes do not permit empty attribute blocks.  Correctly diagnose those.
We continue to parse to ensure that we recover correctly.  Because the block is
empty, we do not need to skip any tokens.

Bonus: tweak the comment that I updated but forgot to remove the function name
in a previous commit.

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

9 years agoRemove duplicated alteration to getProgramPaths().
Douglas Katzman [Tue, 16 Jun 2015 19:34:52 +0000 (19:34 +0000)]
Remove duplicated alteration to getProgramPaths().

This appears to have been accidental.

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

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

9 years agoIf/else looks nicer when both branches have (or don't have) braces. NFC
Douglas Katzman [Tue, 16 Jun 2015 18:01:24 +0000 (18:01 +0000)]
If/else looks nicer when both branches have (or don't have) braces. NFC

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

9 years ago[Hexagon] unused-local-typedef warning test is passing.
Colin LeMahieu [Tue, 16 Jun 2015 17:32:45 +0000 (17:32 +0000)]
[Hexagon] unused-local-typedef warning test is passing.

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

9 years ago[SystemZ] Mangle long double as __float128
Ulrich Weigand [Tue, 16 Jun 2015 15:21:47 +0000 (15:21 +0000)]
[SystemZ] Mangle long double as __float128

In r239421, the mangling of long double on PowerPC Linux targets
was changed to use "g" instead of "e".  This same change also needs
to be done for SystemZ (all targets, since we support only Linux
on SystemZ anyway).

This is because an old ABI variant set "long double" to a 64-bit
type equivalent to "double", and the "e" mangling code is still
used to refer to that old ABI for compatibility reasons.

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

9 years ago[mips] Don't propagate -mfpxx by default if soft/single float were also set.
Toma Tabacu [Tue, 16 Jun 2015 13:54:13 +0000 (13:54 +0000)]
[mips] Don't propagate -mfpxx by default if soft/single float were also set.

Summary:
If the driver is only given -msoft-float/-mfloat-abi=soft or -msingle-float,
we should refrain from propagating -mfpxx, unless it was explicitly given on the
command line.

Reviewers: atanasyan, dsanders

Reviewed By: atanasyan, dsanders

Subscribers: cfe-commits, mpf

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

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

9 years agoAvoid using set::emplace as it is apparently not supported by gcc 4.7.
Daniel Jasper [Tue, 16 Jun 2015 13:15:54 +0000 (13:15 +0000)]
Avoid using set::emplace as it is apparently not supported by gcc 4.7.

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

9 years ago[OPENMP] Support lastprivate clause in omp simd directive.
Alexey Bataev [Tue, 16 Jun 2015 13:14:42 +0000 (13:14 +0000)]
[OPENMP] Support lastprivate clause in omp simd directive.

Added codegen for lastprivate clauses within simd loop-based directives.

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

9 years agoRecommit r239721: Replace string GNU Triples with llvm::Triple in InitMCObjectFileInf...
Daniel Sanders [Tue, 16 Jun 2015 12:18:07 +0000 (12:18 +0000)]
Recommit r239721: Replace string GNU Triples with llvm::Triple in InitMCObjectFileInfo. NFC.

Summary:
This affects other tools so the previous C++ API has been retained as a
deprecated function for the moment. Clang has been updated with a trivial
patch (not covered by the pre-commit review) to avoid breaking -Werror builds.
Other in-tree tools will be fixed with similar patches.

This continues the patch series to eliminate StringRef forms of GNU triples
from the internals of LLVM that began in r239036.

The first time this was committed it accidentally fixed an inconsistency in
triples in llvm-mc and this caused a failure. This inconsistency was fixed in
r239808.

Reviewers: rengolin

Reviewed By: rengolin

Subscribers: llvm-commits, rengolin

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

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

9 years ago[OPENMP] Remove last iteration separation for loop-based constructs.
Alexey Bataev [Tue, 16 Jun 2015 11:59:36 +0000 (11:59 +0000)]
[OPENMP] Remove last iteration separation for loop-based constructs.

Previously the last iteration for simd loop-based OpenMP constructs were generated as a separate code. This feature is not required and codegen is simplified.

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

9 years agoTooling: When applying a set of replacements, do deletions before
Daniel Jasper [Tue, 16 Jun 2015 10:22:10 +0000 (10:22 +0000)]
Tooling: When applying a set of replacements, do deletions before
insertions. It is unlikely to be the intention to delete parts of newly
inserted code. To do so, changed sorting Replacements at the same offset
to have decreasing length.

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

9 years agoInstrProf: Fix coverage mapping when "if" is a macro
Justin Bogner [Tue, 16 Jun 2015 06:24:15 +0000 (06:24 +0000)]
InstrProf: Fix coverage mapping when "if" is a macro

We were propagating the coverage map into the body of an if statement,
but not into the condition thereafter. This is fine as long as the two
locations are in the same virtual file, but they won't be when the
"if" part of the statement is from a macro and the condition is not.

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

9 years ago[modules] Rename -fmodule-maps to -fimplicit-module-maps (and likewise for
Richard Smith [Tue, 16 Jun 2015 00:20:23 +0000 (00:20 +0000)]
[modules] Rename -fmodule-maps to -fimplicit-module-maps (and likewise for
-fno-module-maps). The old names are preserved for compatibility.

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

9 years agoCommit some test changes somehow missed in r239789.
Richard Smith [Tue, 16 Jun 2015 00:19:29 +0000 (00:19 +0000)]
Commit some test changes somehow missed in r239789.

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

9 years ago[modules] Simplify -cc1 interface for enabling implicit module maps.
Richard Smith [Tue, 16 Jun 2015 00:08:24 +0000 (00:08 +0000)]
[modules] Simplify -cc1 interface for enabling implicit module maps.

We used to have a flag to enable module maps, and two more flags to enable
implicit module maps. This is all redundant; we don't need any flag for
enabling module maps in the abstract, and we don't usually have -fno- flags for
-cc1. We now have just a single flag, -fimplicit-module-maps, that enables
implicitly searching the file system for module map files and loading them.

The driver interface is unchanged for now. We should probably rename
-fmodule-maps to -fimplicit-module-maps at some point.

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

9 years ago[modules] Remove non-functional driver options -f[no-]modules-implicit-maps.
Richard Smith [Mon, 15 Jun 2015 23:52:34 +0000 (23:52 +0000)]
[modules] Remove non-functional driver options -f[no-]modules-implicit-maps.

These driver options never did anything (they weren't forwarded to the
frontend). Also update the documentation to not mention them.

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

9 years agoAccording to the OpenMP spec, all the preprocessor macros should be
Samuel Antao [Mon, 15 Jun 2015 23:44:27 +0000 (23:44 +0000)]
According to the OpenMP spec, all the preprocessor macros should be
expanded in OpenMP pragmas. This patch adds support for that in -E.

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

9 years ago[modules] Re-enable accidentally-disabled test.
Richard Smith [Mon, 15 Jun 2015 23:39:16 +0000 (23:39 +0000)]
[modules] Re-enable accidentally-disabled test.

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

9 years agoUse a macro for the omnipresent attributes on header functions in Intrin.h.
Eric Christopher [Mon, 15 Jun 2015 23:20:35 +0000 (23:20 +0000)]
Use a macro for the omnipresent attributes on header functions in Intrin.h.

Saves some typing and if someone wants to change them it makes it much easier.

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

9 years agoDebug Info: Turn on ODR type uniquing for (the C++ part of) Objective-C++.
Adrian Prantl [Mon, 15 Jun 2015 23:18:16 +0000 (23:18 +0000)]
Debug Info: Turn on ODR type uniquing for (the C++ part of) Objective-C++.

rdar://problem/20571359

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