]> granicus.if.org Git - clang/log
clang
10 years agoUpdate __cplusplus to match the value in the C++14 DIS preview (D3937).
Richard Smith [Mon, 24 Feb 2014 01:35:45 +0000 (01:35 +0000)]
Update __cplusplus to match the value in the C++14 DIS preview (D3937).

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

10 years agoDo not put instrumentation counters before phis in ObjC for-in loops.
Bob Wilson [Mon, 24 Feb 2014 01:13:09 +0000 (01:13 +0000)]
Do not put instrumentation counters before phis in ObjC for-in loops.

We still don't use the PGO to set branch weights for these loops, but at
least this keeps the compiler from crashing. <rdar://problem/16137778>

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

10 years ago[Index] Make the USRs more stable.
Argyrios Kyrtzidis [Sun, 23 Feb 2014 18:23:29 +0000 (18:23 +0000)]
[Index] Make the USRs more stable.

- Only include offsets with local (in function scope) symbols, where we don't encode scoping
- Only include the filename with non-system symbols. Presumably the system headers will not provide conflicting definitions.

rdar://15976823

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

10 years agoFixing the indentation of the RST content in the release notes. Fixes two warnings...
Aaron Ballman [Sun, 23 Feb 2014 16:27:21 +0000 (16:27 +0000)]
Fixing the indentation of the RST content in the release notes. Fixes two warnings when building the HTML content and improves the format of the resulting content.

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

10 years agoSema: Simplify away one-iteration loops.
Benjamin Kramer [Sun, 23 Feb 2014 14:34:50 +0000 (14:34 +0000)]
Sema: Simplify away one-iteration loops.

No functionality change.

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

10 years ago[CMake] Resurrect mis-dropped dependency to ClangDriverOptions since r201842.
NAKAMURA Takumi [Sun, 23 Feb 2014 13:44:09 +0000 (13:44 +0000)]
[CMake] Resurrect mis-dropped dependency to ClangDriverOptions since r201842.

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

10 years ago[CMake] clang_tblgen: Use add_public_tablegen_target.
NAKAMURA Takumi [Sun, 23 Feb 2014 13:08:07 +0000 (13:08 +0000)]
[CMake] clang_tblgen: Use add_public_tablegen_target.

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

10 years ago[CMake] Deprecate clang_tablegen(DEPENDS).
NAKAMURA Takumi [Sun, 23 Feb 2014 12:53:45 +0000 (12:53 +0000)]
[CMake] Deprecate clang_tablegen(DEPENDS).

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

10 years agoFix crash when both ExpectAndConsume and ConsumeAnyToken emit diagnostics
Alp Toker [Sun, 23 Feb 2014 03:45:03 +0000 (03:45 +0000)]
Fix crash when both ExpectAndConsume and ConsumeAnyToken emit diagnostics

The DiagnosticBuilder's lifetime in parser typo recovery was overlapping with
the subsequent consume which can itself emit PP diagnostics.

Patch by Olivier Goffart!

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

10 years agoRelease Notes: document -f{,no-}integrate-as
Saleem Abdulrasool [Sun, 23 Feb 2014 02:08:45 +0000 (02:08 +0000)]
Release Notes: document -f{,no-}integrate-as

Now that the integrated assembler is considered a first class feature of the
compiler and has a proper feature flag, document the change in the compiler
flags.  Ensure that we indicate that the legacy flags are still available, but,
encourage users to switch to the feature flags.

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

10 years agoclang: add -f{no-,}integrate-as as consistent parameters
Saleem Abdulrasool [Sun, 23 Feb 2014 00:40:30 +0000 (00:40 +0000)]
clang: add -f{no-,}integrate-as as consistent parameters

The integrated assembler is a feature.  This makes the new flags the default
option, and the previous versions aliases.  Ideally, at some point the aliases
would be entirely removed.

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

10 years agoRemove support for the QA_OVERRIDE_GCC3_OPTIONS environment variable.
Bob Wilson [Sun, 23 Feb 2014 00:11:56 +0000 (00:11 +0000)]
Remove support for the QA_OVERRIDE_GCC3_OPTIONS environment variable.

