[C++11] Use 'nullptr'. Frontend edition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209389 91177308-0d34-0410-b5e6-96231b3b80d8
[C++11] Use 'nullptr'. Serialization edition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209392 91177308-0d34-0410-b5e6-96231b3b80d8
Frontend: Propagate ASTReaderListener API in ChainedASTReaderListener

ASTReaderListener's documentation states that visitInputFile will be
called based on the return values of needsInputFileVisitation and
needsSystemInputFileVisitation, but ChainedASTReaderListener may call
these methods on a child listener based on the values returned by the
other child.

Even worse, the calls to visitInputFile may be short-circuited due to
the use of the boolean or, so the calls to visit may not occur at all
for the second listener.

This updates ChainedASTReaderListener::visitInputFile to propagate the
ASTReaderListener behaviour to both children.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209394 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Correctly calculate line lenghts for nest blocks.

If simple (one-statement) blocks can be inlined, the length needs to be
calculated correctly.

Before (in JavaScript but this also affects lambdas, etc.):
  var x = {
    valueOf: function() { return 1; }
  };

After:
  var x = {valueOf: function() { return 1; }};

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209410 91177308-0d34-0410-b5e6-96231b3b80d8
This patch adds a helper class (CGLoopInfo) for marking memory instructions with llvm.mem.parallel_loop_access metadata.
It also adds a simple initial version of codegen for pragma omp simd (it will change in the future to support all the clauses).

Differential revision: http://reviews.llvm.org/D3644



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209411 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Correctly identify multiplications in braces init lists.

Before:
  int i{a *b};

After:
  int i{a * b};

Also fix unrelated issue where braced init lists were counted as blocks
and prevented single-line functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209412 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: [JS] Understand line breaks in concatenated strings.

Before:
  var literal = 'hello ' + 'world';

After:
  var literal = 'hello ' +
                'world';

There is no reason to concatenated two string literals with a '+' unless
the line break is intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209413 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Fix vim-integration for empty files.

Discovered by Ahmed Charles in http://reviews.llvm.org/D3018.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209417 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Store pointers to seen formatting states.

As the memory ownership is handled by the SpecificBumpPtrAllocator
anyway, there is no need to duplicate states when inserting them into
the Seen-set. This leads to an improvement of ~10% on the benchmark
formatting file.

No functional changes intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209422 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Fix incorrect braced init identification.

Before:
  int foo(int i) {
    return fo1 {}
    (i);
  }
  int foo(int i) {
    return fo1 {}
    (i);
  }

After:
  int foo(int i) { return fo1{}(i); }
  int foo(int i) { return fo1{}(i); }

This fixes llvm.org/PR19812.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209428 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Fix braced list detection.

Before:
  static_assert(std::is_integral<int> {} + 0, "");
  int a = std::is_integral<int> {}
  + 0;

After:
  static_assert(std::is_integral<int>{} + 0, "");
  int a = std::is_integral<int>{} + 0;

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209431 91177308-0d34-0410-b5e6-96231b3b80d8
Use stack protector strong by default on OpenBSD.

Use stack protector strong by default to match the base OS and ports/packages
compiler policy.

Patch by Brad Smith.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209433 91177308-0d34-0410-b5e6-96231b3b80d8
MachO: perform ARM ABI detection even for non-Darwin triples.

When "-arch armv7m" is specified, we want "aapcs", for example.

rdar://problem/16581138

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

This reverts r209433. Sorry about that, it needs a test & better message.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209435 91177308-0d34-0410-b5e6-96231b3b80d8
MachO: look for nearby tools on all MachO platforms.

This brings "-arch armv7m" (etc) behaviour more in line with what's expected
for developers on OS X, and allows Clang to find an "ld" (for example) in the
same directory instead of using the default /usr/bin/ld.

Unfortunately no test because it relies on the specific place Clang is running
from.

rdar://problem/16427320

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209437 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Fix corner case in AllowShortBlocksOnASingleLine.

Before:
  template <int> struct A4 { A4() { }
  };

After:
  template <int i> struct A4 {
    A4() {}
  };

This fixes llvm.org/PR19813 (at least the part that isn't working as
intended).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209438 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Don't use Allman brace breaking for ObjC blocks.

It just seems wrong. This fixes llvm.org/PR19736.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209440 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Introduce DisableFormat that prevents formatting.

And "none" pseudo-style indicating that formatting should be not
applied.

(1) Using .clang-format with "DisableFormat: true" effectively prevents
formatting for all files within the folder containing such .clang-format
file.

(2) Using -fallback-style=none together with -style=file prevents
formatting when .clang-format is not found, which can be used in on-save
callback.

Patch by Adam Strzelecki. Thank you!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209446 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Add basic test for -style=none.

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