]> granicus.if.org Git - clang/log
clang
10 years agoMoving the documentation for the type safety checking attributes into AttrDocs. If...
Aaron Ballman [Fri, 21 Feb 2014 14:14:04 +0000 (14:14 +0000)]
Moving the documentation for the type safety checking attributes into AttrDocs. If a custom heading is provided, do not automatically generate the alternate spelling list. This is necessary because some attributes have distinct semantic spellings and meanings, but use the same semantic attribute internally. Such attributes should have multiple elements in their documentation list, but not show all spellings. At some point, it would be nice to have a way to attach the documentation element to a specific spelling for these cases.

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

10 years agoMoving the documentation for the sanitizer negation attributes into AttrDocs.
Aaron Ballman [Fri, 21 Feb 2014 13:44:43 +0000 (13:44 +0000)]
Moving the documentation for the sanitizer negation attributes into AttrDocs.

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

10 years agoRemove commas at the end of lists (C++11 again)
Tim Northover [Fri, 21 Feb 2014 12:16:59 +0000 (12:16 +0000)]
Remove commas at the end of lists (C++11 again)

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

10 years agoARM & AArch64: use table for EmitCommonNeonBuiltinExpr
Tim Northover [Fri, 21 Feb 2014 11:57:24 +0000 (11:57 +0000)]
ARM & AArch64: use table for EmitCommonNeonBuiltinExpr

This extends the intrinsic lookup table format slightly, and adds
entries for use the shared ARM/AArch64 definitions. The benefit is
currently smaller than for the SISD intrinsics (there's more custom
code implementing this set), but a few lines are saved and there's
scope for future expansion.

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

10 years agoAArch64: refactor table-driven NEON lookup.
Tim Northover [Fri, 21 Feb 2014 11:57:20 +0000 (11:57 +0000)]
AArch64: refactor table-driven NEON lookup.

This extracts the table-driven intrinsic lookup phase into a separate
function, to be used by EmitCommonNeonBuiltinExpr soon.

It also simplifies the logic used in that lookup, since VectorCastArgN
and ScalarArgN were actually identical.

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

10 years agoAdd support for FPv4-SP to the clang driver
Oliver Stannard [Fri, 21 Feb 2014 10:39:15 +0000 (10:39 +0000)]
Add support for FPv4-SP to the clang driver

Added two new options for -mfpu when targetting ARM:
* fpv4-sp-d16
* fp4-sp-d16

The first is the same spelling as gcc.