In r199283 I switched the name of this variable to CCC_OVERRIDE_OPTIONS, but
I kept some code to continue recognizing the old name temporarily. As far as
I know, the only use of this was for some internal testing at Apple, and we've
now switched to use the new name. If anyone else is still using this and needs
more time to switch names, I guess we'll find out! <rdar://problem/15821425>

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

10 years agoclang: forward -no-integrated-as from the driver
Saleem Abdulrasool [Sat, 22 Feb 2014 23:37:58 +0000 (23:37 +0000)]
clang: forward -no-integrated-as from the driver

Forward the -no-integrated-as option to -cc1 rather than simply invoking the
appropriate tool.  This is useful since this option has been overloaded to
permit disabling of parsing inline assembly at the MC layer.

This re-applies the previous version of the patch with a renaming of the driver
option to the public name rather than the internal name (-target vs -triple).
The actual failure is fixed separately of an overly aggressive negative pattern
match in the MIPS driver tests.  It also fixes the incorrect test for targets
that have the integrated assembler disabled by default.

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

10 years agotest: fix MIPS driver tests
Saleem Abdulrasool [Sat, 22 Feb 2014 23:37:54 +0000 (23:37 +0000)]
test: fix MIPS driver tests

The tests attempt to validate the invocation of the assembler program with the
integrated assembler disabled.  However, the match pattern for the negative
tests are lax and will match both the driver invocation as well as the assembler
invocation.  Make the tests more strict by ensuring that we only match the
assembler invocation.

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

10 years agoRevert "clang: forward -no-integrated-as from the driver"
Saleem Abdulrasool [Sat, 22 Feb 2014 22:24:00 +0000 (22:24 +0000)]
Revert "clang: forward -no-integrated-as from the driver"

This seems to break a MIPS test.  Revert until I figure out the root cause.

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

10 years agoclang: forward -no-integrated-as from the driver
Saleem Abdulrasool [Sat, 22 Feb 2014 21:50:09 +0000 (21:50 +0000)]
clang: forward -no-integrated-as from the driver

Forward the -no-integrated-as option to -cc1 rather than simply invoking the
appropriate tool.  This is useful since this option has been overloaded to
permit disabling of parsing inline assembly at the MC layer.

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

10 years agoReorganize and improve semantic tests for dllexport/import
Nico Rieck [Sat, 22 Feb 2014 19:47:30 +0000 (19:47 +0000)]
Reorganize and improve semantic tests for dllexport/import

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

10 years agoAdding manual headings to the new capability attributes' documentation.
Aaron Ballman [Sat, 22 Feb 2014 19:04:55 +0000 (19:04 +0000)]
Adding manual headings to the new capability attributes' documentation.

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

10 years agoExposing the noduplicate attribute within Clang, which marks functions so that the...
Aaron Ballman [Sat, 22 Feb 2014 16:59:24 +0000 (16:59 +0000)]
Exposing the noduplicate attribute within Clang, which marks functions so that the optimizer does not duplicate code.

Patch thanks to Marcello Maggioni!

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

10 years agoDo not add enums to prototype scope in C++ modes.
Peter Collingbourne [Sat, 22 Feb 2014 03:05:49 +0000 (03:05 +0000)]
Do not add enums to prototype scope in C++ modes.

The language forbids defining enums in prototypes, so this check is normally
redundant, but if an enum is defined during template instantiation it should
not be added to the prototype scope.

While at it, clean up the code that deals with tag definitions in prototype
scope and expand the visibility warning to cover the case where an anonymous
enum is defined.

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

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

10 years agoCorrectly set brace range for CXXConstructExprs formed by list initialization.
Peter Collingbourne [Sat, 22 Feb 2014 02:59:41 +0000 (02:59 +0000)]
Correctly set brace range for CXXConstructExprs formed by list initialization.

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

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

10 years agoPer feedback from Aaron Ballman, push cast-to-ObjCProtocolDecl inside handleObjCSuppr...
Ted Kremenek [Sat, 22 Feb 2014 01:06:05 +0000 (01:06 +0000)]
Per feedback from Aaron Ballman, push cast-to-ObjCProtocolDecl inside handleObjCSuppresProtocolAttr().

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

