]> granicus.if.org Git - clang/log
clang
10 years agoObjective-C. Provide fixit's for objc_bride_related
Fariborz Jahanian [Tue, 10 Dec 2013 17:08:13 +0000 (17:08 +0000)]
Objective-C. Provide fixit's for objc_bride_related
attributed CF to ObjC type conversions.
// rdar://15499111

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

10 years ago[AArch64] Refactor the Neon vector/scalar floating-point convert intrinsics so
Chad Rosier [Tue, 10 Dec 2013 16:11:55 +0000 (16:11 +0000)]
[AArch64] Refactor the Neon vector/scalar floating-point convert intrinsics so
that they use float/double rather than the vector equivalents when appropriate.

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

10 years agoRemove IndentBlocks, which sneaked winto the previous commit
Alexander Kornienko [Tue, 10 Dec 2013 15:46:42 +0000 (15:46 +0000)]
Remove IndentBlocks, which sneaked winto the previous commit

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

10 years agoEarly attempts to format in GNU style.
Alexander Kornienko [Tue, 10 Dec 2013 15:42:15 +0000 (15:42 +0000)]
Early attempts to format in GNU style.

Summary:
This still misses a few important features, so there's no mention of
this style in the help message, but a few style rules are implemented.

Reviewers: djasper

Reviewed By: djasper

CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2371

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

10 years ago[AArch64] Refactor the Neon vector/scalar floating-point convert implementation.
Chad Rosier [Tue, 10 Dec 2013 15:35:40 +0000 (15:35 +0000)]
[AArch64] Refactor the Neon vector/scalar floating-point convert implementation.
Specifically, reuse the ARM intrinsics when possible.

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

10 years agoclang-format-diff.py: Support -regex filter and more filename extensions
Alp Toker [Tue, 10 Dec 2013 13:51:53 +0000 (13:51 +0000)]
clang-format-diff.py: Support -regex filter and more filename extensions

Add support for more filename extensions based on the list in the clang
plus JavaScript.

Also adds a -regex option so users can override defaults if they have unusual
file extensions or want to format everything in the diff.

Keeping with tradition the flag is modelled on Unix conventions, this time
matching the semantics of find(1).

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

10 years ago[CMake] Update target_link_libraries() and LLVM_LINK_COMPONENTS for each CMakeLists...
NAKAMURA Takumi [Tue, 10 Dec 2013 12:40:37 +0000 (12:40 +0000)]
[CMake] Update target_link_libraries() and LLVM_LINK_COMPONENTS for each CMakeLists.txt.

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

10 years agoAdd ObjCARCOpts to LINK_COMPONENTS.
NAKAMURA Takumi [Tue, 10 Dec 2013 12:40:11 +0000 (12:40 +0000)]
Add ObjCARCOpts to LINK_COMPONENTS.

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

10 years agoDarwin: update clang test to new iOS default version (5.0)
Tim Northover [Tue, 10 Dec 2013 11:53:25 +0000 (11:53 +0000)]
Darwin: update clang test to new iOS default version (5.0)

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

10 years ago[mips][msa] Correct sld and sldi builtins.
Daniel Sanders [Tue, 10 Dec 2013 11:37:00 +0000 (11:37 +0000)]
[mips][msa] Correct sld and sldi builtins.

Summary: The result register of these instructions is also the first operand.

Reviewers: jacksprat, dsanders

Reviewed By: dsanders

Differential Revision: http://llvm-reviews.chandlerc.com/D2362
Differential Revision: http://llvm-reviews.chandlerc.com/D2363

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

10 years agoAllow predefined styles to define different options for different languages.
Alexander Kornienko [Tue, 10 Dec 2013 11:28:13 +0000 (11:28 +0000)]
Allow predefined styles to define different options for different languages.

Summary:
Allow predefined styles to define different options for different
languages so that one can run:
  clang-format -style=google file1.cpp file2.js

or use a single .clang-format file with "BasedOnStyle: Google" for both c++ and
JS files.

Added Google style for JavaScript with "BreakBeforeTernaryOperators" set to
false.

Reviewers: djasper

Reviewed By: djasper

CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2364

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

10 years agoTrivial change: added 'using clang::format::FormatStyle;'
Alexander Kornienko [Tue, 10 Dec 2013 10:30:34 +0000 (10:30 +0000)]
Trivial change: added 'using clang::format::FormatStyle;'

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

10 years agoSupport GNU style rule to put a space before opening parenthesis.
Alexander Kornienko [Tue, 10 Dec 2013 10:18:34 +0000 (10:18 +0000)]
Support GNU style rule to put a space before opening parenthesis.

Summary:
The rule from the GNU style states:
"We find it easier to read a program when it has spaces before the open-parentheses and after the commas."

http://www.gnu.org/prep/standards/standards.html#index-spaces-before-open_002dparen

