No longer accepting attribute spellings with prefix and suffix underscores except for GNU attributes, or C++11-style attributes in the GNU namespace. This prevents attributes such as __declspec(__dllexport__) or [[__noreturn__]] from being treated as known attributes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197082 91177308-0d34-0410-b5e6-96231b3b80d8
[ms-abi][cleanup] Removing FinalizeCXXLayout : no functional change

After r196549 there is no need to separate FinalizeCXXLayout and 
FinalizeLayout so they were merged and FinalizeCXXLayout was eliminated.




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197083 91177308-0d34-0410-b5e6-96231b3b80d8
Remove extra qualification to fix build with g++ after r197076

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197086 91177308-0d34-0410-b5e6-96231b3b80d8
[AArch64] Refactor NEON floating-point Max/Min/Maxnm/Minnm across vector AArch64
intrinsics to use f32 types, rather than their vector equivalents.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197091 91177308-0d34-0410-b5e6-96231b3b80d8
Change semantics of regex expectations in the diagnostic verifier

Previously, a line like

  // expected-error-re {{foo}}

treats the entirety of foo as a regex. This is inconvenient when matching type
names containing regex characters. For example, to match
"void *(class test8::A::*)(void)" inside such a regex, one would have to type
"void \*\(class test8::A::\*\)\(void\)".

This patch changes the semantics of expected-error-re to only treat the parts
of the directive wrapped in double curly braces as regexes. This avoids the
escaping problem and leads to nicer patterns for those cases; see e.g. the
change to test/Sema/format-strings-scanf.c.

(The balanced search for closing }} of a directive also makes us handle the
full directive in test\SemaCXX\constexpr-printing.cpp:41 and :53.)

Differential Revision: http://llvm-reviews.chandlerc.com/D2388

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197092 91177308-0d34-0410-b5e6-96231b3b80d8
Add new PrintingPolicy entry to trim number of newlines.  Useful for the CFG printer.

The change isn't completely comprehensive.  This can be filled in
lazily as needed.  There is one consumer right now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197093 91177308-0d34-0410-b5e6-96231b3b80d8
Add CFG tests for switch's involving "extended" enum.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197094 91177308-0d34-0410-b5e6-96231b3b80d8
Use llvm::Regex::Escape in VerifyDiagnosticConsumer.cpp

This depends on LLVM r197096.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197101 91177308-0d34-0410-b5e6-96231b3b80d8
Objective-C migrator: when inferring 'readonly' property of an
Objective-C object conforming to 'NSCopying' protocol, infer
a 'copy' property, instead of 'strong'. // rdar://15525937


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197102 91177308-0d34-0410-b5e6-96231b3b80d8
PR18217: Rewrite JumpDiagnostics' handling of temporaries, to correctly handle
declarations that might lifetime-extend multiple temporaries. In passing, fix a
crasher (PR18217) if an initializer was dependent and exactly the wrong shape,
and remove a bogus function (Expr::findMaterializedTemporary) now its last use
is gone.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197103 91177308-0d34-0410-b5e6-96231b3b80d8
Added a Subjects clause to the section attribute and made its diagnostics more consistent with other attributes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197104 91177308-0d34-0410-b5e6-96231b3b80d8
Switching to using hasGlobalStorage instead of !hasLocalStorage for better clarity.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197110 91177308-0d34-0410-b5e6-96231b3b80d8
Revert r197076: "[objcmt] When emitting a remap file, use a json format
with the edit entries, instead of applying the changes"

(And also revert the follow-up r197086.)

This seems to have broken Linux builds, which were failing with the following:

/build/buildbot/osu8/clang-x86_64-linux-selfhost-rel/llvm.obj/Release+Asserts/lib/libclang.so:
error: undefined reference to
'clang::ento::objc_retain::CallEffects::getEffect(clang::ObjCMethodDecl const*)'
/build/buildbot/osu8/clang-x86_64-linux-selfhost-rel/llvm.obj/Release+Asserts/lib/libclang.so:
error: undefined reference to
'clang::ento::objc_retain::CallEffects::getEffect(clang::FunctionDecl const*)'
collect2: error: ld returned 1 exit status

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197111 91177308-0d34-0410-b5e6-96231b3b80d8
Fix Incorrect CHECK message [0-31]+ in test case.
In regular expression, [0-31]+ equals to [0-3]+, not the number from
0 to 31. So change it to [0-9]+.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197112 91177308-0d34-0410-b5e6-96231b3b80d8
Fix autoconf build in libclang since r197075, (has been reverted in r197111).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197114 91177308-0d34-0410-b5e6-96231b3b80d8
Re-apply r197076 and r197086; the build was fixed by chapuni in r197114.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197116 91177308-0d34-0410-b5e6-96231b3b80d8
Update user manual to note that implementation for C++11 and C++1y is complete, and fix a bunch of other issues here.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197120 91177308-0d34-0410-b5e6-96231b3b80d8
PR17602: check accessibility when performing an implicit derived-to-base
conversion on the LHS of a .* or ->*. Slightly improve diagnostics in case
of an ambiguous base class.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197125 91177308-0d34-0410-b5e6-96231b3b80d8
Add more test cases for 'objc_protocol_requires_explicit_implementation'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197128 91177308-0d34-0410-b5e6-96231b3b80d8
c-arcmt-test/Makefile: Fixup for LDFLAGS=-static on cygming, corresponding to r197116.

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