The lack of a leading `v' is correct, this is consistent with ARM's
documentation and gcc's spelling of the option.

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

10 years ago[CMake] Get rid of explicit dependencies to include/clang/*.inc and introduce CLANG_T...
NAKAMURA Takumi [Fri, 21 Feb 2014 07:59:59 +0000 (07:59 +0000)]
[CMake] Get rid of explicit dependencies to include/clang/*.inc and introduce CLANG_TABLEGEN_TARGETS.

This does;
  - clang_tablegen() adds each tblgen'd target to global property CLANG_TABLEGEN_TARGETS as list.
  - List of targets is added to LLVM_COMMON_DEPENDS.
  - all clang libraries and targets depend on generated headers.

You might wonder this would be regression, but in fact, this is little loss.
  - Almost all of clang libraries depend on tblgen'd files and clang-tblgen.
  - clang-tblgen may cause short stall-out but doesn't cause unconditional rebuild.
  - Each library's dependencies to tblgen'd files might vary along headers' structure.
    It made hard to track and update *really optimal* dependencies.

Each dependency to intrinsics_gen and ClangSACheckers is left as DEPENDS.

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

10 years agoFix gcc -Wparentheses warning.
Patrik Hagglund [Fri, 21 Feb 2014 07:23:53 +0000 (07:23 +0000)]
Fix gcc -Wparentheses warning.

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

10 years agoAccept -no-integrated-as in -cc1 and forward it to llvm.
Rafael Espindola [Fri, 21 Feb 2014 03:14:07 +0000 (03:14 +0000)]
Accept -no-integrated-as in -cc1 and forward it to llvm.

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

10 years agoMS ABI: Include the vfptr offset in memptrs to virtual methods
Reid Kleckner [Fri, 21 Feb 2014 02:27:32 +0000 (02:27 +0000)]
MS ABI: Include the vfptr offset in memptrs to virtual methods

Virtual methods expect 'this' to point to the vfptr containing the
virtual method, and this extends to virtual member pointer thunks.  The
relevant vfptr is always at offset zero on entry to the thunk, and no
this adjustment is needed.

Previously we would not include the vfptr adjustment in the member
pointer, and we'd look at the vfptr offset when loading from the vftable
in the thunk.

Fixes PR18917.

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

10 years ago[MS-ABI] Update to zero-sized padding algorithm
Warren Hunt [Fri, 21 Feb 2014 01:40:35 +0000 (01:40 +0000)]
[MS-ABI] Update to zero-sized padding algorithm
Slight change to the way zero-sized sub-objects are tracked in the
presence of virtual bases.
In addition we correctly distinguish between dsize and nvsize.
addresses http://llvm.org/bugs/show_bug.cgi?id=18826
Unit tests are included.

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

10 years agoFix an assertion failure when invoking dsymutil.
Bob Wilson [Fri, 21 Feb 2014 00:20:07 +0000 (00:20 +0000)]
Fix an assertion failure when invoking dsymutil.

There is no bound architecture for the dsymutil action in the driver. Trying
to check various properties of the target will cause an assertion failure
because the target doesn't get initialized without a bound architecture.
<rdar://problem/16111555>

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

10 years ago[analyzer] Fix a bug in IdenticalExprChecker concerning while loops.
Jordan Rose [Fri, 21 Feb 2014 00:18:31 +0000 (00:18 +0000)]
[analyzer] Fix a bug in IdenticalExprChecker concerning while loops.

Somehow both Daniel and I missed the fact that while loops are only identical
if they have identical bodies.

Patch by Daniel Fahlgren!

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

10 years agoRevert the removal of PPCallbacks::PragmaComment() in r201821
Reid Kleckner [Thu, 20 Feb 2014 23:37:45 +0000 (23:37 +0000)]
Revert the removal of PPCallbacks::PragmaComment() in r201821

The pp-trace clang tool was using it successfully.  We can still delete
the callbacks in Frontend/PrintPreprocessedOutput.cpp because they were
effectively dead.

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

10 years agoSema: Do not assert when dereferencing member pointer using virtual inheritance with...
David Majnemer [Thu, 20 Feb 2014 23:22:07 +0000 (23:22 +0000)]
Sema: Do not assert when dereferencing member pointer using virtual inheritance with an incomplete class type

The MS ABI requires that we determine the vbptr offset if have a
virtual inheritance model.  Instead, raise an error pointing to the
diagnostic when this happens.

This fixes PR18583.

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

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

10 years agoRevert "Enable MSRecordLayout in the presence of external sources."
Reid Kleckner [Thu, 20 Feb 2014 23:07:29 +0000 (23:07 +0000)]
Revert "Enable MSRecordLayout in the presence of external sources."

This reverts commit r201810.

It was failing these tests on my workstation:
    Clang :: CodeGen/override-layout.c
    Clang :: CodeGenCXX/override-layout.cpp
    Clang :: PCH/check-deserializations.cpp

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

10 years agoExpand macros in pragmas with -fms-extensions and -E
Reid Kleckner [Thu, 20 Feb 2014 22:59:51 +0000 (22:59 +0000)]
Expand macros in pragmas with -fms-extensions and -E

gcc never expands macros in pragmas and MSVC always expands macros
before processing pragmas.  Clang usually allows macro expansion, except
in a handful of pragmas, most of which are handled by the lexer.

Also remove PPCallbacks for pragmas that are currently handled in the
parser.  Without a Parser, such as with clang -E, these callbacks would
never be called.

Fixes PR18576.

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

10 years agoHide pragma handler classes in ParsePragma.cpp
Reid Kleckner [Thu, 20 Feb 2014 22:52:09 +0000 (22:52 +0000)]
Hide pragma handler classes in ParsePragma.cpp

This reduces the number of files we need to touch to add a new pragma,
and reduces the number of externally visible symbols in clang.

Make the handlers structs instead of classes because the vast majority
have no private members.

Reviewers: rsmith

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

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

10 years agoRecommit virtual file system
Ben Langmuir [Thu, 20 Feb 2014 21:59:23 +0000 (21:59 +0000)]
Recommit virtual file system

Previously reverted in r201755 due to causing an assertion failure.

I've removed the offending assertion, and taught the CompilerInstance to
create a default virtual file system inside createFileManager. In the
future, we should be able to reach into the CompilerInvocation to
customize this behaviour without breaking clients that don't care.

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

10 years agoEnable MSRecordLayout in the presence of external sources.
Warren Hunt [Thu, 20 Feb 2014 20:14:29 +0000 (20:14 +0000)]
Enable MSRecordLayout in the presence of external sources.

External sources shouldn't prevent the layout engine from using
MSLayout.  If lldb were to support debugging in microsoft mode, some
code will need to be added to MSRecordLayoutBuilder to handel external
layouts.

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

10 years agoClarify comment.
Adrian Prantl [Thu, 20 Feb 2014 19:51:46 +0000 (19:51 +0000)]
Clarify comment.

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

10 years agoAdd TemplateSpecializationType polymorphism for hasTemplateArgument and
Peter Collingbourne [Thu, 20 Feb 2014 19:18:03 +0000 (19:18 +0000)]
Add TemplateSpecializationType polymorphism for hasTemplateArgument and
hasAnyTemplateArgument, and (out of necessity) an isExpr matcher.

Also updates the TemplateArgument doxygen to reflect reality for
non-canonical template arguments.

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

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

10 years agoadd a comment.
Adrian Prantl [Thu, 20 Feb 2014 17:57:37 +0000 (17:57 +0000)]
add a comment.

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

10 years agoRevert "Remove dead option."
Adrian Prantl [Thu, 20 Feb 2014 17:53:17 +0000 (17:53 +0000)]
Revert "Remove dead option."
Some tests in debuginfo-tests require the system-darwin feature.

This reverts commit 179670.

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

10 years ago[CMake] Fix installation without CLANG_BUILD_EXAMPLES
Jordan Rose [Thu, 20 Feb 2014 17:43:31 +0000 (17:43 +0000)]
[CMake] Fix installation without CLANG_BUILD_EXAMPLES

When CLANG_BUILD_EXAMPLES is not on we set the EXCLUDE_FROM_ALL
directory property for the examples/ directory to tell CMake not to
build them by default.  The AddLLVM.cmake APIs are not aware of this and
try to install targets that are not built.  This does not cause an
install-time error because CMake excludes the directory from the default
installation.  However, now that installation attaches targets to the
LLVMExports export set CMake-based applications that find_package(LLVM)
fail because the example plugin binary is not available.

Tell the AddLLVM.cmake APIs to exclude the examples from installation by
setting the EXCLUDE_FROM_ALL variable they check.

Patch by Brad King!

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

10 years agoRemove unused diagnostic.
Benjamin Kramer [Thu, 20 Feb 2014 17:05:44 +0000 (17:05 +0000)]
Remove unused diagnostic.

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

10 years agoSema: Emit a warning for non-null terminated format strings and other pathological...
Benjamin Kramer [Thu, 20 Feb 2014 17:05:38 +0000 (17:05 +0000)]
Sema: Emit a warning for non-null terminated format strings and other pathological cases.

PR18905.

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

10 years agoFix typo.
Rafael Espindola [Thu, 20 Feb 2014 16:44:12 +0000 (16:44 +0000)]
Fix typo.

Patch by Stephan Falke.

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

10 years ago[mips] Make it impossible to have UnknownABI in CodeGen and Integrated Assembler.
Daniel Sanders [Thu, 20 Feb 2014 14:58:19 +0000 (14:58 +0000)]
[mips] Make it impossible to have UnknownABI in CodeGen and Integrated Assembler.

Summary:
This removes the need to coerce UnknownABI to the default ABI (O32 for
MIPS32, N64 for MIPS64 [*]) in both MipsSubtarget and MipsAsmParser.

Clang has been updated to disable both possible default ABI's before enabling
the ABI it intends to use.

[*] N64 being the default for MIPS64 is not actually correct.
    However N32 is not fully implemented/tested yet.

Depends on: D2830

Reviewers: jacksprat, matheusalmeida

Reviewed By: matheusalmeida

Differential Revision: http://llvm-reviews.chandlerc.com/D2832
Differential Revision: http://llvm-reviews.chandlerc.com/D2846

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

10 years agoRemove really old "APPLE LOCAL" markers.
Rafael Espindola [Thu, 20 Feb 2014 14:09:04 +0000 (14:09 +0000)]
Remove really old "APPLE LOCAL" markers.

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

10 years agoGet rid of obsolete addProfileRT(), generalize the relevant addProfileRTLinux() to...
Alexey Samsonov [Thu, 20 Feb 2014 13:57:37 +0000 (13:57 +0000)]
Get rid of obsolete addProfileRT(), generalize the relevant addProfileRTLinux() to all OS

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

10 years agoOpenCL: fix for the restriction on pointers to functions.
Pekka Jaaskelainen [Thu, 20 Feb 2014 13:52:08 +0000 (13:52 +0000)]
OpenCL: fix for the restriction on pointers to functions.

Patch from Anastasia Stulova!

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

10 years ago[CMake] clang_tablegen(AttrSpellings.inc): Prune redundant DEPENDS.
NAKAMURA Takumi [Thu, 20 Feb 2014 13:41:19 +0000 (13:41 +0000)]
[CMake] clang_tablegen(AttrSpellings.inc): Prune redundant DEPENDS.

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

10 years agoD2843 - [OPENMP] move all clauses to a separate header
Alexey Bataev [Thu, 20 Feb 2014 12:50:06 +0000 (12:50 +0000)]
D2843 - [OPENMP] move all clauses to a separate header

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

10 years agoRevert r201734 and r201742.
Daniel Jasper [Thu, 20 Feb 2014 11:10:48 +0000 (11:10 +0000)]
Revert r201734 and r201742.

This breaks backwards compatibility with existing code. Previously, this
was defined as

  #define _mm_prefetch(a, sel) (__builtin_prefetch((void *)(a), 0, (sel)))

Which basically accepts any pointer. Changing this to char* simply
breaks a lot of existing code. I have tried changing char* to
"const void*", which seems to be the right thing as per Intel
specification this should work on basically any pointer. However,
apparently this breaks windows compatibility (because of a conflicting
declaration in windows.h).

So, we probably need to #ifdef this based on whether clang is compiling
for windows. According to Chandler, this might be done by introducing an
additional symbol to a fake type in BuiltinsX86.def and then condition
the type expansion on the platform.

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

10 years agoRevert r201772 as it breaks things on Windows
Timur Iskhodzhanov [Thu, 20 Feb 2014 10:46:28 +0000 (10:46 +0000)]
Revert r201772 as it breaks things on Windows

We should probably use different argument types on different platforms?

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

10 years agoChange parameter type of _mm_prefetch to "const void *".
Daniel Jasper [Thu, 20 Feb 2014 10:04:07 +0000 (10:04 +0000)]
Change parameter type of _mm_prefetch to "const void *".

Otherwise, this is not backwards compatible to the existing macro and
can break existing code.

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

10 years agoDon't actually emit output in test/Headers/mmprefetch.c.
Daniel Jasper [Thu, 20 Feb 2014 08:45:49 +0000 (08:45 +0000)]
Don't actually emit output in test/Headers/mmprefetch.c.

The test directory cannot assumed to be writable.

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

10 years ago[code-completion] Style guideline for Cocoa has custom accessor in property declarati...
Argyrios Kyrtzidis [Thu, 20 Feb 2014 07:55:15 +0000 (07:55 +0000)]
[code-completion] Style guideline for Cocoa has custom accessor in property declarations without spaces around '='.

rdar://16059171

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

10 years ago[libclang/python] Use a Python standard library module to create a temporary file.
Argyrios Kyrtzidis [Thu, 20 Feb 2014 07:24:03 +0000 (07:24 +0000)]
[libclang/python] Use a Python standard library module to create a temporary file.

Patch by Brian Gesiak!

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

10 years agoReverting the virtual file system implementation, because it triggers an assertion
Juergen Ributzka [Thu, 20 Feb 2014 05:24:58 +0000 (05:24 +0000)]
Reverting the virtual file system implementation, because it triggers an assertion
in our internal build bots.

This reverts commits 201618, 201635, 201636, 201639, 201685, 201691, and 201696.

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

10 years ago[AST] Follow-up for r201468, move the check to the caller and add an assertion.
Argyrios Kyrtzidis [Thu, 20 Feb 2014 04:00:01 +0000 (04:00 +0000)]
[AST] Follow-up for r201468, move the check to the caller and add an assertion.

Suggested by Richard Smith.

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

10 years agoUpdated to r201734. Removed unused declaration from lit test.
Warren Hunt [Wed, 19 Feb 2014 23:57:54 +0000 (23:57 +0000)]
Updated to r201734.  Removed unused declaration from lit test.

Also updating lit test to be more roboust (changing fixed offsets to
flexible offsets)

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

10 years agoUse llvm::DeleteContainerSeconds when possible
Reid Kleckner [Wed, 19 Feb 2014 23:44:52 +0000 (23:44 +0000)]
Use llvm::DeleteContainerSeconds when possible

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

10 years agoFix two pedantic issues with our builtin headers. The __STDC_VERSION__
Chandler Carruth [Wed, 19 Feb 2014 23:38:18 +0000 (23:38 +0000)]
Fix two pedantic issues with our builtin headers. The __STDC_VERSION__
for C99 is '199901L' and we shouldn't be comparing it with anything
else.

Neither of these should have had any impact in practice.

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

10 years agoDoing some temporary touch-up on the gnu namespace attribute documentation, from...
Aaron Ballman [Wed, 19 Feb 2014 23:21:40 +0000 (23:21 +0000)]
Doing some temporary touch-up on the gnu namespace attribute documentation, from a post-commit review comment.

Ideally, this content will eventually find a home with the rest of the attribute documentation.

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

10 years agoAdd _mm_prefetch and some others as MS builtins
Warren Hunt [Wed, 19 Feb 2014 23:20:20 +0000 (23:20 +0000)]
Add _mm_prefetch and some others as MS builtins

This patch adds several built-ins that are required for ms
compatibility. _mm_prefetch must be a built-in because it takes a
compile-time constant argument and our prior approach of using a #define
to the current built-in doesn't work in the presence of re-declaration
of _mm_prefetch. The others can be obtained by including the windows
system headers. If a user includes the windows system headers but not
intrin.h they still need to work and therefore must be built-in because
we don't get a chance to implement them in intrin.h in this case.

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

10 years agoUntil attribute documentation is implemented as a server-side feature, I will be...
Aaron Ballman [Wed, 19 Feb 2014 23:09:37 +0000 (23:09 +0000)]
Until attribute documentation is implemented as a server-side feature, I will be manually committing AttributeReference.rst so that attribute documentation can be on the live server instead of simply disappearing from the language extensions page without obvious replacement.

This is a temporary stop-gap solution until server-side generation is implemented, at which point the AttributeReference.rst will go back to holding placeholder text.

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

10 years agoRefactored the way attribute category headers are handled so that it is possible...
Aaron Ballman [Wed, 19 Feb 2014 22:59:32 +0000 (22:59 +0000)]
Refactored the way attribute category headers are handled so that it is possible to use custom categories. This allows for moving the consumable attributes (consumable, callable_when, return_typestate, etc) to be grouped together, with a content heading, like they were in the language extensions documentation. Moved the consumable attribute documentation from the language extensions into the attribute documentation table.

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

10 years agoRemove a broken attempt to cope with someone #undef'ing __has_include_next.
Richard Smith [Wed, 19 Feb 2014 22:53:42 +0000 (22:53 +0000)]
Remove a broken attempt to cope with someone #undef'ing __has_include_next.
This was broken because __has_include_next(...) would not be valid in a
preprocessor condition if __has_include_next is not defined.

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

10 years agoHook up NetBSD/sparc and NetBSD/sparc64 as and ld invocations.
Joerg Sonnenberger [Wed, 19 Feb 2014 22:40:18 +0000 (22:40 +0000)]
Hook up NetBSD/sparc and NetBSD/sparc64 as and ld invocations.

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

10 years agoTeach Clang to provide ::max_align_t in C11 and C++11 modes.
Chandler Carruth [Wed, 19 Feb 2014 22:35:01 +0000 (22:35 +0000)]
Teach Clang to provide ::max_align_t in C11 and C++11 modes.

This definition is not chosen idly. There is an unfortunate reality with
max_align_t -- the specific nature of its definition leaks into the ABI
almost immediately. Because it is part of C11 and C++11 it becomes
essential for it to match with other systems on that ABI. There is an
effort to discourage any further use of this construct as a consequence
-- using max_align_t introduces an immediate ABI problem. We can never
update it to have larger alignment even as the microarchitecture changes
to necessitate higher alignment. =/

The particular definition here exactly matches the ABI of GCC's chosen
::max_align_t definition, for better or worse. This was written with the
help of Richard Smith who was decoding the exact ABI implications of the
selected definition in GCC. Notably, in-register arguments are impacted
by the particular definition chosen. =/

No one is under the illusion that this is a "good" or "useful"
definition of max_align_t, and we are working with the standards
committee to specify a more useful interface to address this need.

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

10 years agoGC now unused variable.
Joerg Sonnenberger [Wed, 19 Feb 2014 22:17:01 +0000 (22:17 +0000)]
GC now unused variable.

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

10 years agoUse a switch for the architecture specific logic in
Joerg Sonnenberger [Wed, 19 Feb 2014 22:16:19 +0000 (22:16 +0000)]
Use a switch for the architecture specific logic in
netbsd::Assemble::ConstructJob.

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

10 years agoMS ABI: Let non-virtual method overloads participate in vftable ordering
Reid Kleckner [Wed, 19 Feb 2014 22:06:10 +0000 (22:06 +0000)]
MS ABI: Let non-virtual method overloads participate in vftable ordering

In the Microsoft ABI, the vftable is laid out as if all methods in every
overload set were declared in reverse order of declaration at the point
of declaration of the first overload in the set.

Previously we only considered virtual methods in an overload set, but
MSVC includes non-virtual methods for ordering purposes.

Fixes PR18902.

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

10 years agoclang-cl: Pass /Z7 when we fallback to cl with debug info enabled
Reid Kleckner [Wed, 19 Feb 2014 22:05:59 +0000 (22:05 +0000)]
clang-cl: Pass /Z7 when we fallback to cl with debug info enabled

Clang itself only emits CodeView line tables, so it seems more
consistent to ask cl.exe for the same format.

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

10 years agoRefactor -KPIC handling for as invocation.
Joerg Sonnenberger [Wed, 19 Feb 2014 21:58:52 +0000 (21:58 +0000)]
Refactor -KPIC handling for as invocation.

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

10 years agoMoving the documentation for the ARM interrupt attribute into AttrDocs.
Aaron Ballman [Wed, 19 Feb 2014 21:12:23 +0000 (21:12 +0000)]
Moving the documentation for the ARM interrupt attribute into AttrDocs.

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

10 years agoMoving the documentation for the clang::fallthrough attribute into AttrDocs.
Aaron Ballman [Wed, 19 Feb 2014 20:56:51 +0000 (20:56 +0000)]
Moving the documentation for the clang::fallthrough attribute into AttrDocs.

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

10 years agoAdded a documentation category for statement attributes so that things like clang...
Aaron Ballman [Wed, 19 Feb 2014 20:55:42 +0000 (20:55 +0000)]
Added a documentation category for statement attributes so that things like clang::fallthrough can be documented.

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

10 years agoSome of these headings had the incorrect number of "underlines" and so would get...
Aaron Ballman [Wed, 19 Feb 2014 20:43:58 +0000 (20:43 +0000)]
Some of these headings had the incorrect number of "underlines" and so would get warnings when generating the content from Sphinx. No functional changes intended.

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

10 years agoMoving the documentation for the availability attribute into AttrDocs.
Aaron Ballman [Wed, 19 Feb 2014 20:39:48 +0000 (20:39 +0000)]
Moving the documentation for the availability attribute into AttrDocs.

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

10 years agoOnly print the selected multilib when something is actually found on the host.
Yunzhong Gao [Wed, 19 Feb 2014 19:06:58 +0000 (19:06 +0000)]
Only print the selected multilib when something is actually found on the host.

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

10 years ago[analyzer] Extend IdenticalExprChecker to check logical and bitwise expressions.
Jordan Rose [Wed, 19 Feb 2014 17:44:16 +0000 (17:44 +0000)]
[analyzer] Extend IdenticalExprChecker to check logical and bitwise expressions.

IdenticalExprChecker now warns if any expressions in a logical or bitwise
chain (&&, ||, &, |, or ^) are the same. Unlike the previous patch, this
actually checks all subexpressions against each other (an O(N^2) operation,
but N is likely to be small).

Patch by Daniel Fahlgren!

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

10 years ago[analyzer] Extend IdenticalExprChecker to check the two branches of an if.
Jordan Rose [Wed, 19 Feb 2014 17:44:11 +0000 (17:44 +0000)]
[analyzer] Extend IdenticalExprChecker to check the two branches of an if.

This extends the checks for identical expressions to handle identical
statements, and compares the consequent and alternative ("then" and "else")
branches of an if-statement to see if they are identical, treating a single
statement surrounded by braces as equivalent to one without braces.

This does /not/ check subsequent branches in an if/else chain, let alone
branches that are not consecutive. This may improve in a future patch, but
it would certainly take more work.

Patch by Daniel Fahlgren!

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

10 years agoReduce verbosity in the virtual file system using LLVM.h
Ben Langmuir [Wed, 19 Feb 2014 16:36:49 +0000 (16:36 +0000)]
Reduce verbosity in the virtual file system using LLVM.h

No functional change

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

10 years agoUpdated tutorial code according to the changes in r197139.
Alexander Kornienko [Wed, 19 Feb 2014 16:11:38 +0000 (16:11 +0000)]
Updated tutorial code according to the changes in r197139.

Thanks to Konrad Kleine for reporting the inconsistency!

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

10 years agoFix some test issues in VirtualFileSystemTest
Ben Langmuir [Wed, 19 Feb 2014 15:58:49 +0000 (15:58 +0000)]
Fix some test issues in VirtualFileSystemTest

Use camel-case names, remove some dead code, and fix a copy-and-pasted test.

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

10 years agoMoving the documentation for the objc_requires_super attribute into AttrDocs.
Aaron Ballman [Wed, 19 Feb 2014 15:45:13 +0000 (15:45 +0000)]
Moving the documentation for the objc_requires_super attribute into AttrDocs.

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

10 years agoMoving the documentation for the objc_method_family attribute into AttrDocs.
Aaron Ballman [Wed, 19 Feb 2014 15:38:02 +0000 (15:38 +0000)]
Moving the documentation for the objc_method_family attribute into AttrDocs.

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

10 years agoRemove typo from r201618
Ben Langmuir [Wed, 19 Feb 2014 15:36:37 +0000 (15:36 +0000)]
Remove typo from r201618

Fixes PR18895

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

10 years agoMoving the documentation for the overloadable attribute into AttrDocs.
Aaron Ballman [Wed, 19 Feb 2014 14:53:20 +0000 (14:53 +0000)]
Moving the documentation for the overloadable attribute into AttrDocs.

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

10 years agoMoving the documentation for the enable_if attribute into AttrDocs. Removed the ...
Aaron Ballman [Wed, 19 Feb 2014 14:48:31 +0000 (14:48 +0000)]
Moving the documentation for the enable_if attribute into AttrDocs. Removed the "clang introduces" phrase for style consistency, but otherwise the documentation is identical.

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

10 years agoAArch64: look up EmitAArch64Scalar support before calling.
Tim Northover [Wed, 19 Feb 2014 11:55:06 +0000 (11:55 +0000)]
AArch64: look up EmitAArch64Scalar support before calling.

This fixes one immediate bug where an expression with side-effects
could be emitted twice during a NEON call.

It also prepares the way for folding CodeGen for many of the SISD
intrinsics into a table, reducing code size and hopefully increasing
performance eventually ("binary search + few switch cases" should be
better than "lots of switch cases").

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

10 years agoARM & AArch64: move struct definition outside function.
Tim Northover [Wed, 19 Feb 2014 10:56:23 +0000 (10:56 +0000)]
ARM & AArch64: move struct definition outside function.

Apparently it's not True C++.

rdar://problem/16035743 still.

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

10 years agoAdd FreeBSD ARM EABI hard-float support
Renato Golin [Wed, 19 Feb 2014 10:44:07 +0000 (10:44 +0000)]
Add FreeBSD ARM EABI hard-float support

Patch by Andrew Turner.

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

10 years agoARM NEON: add vcvtX (with rounding mode) intrinsics to v8 ARM.
Tim Northover [Wed, 19 Feb 2014 10:37:13 +0000 (10:37 +0000)]
ARM NEON: add vcvtX (with rounding mode) intrinsics to v8 ARM.

These instructions (well, the f32 ones) are supported on 32-bit ARMv8, not just
AArch64. Now that the arm_neon.td refactoring is complete, adding them is
surprisingly simple.

rdar://problem/16035743

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

10 years agoARM NEON: use more flexible TableGen field for defs.
Tim Northover [Wed, 19 Feb 2014 10:37:09 +0000 (10:37 +0000)]
ARM NEON: use more flexible TableGen field for defs.

We used to have special handling for isCrypto and isA64 bits in the
NeonEmitter.cpp file (it knew the former was predicated on __ARM_FEATURE_CRYPTO
and the latter on __aarch64__ and went through various contortions to make sure
the correct intrinsics were emitted under the correct guard.

This is ugly and has obvious scalability problems (e.g. vcvtX intrinsics are
needed, which are ARMv8 only but available on both, yet another category). This
patch moves the #if predicate into the arm_neon.td file directly and makes
NeonEmitter.cpp agnostic about what goes in there.

It also deduplicates arm_neon.td so that each desired intrinsic is mentioned in
just one place (necessary because of the new mechanism for creating
arm_neon.h).

rdar://problem/16035743

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

10 years agoARM & AArch64: merge the semantic checking of NEON intrinsics
Tim Northover [Wed, 19 Feb 2014 10:37:05 +0000 (10:37 +0000)]
ARM & AArch64: merge the semantic checking of NEON intrinsics

There are two kinds of automatically generated tests for NEON intrinsics, both
of which can be merged without adversely affecting users.

1. We check that a valid kind of __builtin_neon_XYZ overload is requested (e.g.
   we're not asking for a float32x4_t version when it only accepts integers. Since
   the __builtin_neon_XYZ intrinsics should only be used in arm_neon.h, relaxing
   this test and permitting AArch64 types for AArch32 should not cause a problem.
   The extra arm_neon.h definitions should be #ifdefed out anyway.
2. We check that intrinsics which take immediates are actually given
   compile-time constants within range. Since all NEON intrinsics should be
   backwards compatible, these tests should be identical on AArch64 and AArch32
   anyway.

This patch, therefore, merges the separate AArch64 and 32-bit checks.

rdar://problem/16035743

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

10 years agolibclang: ensure clang_createTranslationUnit2 always initializes *TU
Dmitri Gribenko [Wed, 19 Feb 2014 10:24:00 +0000 (10:24 +0000)]
libclang: ensure clang_createTranslationUnit2 always initializes *TU

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

10 years ago[analyzer] post analyzer build checker-276
Ted Kremenek [Wed, 19 Feb 2014 08:09:22 +0000 (08:09 +0000)]
[analyzer] post analyzer build checker-276

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

10 years ago[analyzer] Move checker alpha.osx.cocoa.MissingSuperCall out of alpha category.
Ted Kremenek [Wed, 19 Feb 2014 05:28:39 +0000 (05:28 +0000)]
[analyzer] Move checker alpha.osx.cocoa.MissingSuperCall out of alpha category.

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

10 years agoAttempt to appease C++11 buildbots
Ben Langmuir [Wed, 19 Feb 2014 04:17:47 +0000 (04:17 +0000)]
Attempt to appease C++11 buildbots

Explicit operator bool doesn't not play nicely with gtest assertion
macros (i.e. it performs as advertised and I wish that gtest subverted
it for me).

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

10 years agoPass VFS from CompilerInstance to FileManager
Ben Langmuir [Wed, 19 Feb 2014 03:34:59 +0000 (03:34 +0000)]
Pass VFS from CompilerInstance to FileManager

This change was somehow missed from r201618

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

10 years agoAdd an OverlayFileSystem class
Ben Langmuir [Wed, 19 Feb 2014 03:29:17 +0000 (03:29 +0000)]
Add an OverlayFileSystem class

Provides a way to merge multiple vfs::FileSystem objects into a single
filesystem.

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

10 years agoRemove gunk from cxx_dr_status.html
David Majnemer [Wed, 19 Feb 2014 03:21:27 +0000 (03:21 +0000)]
Remove gunk from cxx_dr_status.html

Accidentally piped the stdout from make_cxx_dr_status into
cxx_dr_status.html

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

10 years agoRegenerate DR status page.
David Majnemer [Wed, 19 Feb 2014 03:03:21 +0000 (03:03 +0000)]
Regenerate DR status page.

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

10 years agoImplement DR577
David Majnemer [Wed, 19 Feb 2014 03:00:56 +0000 (03:00 +0000)]
Implement DR577

DR18 previously forebode typedefs to be used as parameter types if they
were of type 'void'.  DR577 allows 'void' to be used as a function
parameter type regardless from where it came.

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

10 years agoCIndex: initialise TU
Saleem Abdulrasool [Wed, 19 Feb 2014 02:56:55 +0000 (02:56 +0000)]
CIndex: initialise TU

TU is not guaranteed to be initialised in all cases.  In particular if CIdx or
ast_filename is NULL (or if &TU is NULL), then clang_createTranslationUnit2 will
not initialise the out parameter out_TU.  This is followed by an assertion check
which may perform a branch based on unitialised memory.

Caught by scan-build.

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

10 years agoRemove dead code.
Rafael Espindola [Wed, 19 Feb 2014 02:14:40 +0000 (02:14 +0000)]
Remove dead code.

Clang never produces a linker private object, so this code is dead.

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

10 years agoclang-cl /fallback: turn the note into a warning
Hans Wennborg [Wed, 19 Feb 2014 02:10:19 +0000 (02:10 +0000)]
clang-cl /fallback: turn the note into a warning

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

10 years agoRemove a C++11ism.
Richard Smith [Wed, 19 Feb 2014 01:08:24 +0000 (01:08 +0000)]
Remove a C++11ism.

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

10 years agoPR13110: Add a -Wignored-qualifiers warning when ignoring a const, volatile, or
Richard Smith [Wed, 19 Feb 2014 00:13:27 +0000 (00:13 +0000)]
PR13110: Add a -Wignored-qualifiers warning when ignoring a const, volatile, or
_Atomic qualifier applied to a reference type.

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

10 years agoInitial implementation of virtual file system
Ben Langmuir [Wed, 19 Feb 2014 00:10:30 +0000 (00:10 +0000)]
Initial implementation of virtual file system

This adds the minimum virtual file system support to start migrating
FileManager onto the VFS.

Originally discussed here:
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2014-February/035188.html

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

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

10 years agoAdd missing test file for r201615
Reid Kleckner [Tue, 18 Feb 2014 23:57:59 +0000 (23:57 +0000)]
Add missing test file for r201615

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

10 years agoFix false positives in -Wmsvc-include by continuing header search
Reid Kleckner [Tue, 18 Feb 2014 23:49:24 +0000 (23:49 +0000)]
Fix false positives in -Wmsvc-include by continuing header search

This makes Clang and LLVM -Wmsvc-include clean.

I believe the correct behavior here is to avoid updating the cache when
we find the header via MSVC's search rules.

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

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

10 years agoFix the Driver/cl-fallback.c test
Hans Wennborg [Tue, 18 Feb 2014 23:25:20 +0000 (23:25 +0000)]
Fix the Driver/cl-fallback.c test

On machines that have cl.exe on PATH, the note will print the full path.

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

10 years agoMS ABI: Remove nv adjustment from direct vdtor calls and prologues
Reid Kleckner [Tue, 18 Feb 2014 22:51:52 +0000 (22:51 +0000)]
MS ABI: Remove nv adjustment from direct vdtor calls and prologues

Summary:
Generally the vector deleting dtor, which we model as a vtable thunk,
takes care of non-virtual adjustment and delegates to the other
destructor variants.  The other non-complete destructor variants assume
that 'this' on entry points to the virtual base subobject that first
declared the virtual destructor.

We need to change the adjustment in both the prologue and the vdtor call
setup.

Reviewers: timurrrr

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2821

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

10 years agoMore tests for r201536.
Richard Smith [Tue, 18 Feb 2014 22:47:10 +0000 (22:47 +0000)]
More tests for r201536.

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

10 years agoExperiment with making -Wunreachable-code more immediately useful by restricting...
Ted Kremenek [Tue, 18 Feb 2014 22:12:10 +0000 (22:12 +0000)]
Experiment with making -Wunreachable-code more immediately useful by restricting warnings to those issued in the main file.

This warning has a whole bunch of known false positives, much of them due
to code that is "sometimes unreachable".  This can caused by code that
is conditionally generated by the preprocessor, branches that are defined
in terms of architecture-specific details (e.g., the size of a type), and
so on.  While these are all good things to address one by one, the reality
is that this warning has received little love lately.  By restricting
its purvue, we can focus on the top issues effecting main files, which
should be smaller, and then gradually widen the scope.

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