This patch makes clang-format adds an option to put spaces before almost all open parentheses, except the cases, where different behavior is dictated by the style rules or language syntax:
  * preprocessor:
    ** function-like macro definitions can't have a space between the macro name and the parenthesis;
    ** `#if defined(...)` can have a space, but it seems, that it's more frequently used without a space in GCC, for example;
  * never add spaces after unary operators;
  * adding spaces between two opening parentheses is controlled with the `SpacesInParentheses` option;
  * never add spaces between `[` and `(` (there's no option yet).

Reviewers: djasper

Reviewed By: djasper

CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2326

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

10 years agoRegenerate DR status page.
Richard Smith [Tue, 10 Dec 2013 08:26:19 +0000 (08:26 +0000)]
Regenerate DR status page.

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

10 years agoImplement DR1460: fix handling of default initializers in unions; don't allow
Richard Smith [Tue, 10 Dec 2013 08:25:00 +0000 (08:25 +0000)]
Implement DR1460: fix handling of default initializers in unions; don't allow
more than one such initializer in a union, make mem-initializers override
default initializers for other union members, handle anonymous unions with
anonymous struct members better. Fix a couple of semi-related bugs exposed by
the tests for same.

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

10 years ago[AArch64 NEON] Support poly128_t and implement relevant intrinsic.
Kevin Qin [Tue, 10 Dec 2013 06:49:01 +0000 (06:49 +0000)]
[AArch64 NEON] Support poly128_t and implement relevant intrinsic.

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

10 years agoRevert r196859, "Use llvm::sys::path::append to concatenate paths", to appease FileMa...
NAKAMURA Takumi [Tue, 10 Dec 2013 02:36:28 +0000 (02:36 +0000)]
Revert r196859, "Use llvm::sys::path::append to concatenate paths", to appease FileManager.

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

10 years ago[CMake] clang/lib: Prune redundant dependencies.
NAKAMURA Takumi [Tue, 10 Dec 2013 02:36:22 +0000 (02:36 +0000)]
[CMake] clang/lib: Prune redundant dependencies.

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

10 years agoTry to fix the test for Windows paths after r196859
Dmitri Gribenko [Tue, 10 Dec 2013 02:00:48 +0000 (02:00 +0000)]
Try to fix the test for Windows paths after r196859

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

10 years ago[ms-abi] 64-bit fixes for r196549
Warren Hunt [Tue, 10 Dec 2013 01:44:39 +0000 (01:44 +0000)]
[ms-abi] 64-bit fixes for r196549

In order to address latent bugs that were easier to expose in 64-bit
mode, we move the application of __declspec(align) to before the layout
of vbases rather than after.

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

10 years agoUse llvm::sys::path::append to concatenate paths
Dmitri Gribenko [Tue, 10 Dec 2013 01:36:10 +0000 (01:36 +0000)]
Use llvm::sys::path::append to concatenate paths

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

10 years agoTake into consideration calling convention when processing specializations.
Rafael Espindola [Tue, 10 Dec 2013 00:59:31 +0000 (00:59 +0000)]
Take into consideration calling convention when processing specializations.

This fixes pr18141.

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

10 years agoFix via-file-asm test failure on windows
David Peixotto [Tue, 10 Dec 2013 00:54:30 +0000 (00:54 +0000)]
Fix via-file-asm test failure on windows

The windows target does not support using an external assembler so
the test case was failing with this error:

error: there is no external assembler that can be used on this platform

The test was updated to always explicitly pass a target that has
both an interal and external assembler.

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

10 years agoSema: Enforce C++11 pointer-to-member template arguments should rules
David Majnemer [Tue, 10 Dec 2013 00:40:58 +0000 (00:40 +0000)]
Sema: Enforce C++11 pointer-to-member template arguments should rules

The standard is pretty clear on what it allows inside of template
arguments for non-type template parameters of pointer-to-member.

They must be of the form &qualified-id and cannot come from sources like
constexpr VarDecls or things of that nature.

This fixes PR18192.

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

10 years agoFix return of empty range in MSAsmStmt::children
Reid Kleckner [Mon, 9 Dec 2013 23:34:56 +0000 (23:34 +0000)]
Fix return of empty range in MSAsmStmt::children

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

10 years ago[AArch64] Refactor the NEON scalar reduce pairwise intrinsics so that they use
Chad Rosier [Mon, 9 Dec 2013 22:47:59 +0000 (22:47 +0000)]
[AArch64] Refactor the NEON scalar reduce pairwise intrinsics so that they use
float/double rather than the vector equivalents when appropriate.

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

10 years ago[AArch64] Refactor the NEON scalar reduce pairwise front-end codegen to remove
Chad Rosier [Mon, 9 Dec 2013 22:47:57 +0000 (22:47 +0000)]
[AArch64] Refactor the NEON scalar reduce pairwise front-end codegen to remove
unnecessary patterns in tablegen.

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

10 years ago[AArch64] Remove q and non-q intrinsic definitions from the NEON scalar reduce
Chad Rosier [Mon, 9 Dec 2013 22:47:55 +0000 (22:47 +0000)]
[AArch64] Remove q and non-q intrinsic definitions from the NEON scalar reduce
pairwise implementation, using an overloaded definition instead.

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

10 years agoObjective-C: Improve on various diagnostics related to
Fariborz Jahanian [Mon, 9 Dec 2013 22:04:26 +0000 (22:04 +0000)]
Objective-C: Improve on various diagnostics related to
use of objc_bridge_related attribute. // rdar://15499111

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

10 years ago[CMake] clangSema doesn't depend on LLVM CodeGen any more.
NAKAMURA Takumi [Mon, 9 Dec 2013 19:27:36 +0000 (19:27 +0000)]
[CMake] clangSema doesn't depend on LLVM CodeGen any more.

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

10 years ago[CMake] clang/lib: Satisfy dependencies to add *actually used* libraries on target_li...
NAKAMURA Takumi [Mon, 9 Dec 2013 19:04:43 +0000 (19:04 +0000)]
[CMake] clang/lib: Satisfy dependencies to add *actually used* libraries on target_link_libraries() and LLVM_LINK_COMPONENTS.

I will prune redundant dependencies later.

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

10 years ago[CMake] clangDriver: Move LLVM stuff in target_link_library to LLVM_LINK_COMPONENTS.
NAKAMURA Takumi [Mon, 9 Dec 2013 19:04:19 +0000 (19:04 +0000)]
[CMake] clangDriver: Move LLVM stuff in target_link_library to LLVM_LINK_COMPONENTS.

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

10 years agoclang/test/lit.cfg: Remove get_llc_props. check-clang itself no longer invokes llc.
NAKAMURA Takumi [Mon, 9 Dec 2013 19:04:14 +0000 (19:04 +0000)]
clang/test/lit.cfg: Remove get_llc_props. check-clang itself no longer invokes llc.

Only a few tests depend on llc yet.

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

10 years agoSave another call to GetAddrOfFunction.
Rafael Espindola [Mon, 9 Dec 2013 16:01:03 +0000 (16:01 +0000)]
Save another call to GetAddrOfFunction.

Thread an optional GV down to EmitGlobalFunctionDefinition so that it can
avoid the lookup when we already know the corresponding llvm global value.

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

10 years agoWhen we decide to output a deferred decl, remember the llvm GlobalValue.
Rafael Espindola [Mon, 9 Dec 2013 14:59:08 +0000 (14:59 +0000)]
When we decide to output a deferred decl, remember the llvm GlobalValue.

We can reuse it to avoid a DenseMap+StringMap lookup to find if it was already
emitted or not.

This fixes a 2010 TODO.

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

10 years agoOutput destructors and constructors in a more natural order.
Rafael Espindola [Mon, 9 Dec 2013 14:51:17 +0000 (14:51 +0000)]
Output destructors and constructors in a more natural order.

With this patch we output the in the order
C2
C1

D2
D1
D0

Which means that a destructor or constructor that call another is output after
the callee. This is a bit easier to read IHMO and a tiny bit more efficient
as we don't put a decl in DeferredDeclsToEmit.

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

10 years agoclang-format: Be more conservative about braced list column layout.
Daniel Jasper [Mon, 9 Dec 2013 14:40:19 +0000 (14:40 +0000)]
clang-format: Be more conservative about braced list column layout.

Specifically disable it for nested braced lists as it commonly can look
really weird. Eventually, we'll want to become smarter and format some of
the nested lists better.

Before:
  SomeStruct my_struct_array = {
    { aaaaaa,     aaaaaaaa,   aaaaaaaaaaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaaaaaaaaaaaaaa,    aaa },
    { aaaa, aaaa, aaaa, aaaa, aaaa, aaaa, aaaa, aaa },
    { aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaa,      a,                 aaaaaaaaaa,
      aaaaaaaaa,         aaa },
  };

After:
  SomeStruct my_struct_array = {
    { aaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaaaaaa, aaa },
    { aaaa, aaaa, aaaa, aaaa, aaaa, aaaa, aaaa, aaa },
    { aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaa, a, aaaaaaaaaaaaaaaaaaa, aaa },
  };

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

10 years agoRemove old -fdiagnostics-show-name option
Alp Toker [Mon, 9 Dec 2013 14:34:53 +0000 (14:34 +0000)]
Remove old -fdiagnostics-show-name option

This had no effect since the feature was removed in r150612.

I actually miss this option, maybe we can bring it back some day.

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

10 years agoMake the -Wkeyword-compat diag message more accurate
Alp Toker [Mon, 9 Dec 2013 12:41:02 +0000 (12:41 +0000)]
Make the -Wkeyword-compat diag message more accurate

Changed from:

  keyword '__is_empty' will be treated as an identifier for the remainder of the translation unit

To:

  keyword '__is_empty' will be made available as an identifier for the remainder of the translation unit

This is a more accurate description of clang's keyword compatibility feature,
given that some of the keywords are turned into context-sensitive keywords
(e.g. REVERTIBLE_TYPE_TRAIT) rather than being fully disabled.

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

10 years ago[-cxx-abi microsoft] Mangle large integral constants correctly
David Majnemer [Mon, 9 Dec 2013 10:44:32 +0000 (10:44 +0000)]
[-cxx-abi microsoft] Mangle large integral constants correctly

Testing has revealed that large integral constants (i.e. > INT64_MAX)
are always mangled as-if they are negative, even in places where it
would not make sense for them to be negative (like non-type template
parameters of type unsigned long long).

To address this, we change the way we model number mangling: always
mangle as-if our number is an int64_t.  This should result in correct
results when we have large unsigned numbers.

N.B.  Bizarrely, things that are 32-bit displacements like vbptr offsets
are mangled as-if they are unsigned 32-bit numbers.  This is a pretty
egregious waste of space, it would be a 4x savings if we could mangle it
like a signed 32-bit number.  Instead, we explicitly cast these
displacements to uint32_t and let the mangler proceed.

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

10 years agoVersions of GCC newer than 4.8 exist these days =)
Richard Smith [Mon, 9 Dec 2013 08:55:59 +0000 (08:55 +0000)]
Versions of GCC newer than 4.8 exist these days =)

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