10 years ago[_mm_prefetch] Returning previously deleted comment.
Warren Hunt [Sat, 22 Feb 2014 00:47:24 +0000 (00:47 +0000)]
[_mm_prefetch] Returning previously deleted comment.
No functional change.  It's unclear if the word FIXME is relevant given
that the macro behaves as intended.

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

10 years agoSilence a warning from r201905
Ben Langmuir [Sat, 22 Feb 2014 00:44:02 +0000 (00:44 +0000)]
Silence a warning from r201905

Avoid a warning about reaching the end of a non-void function after a
covered switch.

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

10 years agoIRGen: Fix build breakage
David Majnemer [Sat, 22 Feb 2014 00:41:07 +0000 (00:41 +0000)]
IRGen: Fix build breakage

MSVC allows extra-qualification on member functions, it lets you repeat
the class name on the method.

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

10 years ago[MS-ABI] Fix MSRecordLayout to handel MultiDimensionalArrays
Warren Hunt [Sat, 22 Feb 2014 00:40:37 +0000 (00:40 +0000)]
[MS-ABI] Fix MSRecordLayout to handel MultiDimensionalArrays
A recent change caused multi-dimensional arrays not to be handled
correctly, this patch fixes that.  Also, it adds a lit test for
multi-dimensional arrays.

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

10 years agoFix two warnings introduced r201907
Warren Hunt [Sat, 22 Feb 2014 00:22:15 +0000 (00:22 +0000)]
Fix two warnings introduced r201907

Unused variable is removed.  Construction order is changed to match
declaration order.

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

10 years agoSema: Don't crash when trying to instantiate a local class with an invalid base specifier
David Majnemer [Sat, 22 Feb 2014 00:17:46 +0000 (00:17 +0000)]
Sema: Don't crash when trying to instantiate a local class with an invalid base specifier

It was previously thought that Sema::InstantiateClass could not fail
from within this point in instantiate.

However, it can happen if the class is invalid some way (i.e. invalid
base specifier).

This fixes PR18907.

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

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

10 years ago[ObjC] Make attribute 'objc_protocol_requires_explicit_implementation' behave correct...
Ted Kremenek [Sat, 22 Feb 2014 00:02:03 +0000 (00:02 +0000)]
[ObjC] Make attribute 'objc_protocol_requires_explicit_implementation' behave correctly with default property synthesis.

In particular, if we see an @property within the @interface of a class
conforming to a protocol with this attribute, we treat that as
if the implementation were available, per the rules of default
property synthesis.

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

10 years agoComplete Rewrite of CGRecordLayoutBuilder
Warren Hunt [Fri, 21 Feb 2014 23:49:50 +0000 (23:49 +0000)]
Complete Rewrite of CGRecordLayoutBuilder

CGRecordLayoutBuilder was aging, complex, multi-pass, and shows signs of
existing before ASTRecordLayoutBuilder.  It redundantly performed many
layout operations that are now performed by ASTRecordLayoutBuilder and
asserted that the results were the same.  With the addition of support
for the MS-ABI, such as placement of vbptrs, vtordisps, different
bitfield layout and a variety of other features, CGRecordLayoutBuilder
was growing unwieldy in its redundancy.

This patch re-architects CGRecordLayoutBuilder to not perform any
redundant layout but rather, as directly as possible, lower an
ASTRecordLayout to an llvm::type.  The new architecture is significantly
smaller and simpler than the CGRecordLayoutBuilder and contains fewer
ABI-specific code paths.  It's also one pass.

The architecture of the new system is described in the comments. For the
most part, the new system simply takes all of the fields and bases from
an ASTRecordLayout, sorts them, inserts padding and dumps a record.
Bitfields, unions and primary virtual bases make this process a bit more
complicated.  See the inline comments.

In addition, this patch updates a few lit tests due to the fact that the
new system computes more accurate llvm types than CGRecordLayoutBuilder.
Each change is commented individually in the review.

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

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

10 years agoAdd a VFSFromYAML class and a parser to create it
Ben Langmuir [Fri, 21 Feb 2014 23:39:37 +0000 (23:39 +0000)]
Add a VFSFromYAML class and a parser to create it

Provides a way to create a virtual file system using a YAML file that
supports mapping a file to a path on an 'external' file system. The
external file system will typically be the 'real' file system, but for
testing it can be changed.

A future patch will add a clang option to allow the user to specify such
a file and overlay it, but for now this code is only exercised by the
unit tests.

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

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

