clang-format: Fixed formatting of JavaScript container literals

Before:
  var arr = [ 1, 2, 3 ];
  var obj = {a : 1, b : 2, c : 3};

After:
  var arr = [1, 2, 3];
  var obj = {a: 1, b: 2, c: 3};

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199317 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Print function name when dumping its CFG.

This allows us to use CHECK-LABEL to ensure that we're checking the right CFG.

Debugging change only.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199320 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] BlockCall shouldn't really be an AnyFunctionCall.

Per discussion with Anna a /long/ time ago, it was way too easy to misuse
BlockCall: because it inherited from AnyFunctionCall (through SimpleCall),
getDecl() was constrained to return a FunctionDecl, and you had to call
getBlockDecl() instead. This goes against the whole point of CallEvent
(to abstract over different ways to invoke bodies of code).

Now, BlockCall just inherits directly from CallEvent. There's a bit of
duplication in getting things out of the origin expression (which is still
known to be a CallExpr), but nothing significant.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199321 91177308-0d34-0410-b5e6-96231b3b80d8
Make -fno-inline attach NoInline attribute to all functions that are not
marked as AlwaysInline or ForceInline.

This moves us to what gcc does with -fno-inline. The attribute approach
was discussed to be better than switching to InlineAlways inliner in presence
of LTO.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199324 91177308-0d34-0410-b5e6-96231b3b80d8
Ensure i686-nacl long long is aligned 8 bytes (like malign-double)

Set NaCl OSTargetInfo to have LongLongAlign = 64. Otherwise, it will
pick up the setting of 32 from X86_32TargetInfo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199335 91177308-0d34-0410-b5e6-96231b3b80d8
Remove support for armv7f slice. <rdar://problem/12478440>

This was never used for anything so we should just get rid of it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199336 91177308-0d34-0410-b5e6-96231b3b80d8
Disable and XFAIL a test that never worked

-verify was simply ignored by the driver.

This commit fixes the RUN line and XFAILs the test, unblocking changes to ban
use of the driver in Sema tests and avoid problems like this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199347 91177308-0d34-0410-b5e6-96231b3b80d8
Forbid driver use in Sema tests

This ports the last Sema tests over to use the frontend directly, and adds a
local lit substitution to disable inappropriate %clang usage under this
directory.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199348 91177308-0d34-0410-b5e6-96231b3b80d8
MachO: use *-*-*-macho for MachO embedded targets.

Previously we had bodged together some hacks mapping MachO embedded
targets (i.e. mainly ARM v6M and v7M) to the "*-*-darwin-eabi" triple.
This is incorrect in both details (they don't run Darwin and they're
not EABI in any real sense).

This commit appropriates the existing "MachO" environment for the
purpose instead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199367 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Enable formatting of lambdas with explicit return type.

So clang-format can now format:

  int c = []()->int { return 2; }();
  int c = []()->vector<int> { return { 2 }; }();

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199368 91177308-0d34-0410-b5e6-96231b3b80d8
[asan] Remove -fsanitize-address-zero-base-shadow command line
flag from clang, and disable zero-base shadow support on all platforms
where it is not the default behavior.

- It is completely unused, as far as we know.
- It is ABI-incompatible with non-zero-base shadow, which means all
objects in a process must be built with the same setting. Failing to
do so results in a segmentation fault at runtime.
- It introduces a backward dependency of compiler-rt on user code,
which is uncommon and complicates testing.

This is the Clang part of a larger change.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199372 91177308-0d34-0410-b5e6-96231b3b80d8
Sema: Fix crash during member pointer conversion involving incomplete classes

We would attempt to determine the inheritance relationship between
classes 'A' and 'B' during static_cast if we tried to convert from 'int
A::*' to 'int B::*'.  However, the question "does A derive from B" is
not meaningful when 'A' isn't defined.

Handle this case by requiring that 'A' be defined.

This fixes PR18506.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199374 91177308-0d34-0410-b5e6-96231b3b80d8
Distinguish between attributes explicitly written at the request of the user, and attributes implicitly generated to assist in bookkeeping by the compiler. This is done so by table generating a CreateImplicit method for each attribute.

Additionally, remove the optional nature of the spelling list index when creating attributes. This is supported by table generating a Spelling enumeration when the spellings for an attribute are distinct enough to warrant it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199378 91177308-0d34-0410-b5e6-96231b3b80d8
Giving the asm attribute some keyword spellings based off of GCC's documentation. No functional changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199382 91177308-0d34-0410-b5e6-96231b3b80d8
[ASan] Describe online/offline symbolization of reports, mention dsymutil.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199383 91177308-0d34-0410-b5e6-96231b3b80d8
[ASan] Typo fix (symbolize=0 disables online symbolization)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199385 91177308-0d34-0410-b5e6-96231b3b80d8
Factored some function-like type reasoning out of SemaDeclAttr and onto Decl itself. This allows for more declarative subjects in attribute tablegen where the attribute appertains to something function-like, but not strictly a FunctionDecl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199387 91177308-0d34-0410-b5e6-96231b3b80d8
[ASan] Enough to have llvm-symbolizer in $PATH.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199388 91177308-0d34-0410-b5e6-96231b3b80d8
Fixing a warning that causes the sanitizer build disliked about mixing && and ||. Since this is generated code, the && has been removed from the expression entirely.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199392 91177308-0d34-0410-b5e6-96231b3b80d8
www: link to the planet clang newsfeed

Also shuffle the Communication section so the bug tracker comes first.

(The sidebar isn't scrollable at the moment so this gives a better chance of
the bug tracker being seen. The links further down are basically invisible --
we should look into that.)

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