10 years agoMinor cleanup and reorg of C++ status page.
Richard Smith [Mon, 9 Dec 2013 08:52:23 +0000 (08:52 +0000)]
Minor cleanup and reorg of C++ status page.

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

10 years agoUpdate compatibility page to list some GCC language extensions that Clang does
Richard Smith [Mon, 9 Dec 2013 07:03:59 +0000 (07:03 +0000)]
Update compatibility page to list some GCC language extensions that Clang does
not support as a possible reason for choosing GCC instead of Clang (and vice
versa). Weaken some of the claimed advantages of Clang in light of GCC
improvements.

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

10 years agoAvoid extra error messages if method definition is inside function.
Serge Pavlov [Mon, 9 Dec 2013 05:25:47 +0000 (05:25 +0000)]
Avoid extra error messages if method definition is inside function.

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

10 years agoAvoid adding some decls to DeferredDeclsToEmit.
Rafael Espindola [Mon, 9 Dec 2013 04:29:47 +0000 (04:29 +0000)]
Avoid adding some decls to DeferredDeclsToEmit.

Before this patch GetOrCreateLLVMFunction would add a decl to
DeferredDeclsToEmit even when it was being called by the function trying to
emit that decl.

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

10 years ago[-cxx-abi microsoft] Properly mangle enums
David Majnemer [Mon, 9 Dec 2013 04:28:34 +0000 (04:28 +0000)]
[-cxx-abi microsoft] Properly mangle enums

