[OPENMP] Additional processing of 'omp atomic read' directive.
According to OpenMP standard, Section 2.12.6, atomic Construct, '#pragma omp atomic read' is allowed to be used only for expression statements of form 'v = x;', where x and v (as applicable) are both l-value expressions with scalar type. Patch adds checks for it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222231 91177308-0d34-0410-b5e6-96231b3b80d8
OMPAtomicDirective::Create(): Fix \param. [-Wdocumentation]

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222237 91177308-0d34-0410-b5e6-96231b3b80d8
[Sema] Patch to issue warning on comparing parameters with
nonnull attribute when comparison is always true/false. 
Original patch by Steven Wu. I have added extra code to prevent issuing of
warning  when the nonnull parameter is modified prior to the comparison.
This addition prevents false positives in the most obvious cases.
There may still be false positive warnings in some cases (as one of my tests
indicates), but benefit far outweighs such cases. rdar://18712242


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222264 91177308-0d34-0410-b5e6-96231b3b80d8
This test also requires an aarch64 target.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222268 91177308-0d34-0410-b5e6-96231b3b80d8
Fix 80-column violations, trailing whitespace, comment text.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222269 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Fix space between generic type parameter and square
bracket

Before:
  public Foo<X, Y> [] foos;

After:
  public Foo<X, Y>[] foos;

Patch by Harry Terkelsen. Thank you!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222283 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Add option to disable alignment after opening brackets

Before:
  SomeFunction(parameter,
               parameter);

After:
  SomeFunction(parameter,
      parameter);

Patch by Harry Terkelsen, thank you!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222284 91177308-0d34-0410-b5e6-96231b3b80d8
Update for LLVM API change

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222303 91177308-0d34-0410-b5e6-96231b3b80d8
Standardize on StringMap::insert, removing uses of StringMap::GetOrCreateValue.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222306 91177308-0d34-0410-b5e6-96231b3b80d8
Wrap to 80 columns, no behavior change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222315 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format a recent commit I made

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222317 91177308-0d34-0410-b5e6-96231b3b80d8
Add the exception for strings in logical and expressions to -Wstring-conversion
for C code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222327 91177308-0d34-0410-b5e6-96231b3b80d8
Update for LLVM API change to make Small(Ptr)Set::insert return pair<iterator, bool> as per the C++ standard's associative container concept.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222335 91177308-0d34-0410-b5e6-96231b3b80d8
Allow EmitVAArg() to promote types and use this to fix some N32/N64 vararg issues for Mips.

Summary:
With this patch, passing a va_list to another function and reading 10 int's from
it works correctly on a big-endian target.

Based on a pair of patches by David Chisnall, one of which I've reworked
for the current trunk.

Reviewers: theraven, atanasyan

Reviewed By: theraven, atanasyan

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222339 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: [Java] Ignore C++-specific keywords

Before:
  public void union
  (Object o);
  public void struct
  (Object o);
  public void delete (Object o);

After:
  public void union(Object o);
  public void struct(Object o);
  public void delete(Object o);

Patch by Harry Terkelsen, thank you!

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

Fix a typo in the search path identified by Justin Bogner.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222371 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a temporary MDNode leak.

While emitting debug information for function forward decalrations, we
create DISubprogram objects that aran't stored in the AllSubprograms
list, and thus won't get finalized by the DIBuilder. During the DIBuilder
finalize(), the temporary MDNode allocated for the DISubprogram
Variables field gets RAUWd with a non temporary DIArray. For the forward
declarations, simply delete that temporary node before we delete the
parent node, so that it doesn't leak.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222373 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: Don't emit a 'global variable' when a static member declaration is referenced without a definition, just ensure the enclosing class (with the static member declaration) is emitted.

Addresses PR21511 by emitting appropriate metadata rather than
faux-global definitions for a variable that doesn't have a definition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222377 91177308-0d34-0410-b5e6-96231b3b80d8
Fix bug where a trivial constexpr copy/move operation couldn't copy from an
empty non-constexpr object. Such a copy doesn't break any of the constexpr
rules.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222387 91177308-0d34-0410-b5e6-96231b3b80d8
Constify a few IdentifierInfo * parameters.

No functionality change.

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