Attributes: Emit enumerators in td file declaration order

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201246 91177308-0d34-0410-b5e6-96231b3b80d8
Revert "Remove bad debug info test."

This reverts commit r201183.
The test, albeit undocumented and badly written is still testing something
useful. It will be updated in a subsequent commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201247 91177308-0d34-0410-b5e6-96231b3b80d8
Document and improve the debug-property-synth.m test based on the
information provided in the referenced radar.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201248 91177308-0d34-0410-b5e6-96231b3b80d8
libclang: report error code for bad PCH files

This commit improves libclang to report the error condition when
CXTranslationUnit can not be created because of a stale PCH file.  This allows
the caller, for example, to rebuild the PCH file and retry the request.

There two are APIs in libclang that return a CXTranslationUnit and don't
support reporting detailed errors (the only error condition is a NULL result).
For these APIs, a second, superior, version is introduced --
clang_createTranslationUnit2 and clang_parseTranslationUnit2.  These functions
return a CXTranslationUnit indirectly and also return an error code.  Old
functions are still supported and are nothing more than convenience wrappers
that ignore extended error codes.

As a cleanup, this commit also categorizes some libclang errors in the
functions I had to modify anyway.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201249 91177308-0d34-0410-b5e6-96231b3b80d8
relax testcase and make ppc64 buildbots happy.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201250 91177308-0d34-0410-b5e6-96231b3b80d8
Attributes: Avoid a big useless copy in the emitter

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201251 91177308-0d34-0410-b5e6-96231b3b80d8
Sema: Restrict alignment to 2**28.

Allowing alignment past this point causes wrap around within clang.

N.B.  GCC has the same restriction.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201254 91177308-0d34-0410-b5e6-96231b3b80d8
[examples] Use loadable modules instead of shared libraries for Clang plugins.

This avoids linking in extra copies of, say, LLVMSupport.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201257 91177308-0d34-0410-b5e6-96231b3b80d8
Remove FIXME and hardcoded triple from this test (PR18251)

We don't support using the MS ABI with non-x86/x86_64 targets anyway.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201260 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Implement #pragma vtordisp() and clang-cl /vdN

These features are new in VS 2013 and are necessary in order to layout
std::ostream correctly.  Currently we have an ABI incompatibility when
self-hosting with the 2013 stdlib in our convertible_fwd_ostream wrapper
in gtest.

This change adds another implicit attribute, MSVtorDispAttr, because
implicit attributes are currently the best way to make sure the
information stays on class templates through instantiation.

Reviewers: majnemer

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201274 91177308-0d34-0410-b5e6-96231b3b80d8
Silence unused variable warning in CIndex.cpp with NDEBUG

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201276 91177308-0d34-0410-b5e6-96231b3b80d8
Fix some -Wdocumentation warnings in Sema.h and try to fix test for win64

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201278 91177308-0d34-0410-b5e6-96231b3b80d8
Fix uninitialized read in vtordisp pragma code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201280 91177308-0d34-0410-b5e6-96231b3b80d8
Change testcase to use FileCheck.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201281 91177308-0d34-0410-b5e6-96231b3b80d8
ms_struct layout replaces platform-specific behavior like
useBitFieldTypeAlignment() and appears to ignore the special
bit-packing semantics of __attribute__((packed)).

Further flesh out an already-extensive comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201282 91177308-0d34-0410-b5e6-96231b3b80d8
Really fix unused variable warnings in CIndex.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201285 91177308-0d34-0410-b5e6-96231b3b80d8
Fixing a compiler assertion with zero-width bit-fields in packed structs.
According to the GNU docs, zero-sized bitfields should not be affected by the
packed attribute.

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



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201288 91177308-0d34-0410-b5e6-96231b3b80d8
Use simpler version of llvm::sys::fs::create_directories.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201290 91177308-0d34-0410-b5e6-96231b3b80d8
Use simpler version of fs::create_directory.

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