While testing our ability to mangle large constants (PR18175), I
incidentally discovered that we did not properly mangle enums correctly.

Previously, we would append the width of the enum in bytes after the
type-tag differentiator.

This would mean "enum : short" would be mangled as 'W2' while "enum :
char" would be mangled as 'W1'.  Upon testing this with several versions
of MSVC, I found that this did not match their behavior: they always use
'W4'.

N.B.  Quick testing uncovered that undname allows different numbers to
follow the 'W' in the following way:

'W0' -> "enum char"
'W1' -> "enum unsigned char"
'W2' -> "enum short"
'W3' -> "enum unsigned short"
'W4' -> "enum"
'W5' -> "enum unsigned int"
'W6' -> "enum long"
'W7' -> "enum unsigned long"

However this scheme appears abandoned, I cannot get MSVC to trigger it.
Furthermore, it's incomplete: it doesn't handle "bool" or "long long".

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

10 years ago[AArch64]Add missing pair intrinsics such as:
Hao Liu [Mon, 9 Dec 2013 03:52:22 +0000 (03:52 +0000)]
[AArch64]Add missing pair intrinsics such as:
    int32_t vminv_s32(int32x2_t a)
which should be compiled into SMINP Vd.2S,Vn.2S,Vm.2S

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

10 years agoRename a variable that I missed in the previous refactoring.
Faisal Vali [Mon, 9 Dec 2013 00:15:23 +0000 (00:15 +0000)]
Rename a variable that I missed in the previous refactoring.

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

10 years agoEliminate the last remaining header NDEBUG
Alp Toker [Mon, 9 Dec 2013 00:12:56 +0000 (00:12 +0000)]
Eliminate the last remaining header NDEBUG

VerifyDiagnosticConsumer is long-lived so the two additional members shouldn't
have any impact on release builds.

The clang headers are now free of NDEBUG conditionals. Let's keep it that way!