10 years agoReapply 201734 but with appropriate gcc compatibility
Warren Hunt [Fri, 21 Feb 2014 23:08:53 +0000 (23:08 +0000)]
Reapply 201734 but with appropriate gcc compatibility
Because GCC incorrectly defines _mm_prefetch to take anything that casts
to void*, people have started using that behavior.  The previous patch
that made _mm_prefetch actually take a const char * broke compatibility
with existing code.  This update to the patch leaves the macro that
defines _mm_prefetch with the (void*) cast when _MSC_VER is not defined.

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

10 years agoAdd requirement that attribute 'objc_protocol_requires_explicit_implementation' can...
Ted Kremenek [Fri, 21 Feb 2014 22:49:04 +0000 (22:49 +0000)]
Add requirement that attribute 'objc_protocol_requires_explicit_implementation' can only be applied to protocol definitions.

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

10 years agoDefault to ARMv5e for NetBSD/EABI, ARMv4 for APCS.
Joerg Sonnenberger [Fri, 21 Feb 2014 21:53:33 +0000 (21:53 +0000)]
Default to ARMv5e for NetBSD/EABI, ARMv4 for APCS.

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

10 years agoAdd test that -Wunreachable-code warnings are suppressed in headers.
Ted Kremenek [Fri, 21 Feb 2014 21:41:23 +0000 (21:41 +0000)]
Add test that -Wunreachable-code warnings are suppressed in headers.

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

10 years agoAdding role-based capability attributes that allow you to express role management...
Aaron Ballman [Fri, 21 Feb 2014 21:05:14 +0000 (21:05 +0000)]
Adding role-based capability attributes that allow you to express role management: asserting a capability is held, acquiring a capability and releasing a capability. Also includes some skeleton documentation for these new attributes.

This functionality should be considered a WIP.

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

10 years ago[ObjC] add support for properties in attribute 'objc_protocol_requires_explicit_imple...
Ted Kremenek [Fri, 21 Feb 2014 19:41:39 +0000 (19:41 +0000)]
[ObjC] add support for properties in attribute 'objc_protocol_requires_explicit_implementation'.

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

10 years agoRemove 'followsSuper' argument from lookupPropertyAccessor. Turns out I didn't need it.
Ted Kremenek [Fri, 21 Feb 2014 19:41:37 +0000 (19:41 +0000)]
Remove 'followsSuper' argument from lookupPropertyAccessor.  Turns out I didn't need it.

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

10 years ago[ObjC] Change default property synthesis logic to not completely skip DiagnoseUnimple...
Ted Kremenek [Fri, 21 Feb 2014 19:41:34 +0000 (19:41 +0000)]
[ObjC] Change default property synthesis logic to not completely skip DiagnoseUnimplementedProperties.

We're going to extend DiagnoseUnimplementedProperties shortly to look for more cases
that aren't handled by default property synthesis.

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

10 years ago[ObjC] Condense logic for diagnosing unimplemented setter/getters into help method.
Ted Kremenek [Fri, 21 Feb 2014 19:41:30 +0000 (19:41 +0000)]
[ObjC] Condense logic for diagnosing unimplemented setter/getters into help method.

No functionality change.

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

10 years agoRemove accidentally-committed debugging statement. Thanks to Faisal Vali for
Richard Smith [Fri, 21 Feb 2014 18:46:01 +0000 (18:46 +0000)]
Remove accidentally-committed debugging statement. Thanks to Faisal Vali for
spotting this!

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

10 years ago[CMake] libclang: Use llvm_add_library(SHARED STATIC).
NAKAMURA Takumi [Fri, 21 Feb 2014 15:34:01 +0000 (15:34 +0000)]
[CMake] libclang: Use llvm_add_library(SHARED STATIC).

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

10 years agoInternal naming convention consistency change.
Aaron Ballman [Fri, 21 Feb 2014 14:37:41 +0000 (14:37 +0000)]
Internal naming convention consistency change.

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

10 years agoMoving the documentation for the format attribute into AttrDocs.
Aaron Ballman [Fri, 21 Feb 2014 14:36:13 +0000 (14:36 +0000)]
Moving the documentation for the format attribute into AttrDocs.

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

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