Note that they're not yet structurally stable, pending a few fixes in the LLVM
core headers.

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

10 years agoRemove an old stdio.h include from the invalid-array test
Alp Toker [Sun, 8 Dec 2013 22:37:30 +0000 (22:37 +0000)]
Remove an old stdio.h include from the invalid-array test

This should get it up and running on win and other builders without system
headers.

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

10 years agoFix three tests that weren't checking anything
Alp Toker [Sun, 8 Dec 2013 22:22:31 +0000 (22:22 +0000)]
Fix three tests that weren't checking anything

Add -verify and update the test directives to match current expectations.

Also add a FIXME to an ObjC test that has expected-* directives but no -verify.

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

10 years agoRe-enable verification of test and update outdated diag checks
Alp Toker [Sun, 8 Dec 2013 22:22:26 +0000 (22:22 +0000)]
Re-enable verification of test and update outdated diag checks

Going by PR6913 it looks like this one can no longer reach CodeGen so remove
the redundant -emit-llvm case and treat it as an ordinary Sema test.

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

10 years agoRe-enable ms inline asm parser test.
Alp Toker [Sun, 8 Dec 2013 21:12:27 +0000 (21:12 +0000)]
Re-enable ms inline asm parser test.

LLVM r196044 should make it pass.

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

10 years agoRemove all DISABLE lines from tests
Alp Toker [Sun, 8 Dec 2013 21:12:19 +0000 (21:12 +0000)]
Remove all DISABLE lines from tests

There's no evidence that a 'DISABLE' directive ever existed.

Let's see if anything breaks..

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

10 years agoThere's no such thing as %clang_cc1_only
Alp Toker [Sun, 8 Dec 2013 18:49:11 +0000 (18:49 +0000)]
There's no such thing as %clang_cc1_only

These were being substituted into approximately the following:

  clang -cc1 -internal-isystem ../lib/clang/3.5/include_only

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

10 years agoFix a test that hasn't worked since 2007
Alp Toker [Sun, 8 Dec 2013 18:49:05 +0000 (18:49 +0000)]
Fix a test that hasn't worked since 2007

Due to a missing -verify, 2007-10-01-BuildArrayRef.c was a no-op.

The message was changed 5 years ago so also update the test to reflect the new wording.

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

10 years agoRemove duplicated -cc1 in tests
Alp Toker [Sun, 8 Dec 2013 18:06:52 +0000 (18:06 +0000)]
Remove duplicated -cc1 in tests

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

10 years agoGlobalAlias::isDeclaration is always false. Remove dead code.
Rafael Espindola [Sun, 8 Dec 2013 17:19:18 +0000 (17:19 +0000)]
GlobalAlias::isDeclaration is always false. Remove dead code.

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

10 years agoARM: teach Sema that "r" can match 64-bit values
Tim Northover [Sun, 8 Dec 2013 15:24:55 +0000 (15:24 +0000)]
ARM: teach Sema that "r" can match 64-bit values

We already support using "r" on 64-bit values (a GPRPair is
allocated), but Sema doesn't know this yet so issues a warning. This
should fix it.

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

10 years agoMove a generic lambda test into the more logical test file.
Faisal Vali [Sun, 8 Dec 2013 15:11:48 +0000 (15:11 +0000)]
Move a generic lambda test into the more logical test file.

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

10 years agoFix the message to go along with the assertion that was just fixed.
Faisal Vali [Sun, 8 Dec 2013 15:04:03 +0000 (15:04 +0000)]
Fix the message to go along with the assertion that was just fixed.

argh!

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

10 years agoFix an assertion introduced by my previous refactoring.
Faisal Vali [Sun, 8 Dec 2013 15:00:29 +0000 (15:00 +0000)]
Fix an assertion introduced by my previous refactoring.

Add back the test that was triggering the assertion (which I removed mistakenly thinking it was triggering just a warning and not an assertion).  My error was brought to my attention by Rafael (Thanks!).

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

10 years agoExtend assembler handling for NetBSD/MIPS to pass down the correct ABI,
Joerg Sonnenberger [Sun, 8 Dec 2013 13:54:58 +0000 (13:54 +0000)]
Extend assembler handling for NetBSD/MIPS to pass down the correct ABI,
architecture and PIC flag.

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

10 years agoFix pr18174.
Rafael Espindola [Sun, 8 Dec 2013 01:13:22 +0000 (01:13 +0000)]
Fix pr18174.

Clang outputs LLVM one top level decl at a time. This combined with the
visibility computation code looking for the newest NamespaceDecl would cause
it to produce different results for nested namespaces.

The two options for producing consistent results are
* Delay codegen of anything inside a namespace until the end of the file.
* Don't look for the newest NamespaceDecl.

This patch implements the second option.
This matches the gcc behavior too.

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

10 years agoDelete the now unnecessary test/generic-lambda-unimplemented-1y.cpp
Faisal Vali [Sat, 7 Dec 2013 20:57:51 +0000 (20:57 +0000)]
Delete the now unnecessary test/generic-lambda-unimplemented-1y.cpp

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

10 years ago[REFACTOR] Refactored some of the generic-lambda capturing code.
Faisal Vali [Sat, 7 Dec 2013 20:22:44 +0000 (20:22 +0000)]
[REFACTOR] Refactored some of the generic-lambda capturing code.

Employed the following refactorings:
  - Renamed some functions
  - Introduced explaining variables
  - Cleaned up & added comments
  - Used Optional<unsigned> for return value instead of an out parameter
  - Added assertions
  - Constified a few member functions

No functionality change.
All regressions pass.

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

10 years agoCodeGen: Don't emit linkage on thunks that aren't emitted because they're vararg.
Benjamin Kramer [Sat, 7 Dec 2013 16:12:52 +0000 (16:12 +0000)]
CodeGen: Don't emit linkage on thunks that aren't emitted because they're vararg.

This can happen when we're trying to emit a thunk with available_externally
linkage with optimization enabled but bail because it doesn't make sense
for vararg functions.

PR18098.

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

10 years agoEliminate the last trivial NDEBUG uses in clang headers
Alp Toker [Sat, 7 Dec 2013 13:51:35 +0000 (13:51 +0000)]
Eliminate the last trivial NDEBUG uses in clang headers

assert(sanity()) reads so much better than preprocessor conditional blocks.

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

10 years agoCommentLexer: eliminate an NDEBUG from the headers
Alp Toker [Sat, 7 Dec 2013 13:51:26 +0000 (13:51 +0000)]
CommentLexer: eliminate an NDEBUG from the headers

Code in headers shouldn't be conditional on the build configuration.

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

10 years agoChanged ConditionValue argument to PPCallbacks If and Elif callbacks to be a 3-state...
John Thompson [Sat, 7 Dec 2013 08:41:15 +0000 (08:41 +0000)]
Changed ConditionValue argument to PPCallbacks If and Elif callbacks to be a 3-state enum.

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

10 years agoTweak r196646
Alp Toker [Sat, 7 Dec 2013 07:32:31 +0000 (07:32 +0000)]
Tweak r196646

There was already a condition earlier in the function so just place the check
there.

Cleanup only.

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

10 years agoType traits: No need for switch to handle __builtin_types_compatible_p
Alp Toker [Sat, 7 Dec 2013 07:20:22 +0000 (07:20 +0000)]
Type traits: No need for switch to handle __builtin_types_compatible_p

__builtin_types_compatible_p() isn't a C++ type trait at all, rather a GNU C
special-case, so it's fine to use BoolTy the default return type for binary
type traits.

This brings BTT in line with other arities that already default to BoolTy.

Cleanup only, no change in behaviour.

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

10 years agoAdd a SubsetSubject in Attr.td to automate checking of where the objc_designated_init...
Argyrios Kyrtzidis [Sat, 7 Dec 2013 06:08:04 +0000 (06:08 +0000)]
Add a SubsetSubject in Attr.td to automate checking of where the objc_designated_initializer
attribute is acceptable.

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

10 years agoGive a more appropriate diagnostic when a template specialization or
Richard Smith [Sat, 7 Dec 2013 05:09:50 +0000 (05:09 +0000)]
Give a more appropriate diagnostic when a template specialization or
instantiation appears in a non-enclosing namespace (the previous diagnostic
talked about the C++98 rule even in C++11 mode).

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

10 years agoPass correct flags to assembler and linker for OpenBSD on AMD64, PowerPC
Joerg Sonnenberger [Sat, 7 Dec 2013 00:57:46 +0000 (00:57 +0000)]
Pass correct flags to assembler and linker for OpenBSD on AMD64, PowerPC
and MIPS64. From Brad Smith.

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

10 years agoObjectiveC. Continuing implementation of objc_bridge_related
Fariborz Jahanian [Sat, 7 Dec 2013 00:34:23 +0000 (00:34 +0000)]
ObjectiveC. Continuing implementation of objc_bridge_related
attribute in sema and issuing a variety of diagnostics lazily
for misuse of this attribute (and what to do) when converting
from CF types to ObjectiveC types (and vice versa).
// rdar://15499111

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

10 years agoFixing assertion failure introduced in 196602.
Warren Hunt [Sat, 7 Dec 2013 00:15:04 +0000 (00:15 +0000)]
Fixing assertion failure introduced in 196602.

Also includes a minor refactor with no functional change.

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

10 years agotest/Driver: Check that @ arguments that aren't files are handled
Justin Bogner [Fri, 6 Dec 2013 22:57:13 +0000 (22:57 +0000)]
test/Driver: Check that @ arguments that aren't files are handled

This tests the bug fix in llvm r196620.

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

10 years agoAdded support for mcpu krait
Ana Pazos [Fri, 6 Dec 2013 22:43:17 +0000 (22:43 +0000)]
Added support for mcpu krait

- krait processor currently modeled with the same features as A9.
- Krait processor additionally has VFP4 (fused multiply add/sub)
and hardware division features enabled.
- krait has currently the same Schedule model as A9
- krait cpu flag is not recognized by the GNU assembler yet,
it is replaced with march=armv7-a to avoid a lower march
from being used.

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

10 years agoFix test case inefficiency
David Peixotto [Fri, 6 Dec 2013 20:42:24 +0000 (20:42 +0000)]
Fix test case inefficiency

Was accidently passing the file to clang twice. No functionaly change.

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

10 years agoAdd option to use temporary file for assembling with clang
David Peixotto [Fri, 6 Dec 2013 20:27:33 +0000 (20:27 +0000)]
Add option to use temporary file for assembling with clang

This commit adds the flag '-via-file-asm' to the clang driver. The
purpose of this flag is to have a way to test that clang can consume
the assembly code that it outputs. When passed this flag, clang will
generate a temporary file that contains the assembly output from the
compile step. This assembly file will then be consumed by either the
integrated assembler or the external assembler. To test that the
integrated assembler can consume its own output compile with:

  $ clang -integrated-assembler -via-file-asm

Without the '-via-file-asm' flag, clang would directly create the
object file when using the integrated assembler. With the flag it
will first create the temporary assembly file and then read that
file and assemble it with the integrated assembler.

The flow is similar to -save-temps, except that it only effects
the assembly input and the temporary file is not saved.

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

10 years ago[MS-ABI] adds padding before all vbases after a bitfield
Warren Hunt [Fri, 6 Dec 2013 20:16:49 +0000 (20:16 +0000)]
[MS-ABI] adds padding before all vbases after a bitfield

MS-ABI adds padding before *every* vbase if the last field in a record
is a bit-field. This changes clangs behavior to match. I also fix some
windows-style line endings in the test file.

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

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

10 years ago[MS-ABI] Fix alias-avoidance padding between bases
Warren Hunt [Fri, 6 Dec 2013 19:54:25 +0000 (19:54 +0000)]
[MS-ABI] Fix alias-avoidance padding between bases

Adds padding between bases or virtual bases in an attempt to avoid
aliasing of zero-sized sub-objects.  The approach used by the ABI adds
two more bits of state.  Detailed comments are in the code.  Test cases
included.

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

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

10 years agoFixup to r196593.
Anna Zaks [Fri, 6 Dec 2013 19:28:16 +0000 (19:28 +0000)]
Fixup to r196593.

This is another regression fixed by reverting r189090.

In this case, the problem is not live variables but the approach that was taken in r189090. This regression was caused by explicitly binding "true" to the condition when we take the true branch. Normally that's okay, but in this case we're planning to reuse that condition as the value of the expression.

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

10 years agoRevert "[analyzer] Refactor conditional expression evaluating code"
Anna Zaks [Fri, 6 Dec 2013 18:56:29 +0000 (18:56 +0000)]
Revert "[analyzer] Refactor conditional expression evaluating code"

This reverts commit r189090.

The original patch introduced regressions (see the added live-variables.* tests). The patch depends on the correctness of live variable analyses, which are not computed correctly. I've opened PR18159 to track the proper resolution to this problem.

The patch was a stepping block to r189746. This is why part of the patch reverts temporary destructor tests that started crashing. The temporary destructors feature is disabled by default.

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

10 years agoTurning the __w64 attribute into an ignored attribute to match other Microsoft extens...
Aaron Ballman [Fri, 6 Dec 2013 18:56:03 +0000 (18:56 +0000)]
Turning the __w64 attribute into an ignored attribute to match other Microsoft extensions we do not currently support. Note that __w64 has been deprecated in MSVC since 2008.

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

10 years ago[libclang] Rename CXSkippedRanges to CXSourceRangeList to make it more future-proof.
Argyrios Kyrtzidis [Fri, 6 Dec 2013 18:55:45 +0000 (18:55 +0000)]
[libclang] Rename CXSkippedRanges to CXSourceRangeList to make it more future-proof.

Suggested by Alp Toker.

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

10 years agoMove the body of GCCInstallationDetector ctor into an init() function
Roman Divacky [Fri, 6 Dec 2013 18:32:18 +0000 (18:32 +0000)]
Move the body of GCCInstallationDetector ctor into an init() function
and call it from its only user. The linux toolchain. This saves quite
a lot of directory searching on other platforms.

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

10 years agoAdd flag -fauto-profile as alias to -fprofile-sample-use.
Diego Novillo [Fri, 6 Dec 2013 17:58:19 +0000 (17:58 +0000)]
Add flag -fauto-profile as alias to -fprofile-sample-use.

Summary:
GCC uses -fauto-profile to enable sample-based PGO. This patch
adds it to Clang as an alias for -fprofile-sample-use.

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

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

10 years agoFix code typos spotted while working on type traits
Alp Toker [Fri, 6 Dec 2013 17:56:43 +0000 (17:56 +0000)]
Fix code typos spotted while working on type traits

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

10 years agoTweak the ordering of a conditional to possibly avoid a few strcmps.
Aaron Ballman [Fri, 6 Dec 2013 16:26:55 +0000 (16:26 +0000)]
Tweak the ordering of a conditional to possibly avoid a few strcmps.

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

10 years agoReverting changes from r196415; this patch exposed a different, but unrelated bug...
Aaron Ballman [Fri, 6 Dec 2013 15:58:47 +0000 (15:58 +0000)]
Reverting changes from r196415; this patch exposed a different, but unrelated bug regarding the __has_attribute implementation. Reverting to unblock the Chrome tsan builds.

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

10 years agoclang-format: Change line break decisions for array subscripts.
Daniel Jasper [Fri, 6 Dec 2013 15:19:50 +0000 (15:19 +0000)]
clang-format: Change line break decisions for array subscripts.

Before:
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<int> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
      [aaaaaaaaaaaa];
After:
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<int>
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[aaaaaaaaaaaa];

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

10 years agoAllow string literals as module names.
Daniel Jasper [Fri, 6 Dec 2013 09:25:54 +0000 (09:25 +0000)]
Allow string literals as module names.

In order to make the migration to modules easier, it seems to be helpful
to allow a 1:1 mapping between target names of a current build system
and the corresponding C++ modules. As  such targets commonly contain
characters like "-". ":" and "/", allowing arbitrary quote-escaped
strings seems to be a straightforward option.

After several offline discussions, the precise mechanisms for C++
module names especially regarding submodules and import statements has
yet to be determined. Thus, this patch only enables string literals as
names inside the module map files which can be used by automatic module
import (through #include).

Also improve the error message on missing use-declarations.

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

10 years agoAdd introductory paragraph to the C++ status page
Alp Toker [Fri, 6 Dec 2013 06:35:49 +0000 (06:35 +0000)]
Add introductory paragraph to the C++ status page

Use internal links to provide easier access to recent and ongoing work.

Also shift up the order of standards in the page title in order to avoid web
search results focusing on C++98 in the summary.

This is done to highlight the modern standards support in clang that was
previously languishing at the bottom of the page.

  "C++98/03 is sooooo yesterday" - dgregor

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

10 years agoPR18152: When computing the semantic form for an initializer list, keep track
Richard Smith [Fri, 6 Dec 2013 01:27:24 +0000 (01:27 +0000)]
PR18152: When computing the semantic form for an initializer list, keep track
of whether the initializer list is dependent.

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

10 years agoSupport MS-ABI's concept of "Required Alignment" imposed by
Warren Hunt [Fri, 6 Dec 2013 00:01:17 +0000 (00:01 +0000)]
Support MS-ABI's concept of "Required Alignment" imposed by
__declspec(align())

This patch implements required alignment in a way that makes
__declspec(align()) and #pragma pack play correctly together. In the
MS-ABI, __declspec(align()) is a hard rule and cannot be overridden by
#pragma pack. This cases each record to have two interesting alignments
"preferred alignment" (which matches Itanium's concept of alignment) and
"required alignment" which is an alignment that must never be violated,
even in the case of #pragma pack. This patch introduces the concept of
Required Alignment to the record builder and tracks/uses it
appropriately. Test cases are included.

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

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

10 years ago-Wassign-enum: compare unqualified types
Dmitri Gribenko [Thu, 5 Dec 2013 23:06:53 +0000 (23:06 +0000)]
-Wassign-enum: compare unqualified types

This commit changes -Wassign-enum to compare unqualified types.  One could
think that this does not matter much, because who wants a value of enum type
that is const-qualified?  But this breaks the intended pattern to silence this
warning with an explicit cast:

    static const enum Foo z = (enum Foo) 42;

In this case, source type is 'enum Foo', and destination type is 'const enum
Foo', and if we compare qualified types, they don't match, so we used warn.

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

10 years agoAllow the warning 'case value not in enumerated type' to be silenced with
Dmitri Gribenko [Thu, 5 Dec 2013 22:52:07 +0000 (22:52 +0000)]
Allow the warning 'case value not in enumerated type' to be silenced with
the following pattern.

If 'case' expression refers to a static const variable of the correct enum
type, then we count this as a sufficient declaration of intent by the user,
so we silence the warning.

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

10 years ago[ms-cxxabi] bitcast to i8* to deref a data member pointer
Reid Kleckner [Thu, 5 Dec 2013 22:44:07 +0000 (22:44 +0000)]
[ms-cxxabi] bitcast to i8* to deref a data member pointer

This was causing us to miscompile
llvm::SymbolTableListTraits::getListOwner(), which uses data member
pointers.

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