]> granicus.if.org Git - clang/log
clang
10 years agoAdd CFG tests for switch's involving "extended" enum.
Ted Kremenek [Wed, 11 Dec 2013 23:44:05 +0000 (23:44 +0000)]
Add CFG tests for switch's involving "extended" enum.

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

10 years agoAdd new PrintingPolicy entry to trim number of newlines. Useful for the CFG printer.
Ted Kremenek [Wed, 11 Dec 2013 23:44:02 +0000 (23:44 +0000)]
Add new PrintingPolicy entry to trim number of newlines.  Useful for the CFG printer.

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

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

10 years agoChange semantics of regex expectations in the diagnostic verifier
Hans Wennborg [Wed, 11 Dec 2013 23:40:50 +0000 (23:40 +0000)]
Change semantics of regex expectations in the diagnostic verifier

Previously, a line like

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

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

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

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

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

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

10 years ago[AArch64] Refactor NEON floating-point Max/Min/Maxnm/Minnm across vector AArch64
Chad Rosier [Wed, 11 Dec 2013 23:21:39 +0000 (23:21 +0000)]
[AArch64] Refactor NEON floating-point Max/Min/Maxnm/Minnm across vector AArch64
intrinsics to use f32 types, rather than their vector equivalents.

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

10 years agoRemove extra qualification to fix build with g++ after r197076
Alp Toker [Wed, 11 Dec 2013 22:50:04 +0000 (22:50 +0000)]
Remove extra qualification to fix build with g++ after r197076

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

10 years ago[ms-abi][cleanup] Removing FinalizeCXXLayout : no functional change
Warren Hunt [Wed, 11 Dec 2013 22:28:32 +0000 (22:28 +0000)]
[ms-abi][cleanup] Removing FinalizeCXXLayout : no functional change

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

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

10 years agoNo longer accepting attribute spellings with prefix and suffix underscores except...
Aaron Ballman [Wed, 11 Dec 2013 22:27:44 +0000 (22:27 +0000)]
No longer accepting attribute spellings with prefix and suffix underscores except for GNU attributes, or C++11-style attributes in the GNU namespace. This prevents attributes such as __declspec(__dllexport__) or [[__noreturn__]] from being treated as known attributes.

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

10 years agoRevert r197043, not a good comment
Renato Golin [Wed, 11 Dec 2013 21:44:56 +0000 (21:44 +0000)]
Revert r197043, not a good comment

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

10 years ago[objcmt] When emitting a remap file, use a json format with the edit entries, instead...
Argyrios Kyrtzidis [Wed, 11 Dec 2013 21:39:06 +0000 (21:39 +0000)]
[objcmt] When emitting a remap file, use a json format with the edit entries, instead of applying the changes
to a temp file directly.

This allows to combine the edits when they can be different based on whether you saw
the implementation or not, e.g. with the designated initializer migration.

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

10 years ago[objcmt] When whitelisting the headers we want to modify, allow changing the
Argyrios Kyrtzidis [Wed, 11 Dec 2013 21:39:00 +0000 (21:39 +0000)]
[objcmt] When whitelisting the headers we want to modify, allow changing the
the ObjC implementation declarations, just don't change implementations for
classes that are not in the whitelisted headers.

For example, if we change a method to return 'instancetype' we should also
update the method definition in the implementation.

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

10 years ago[AArch64] Add NEON scalar floating-point compare LLVM AArch64 intrinsics that
Chad Rosier [Wed, 11 Dec 2013 21:03:56 +0000 (21:03 +0000)]
[AArch64] Add NEON scalar floating-point compare LLVM AArch64 intrinsics that
use f32/f64 types, rather than their vector equivalents.

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

10 years ago[AArch64] Refactor the NEON scalar floating-point reciprocal step and
Chad Rosier [Wed, 11 Dec 2013 21:03:54 +0000 (21:03 +0000)]
[AArch64] Refactor the NEON scalar floating-point reciprocal step and
floating-point reciprocal square root step LLVM AArch64 intrinsics to
use f32/f64 types, rather than their vector equivalents.

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

10 years ago[AArch64] Refactor the NEON scalar floating-point reciprocal estimate, floating-
Chad Rosier [Wed, 11 Dec 2013 21:03:52 +0000 (21:03 +0000)]
[AArch64] Refactor the NEON scalar floating-point reciprocal estimate, floating-
point reciprocal exponent, and floating-point reciprocal square root estimate
LLVM AArch64 intrinsics to use f32/f64 types, rather than their vector
equivalents.

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

10 years ago[ms-cxxabi] Fix linkage of dtor thunks for anonymous classes
Reid Kleckner [Wed, 11 Dec 2013 19:21:27 +0000 (19:21 +0000)]
[ms-cxxabi] Fix linkage of dtor thunks for anonymous classes

We were mistakengly giving linkonce_odr linkage instead of internal
linkage to the deleting and complete destructor thunks for classes in
anonymous namespaces.

Fixes PR17273.

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

10 years ago[analyzer] Add checker callbacks for MemberExpr and UnaryExprOrTypeTraitExpr.
Jordan Rose [Wed, 11 Dec 2013 17:58:10 +0000 (17:58 +0000)]
[analyzer] Add checker callbacks for MemberExpr and UnaryExprOrTypeTraitExpr.

Found by Arthur Yoo!

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

10 years agoBetter diagnostic for static override when methods are thiscall by default
Hans Wennborg [Wed, 11 Dec 2013 17:42:11 +0000 (17:42 +0000)]
Better diagnostic for static override when methods are thiscall by default

Methods are thiscall by default in the MS ABI, and also in MinGW targetting GCC 4.7 or later.

This changes the diagnostic from the technically correct but hard to understand:

  virtual function 'foo' has different calling convention attributes ('void ()') than the function it overrides (which has calling convention 'void () __attribute__((thiscall))')

to the more intuitive and also correct:

  'static' member function 'foo' overrides a virtual function

We already have a test for this. Let's just run it in both ABI modes.

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

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

10 years agoAdd comment about PragmaIntroducerKind
Renato Golin [Wed, 11 Dec 2013 14:45:53 +0000 (14:45 +0000)]
Add comment about PragmaIntroducerKind

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

10 years agoAdd front-end infrastructure now address space casts are in LLVM IR.
David Tweed [Wed, 11 Dec 2013 13:39:46 +0000 (13:39 +0000)]
Add front-end infrastructure now address space casts are in LLVM IR.

With the introduction of explicit address space casts into LLVM, there's
a need to provide a new cast kind the front-end can create for C/OpenCL/CUDA
and code to produce address space casts from those kinds when appropriate.

Patch by Michele Scandale!

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

10 years agoAdd file missing from r197034.
Daniel Jasper [Wed, 11 Dec 2013 12:33:22 +0000 (12:33 +0000)]
Add file missing from r197034.

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

10 years agoModules: Let -fmodules-decluse ignore headers that aren't in a module
Daniel Jasper [Wed, 11 Dec 2013 12:13:00 +0000 (12:13 +0000)]
Modules: Let -fmodules-decluse ignore headers that aren't in a module

Includes might always pull in arbitrary header or data files outside of
modules. Among others, this includes builtin includes, which do not have
a module (story) yet.

Also cleanup implementation of ModuleMap::findModuleForHeader() to be
non-recursive.

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

10 years agoOnly build ARM-specific runtimes if ARM is enabled
Tim Northover [Wed, 11 Dec 2013 12:01:21 +0000 (12:01 +0000)]
Only build ARM-specific runtimes if ARM is enabled

The soft-float variants of (embedded) libclang_rt only make sense for ARM, so
there's no point in trying to build them if the compiler is only capable of
targeting x86.

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

10 years agoTurning IAS on by default on ARM/Thumb
Renato Golin [Wed, 11 Dec 2013 09:35:10 +0000 (09:35 +0000)]
Turning IAS on by default on ARM/Thumb

This is an experimental feature, where -integrated-as will be
on by default on ARM/Thumb. We aim to detect the missing features
so that the next release is stable.

Updating the ReleaseNotes, too.

Also moving the AArch64 into the same place.

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

10 years agoMention LeakSanitizer in AddressSanitizer docs.
Sergey Matveev [Wed, 11 Dec 2013 09:14:36 +0000 (09:14 +0000)]
Mention LeakSanitizer in AddressSanitizer docs.

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

10 years agoChange layering warning tests to not actually build modules.
Daniel Jasper [Wed, 11 Dec 2013 09:11:12 +0000 (09:11 +0000)]
Change layering warning tests to not actually build modules.

Specifically, we want to warn only for direct layering violations for
the modules we are calling clang on.

This temporarily unblocks
http://llvm-reviews.chandlerc.com/D2374

Once that is in, we'll also want to investigate whether to check the
layering in the build step of modules that we build transitively.

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

10 years agoWhen performing a delayed access check, use the surrounding lexical context for
Richard Smith [Wed, 11 Dec 2013 03:35:27 +0000 (03:35 +0000)]
When performing a delayed access check, use the surrounding lexical context for
any local extern declaration, not just a local extern function.

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

10 years ago[ms-abi] Makes Virtual Base Alignment Look at All Virtual Bases
Warren Hunt [Wed, 11 Dec 2013 02:21:03 +0000 (02:21 +0000)]
[ms-abi] Makes Virtual Base Alignment Look at All Virtual Bases

Prior to this patch, the alignment imposed by virtual bases only
included direct virtual bases.  This patch fixes it to look at all
virtual bases.

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

10 years agoWhen performing an array new of a multidimensional array with an initializer
Richard Smith [Wed, 11 Dec 2013 01:40:16 +0000 (01:40 +0000)]
When performing an array new of a multidimensional array with an initializer
list, each element of the initializer list may provide more than one of the
base elements of the array. Be sure to initialize the right type and bump the
array pointer by the right amount.

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

10 years ago[objcmt] Transfer '-objcmt-migrate-designated-init' from the driver to cc1 invocation.
Argyrios Kyrtzidis [Wed, 11 Dec 2013 01:29:48 +0000 (01:29 +0000)]
[objcmt] Transfer '-objcmt-migrate-designated-init' from the driver to cc1 invocation.

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

10 years agoObjectiveC. Fixes a bug where an 'unused property ivar'
Fariborz Jahanian [Wed, 11 Dec 2013 00:53:48 +0000 (00:53 +0000)]
ObjectiveC. Fixes a bug where  an 'unused property ivar'
warning is coming out incorrectly too early
becuase of unrelated scope pop. // rdar://15630719

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

10 years agoObjectiveC. Provide a property-dot syntax for fixit
Fariborz Jahanian [Tue, 10 Dec 2013 23:18:06 +0000 (23:18 +0000)]
ObjectiveC. Provide a property-dot syntax for fixit
when selector in objc_bridge_related attribute names
a property. // rdar://15517899

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

10 years agostyle fix
David Fang [Tue, 10 Dec 2013 23:13:11 +0000 (23:13 +0000)]
style fix

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

10 years agodarwin asm driver: suppress -Q for -no-integrated-as on darwin<11
David Fang [Tue, 10 Dec 2013 22:51:25 +0000 (22:51 +0000)]
darwin asm driver: suppress -Q for -no-integrated-as on darwin<11

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

10 years agoObjective-C. Minor change to a diagnostic.
Fariborz Jahanian [Tue, 10 Dec 2013 22:22:45 +0000 (22:22 +0000)]
Objective-C. Minor change to a diagnostic.
// rdar://15499111

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

10 years ago[AArch64] Refactor the NEON floating-point absolute difference LLVM AArch64
Chad Rosier [Tue, 10 Dec 2013 21:34:23 +0000 (21:34 +0000)]
[AArch64] Refactor the NEON floating-point absolute difference LLVM AArch64
intrinsic to use f32/f64 types, rather than their vector equivalents.

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

10 years ago[AArch64] Refactor the NEON signed/unsigned floating-point convert to fixed-point
Chad Rosier [Tue, 10 Dec 2013 21:34:21 +0000 (21:34 +0000)]
[AArch64] Refactor the NEON signed/unsigned floating-point convert to fixed-point
LLVM AArch64 intrinsics to use f32/f64, rather than their vector equivalents.

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

10 years ago[AArch64] Overload NEON signed/unsigned floating-point convert to fixed-point
Chad Rosier [Tue, 10 Dec 2013 21:34:20 +0000 (21:34 +0000)]
[AArch64] Overload NEON signed/unsigned floating-point convert to fixed-point
and fixed-point convert to floating-point LLVM AArch64 intrinsics.

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

10 years ago[AArch64] Overload NEON signed/unsigned integer convert to floating-point
Chad Rosier [Tue, 10 Dec 2013 21:34:17 +0000 (21:34 +0000)]
[AArch64] Overload NEON signed/unsigned integer convert to floating-point
LLVM AArch64 intrinsics.

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

10 years agoParse: Avoid crashing on unterminated top-level asm strings
Justin Bogner [Tue, 10 Dec 2013 21:29:48 +0000 (21:29 +0000)]
Parse: Avoid crashing on unterminated top-level asm strings

When parsing invalid top-level asm statements, we were ignoring the
return code of the SkipUntil we used for recovery. This led to crashes
when we hit the end of file and tried to continue parsing anyway.

This fixes the crash and adds a couple of tests for parsing related
problems.

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

10 years agoTiny cleanup, as suggested by David Blaikie.
Richard Smith [Tue, 10 Dec 2013 20:56:03 +0000 (20:56 +0000)]
Tiny cleanup, as suggested by David Blaikie.

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

10 years agoRewrite docs/LeakSanitizer.rst. Add it to index.
Sergey Matveev [Tue, 10 Dec 2013 20:10:30 +0000 (20:10 +0000)]
Rewrite docs/LeakSanitizer.rst. Add it to index.

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

10 years agoRename attribute 'objc_suppress_protocol_methods' to 'objc_protocol_requires_explicit...
Ted Kremenek [Tue, 10 Dec 2013 19:43:48 +0000 (19:43 +0000)]
Rename attribute 'objc_suppress_protocol_methods' to 'objc_protocol_requires_explicit_implementation'.

That's a mouthful, and not necessarily the final name.  This also
reflects a semantic change where this attribute is now on the
protocol itself instead of a class.  This attribute will require
that a protocol, when adopted by a class, is explicitly implemented
by the class itself (instead of walking the super class chain).

Note that this attribute is not "done".  This should be considered
a WIP.

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

10 years agoEnhance attribute machinery to include ObjCProtocols as "subjects" in attribute decla...
Ted Kremenek [Tue, 10 Dec 2013 19:43:42 +0000 (19:43 +0000)]
Enhance attribute machinery to include ObjCProtocols as "subjects" in attribute declarations.

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

10 years agoAdd a triple to this IRgen test to unbreak the ARM bots.
Richard Smith [Tue, 10 Dec 2013 19:37:58 +0000 (19:37 +0000)]
Add a triple to this IRgen test to unbreak the ARM bots.

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

10 years agoImprove on an objc_bridge_related diagnostic.
Fariborz Jahanian [Tue, 10 Dec 2013 19:22:41 +0000 (19:22 +0000)]
Improve on an objc_bridge_related diagnostic.
// rdar://15499111

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

10 years agoMake the -via-file-asm an InternalDebugOpt
David Peixotto [Tue, 10 Dec 2013 18:49:55 +0000 (18:49 +0000)]
Make the -via-file-asm an InternalDebugOpt

We do not need to expose this flag to the user. This commit makes
the flag an interal debug option that will only display its help
when printing with --help-hidden.

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

10 years ago[Driver] Rename '-objcmt-white-list-dir-path' option to '-objcmt-whitelist-dir-path...
Argyrios Kyrtzidis [Tue, 10 Dec 2013 18:36:53 +0000 (18:36 +0000)]
[Driver] Rename '-objcmt-white-list-dir-path' option to '-objcmt-whitelist-dir-path' and add an alias for now.

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

10 years ago[objcmt] Add a modernization option to infer and suggest designated initializers.
Argyrios Kyrtzidis [Tue, 10 Dec 2013 18:36:49 +0000 (18:36 +0000)]
[objcmt] Add a modernization option to infer and suggest designated initializers.

rdar://15509284

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

10 years ago[AST] In ObjCInterfaceDecl::isDesignatedInitializer(), use getMethod() instead of...
Argyrios Kyrtzidis [Tue, 10 Dec 2013 18:36:43 +0000 (18:36 +0000)]
[AST] In ObjCInterfaceDecl::isDesignatedInitializer(), use getMethod() instead of lookupMethod().

lookupMethod also goes through categories, which we don't need there.

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

10 years agoUpdate clang MS inline asm tests for r196939
Reid Kleckner [Tue, 10 Dec 2013 18:27:51 +0000 (18:27 +0000)]
Update clang MS inline asm tests for r196939

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

10 years ago[analyzer] Misc. tidying in IdenticalExprChecker.
Jordan Rose [Tue, 10 Dec 2013 18:18:10 +0000 (18:18 +0000)]
[analyzer] Misc. tidying in IdenticalExprChecker.

Some things I missed when this first went in.

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

10 years ago[analyzer] Extend IdenticalExprChecker to check ternary operator results.
Jordan Rose [Tue, 10 Dec 2013 18:18:06 +0000 (18:18 +0000)]
[analyzer] Extend IdenticalExprChecker to check ternary operator results.

Warn if both result expressions of a ternary operator (? :) are the same.
Because only one of them will be executed, this warning will fire even if
the expressions have side effects.

Patch by Anders Rönnholm and Per Viberg!

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

10 years ago[AArch64] Refactor the redundant code in the EmitAArch64ScalarBuiltinExpr()
Chad Rosier [Tue, 10 Dec 2013 17:44:36 +0000 (17:44 +0000)]
[AArch64] Refactor the redundant code in the EmitAArch64ScalarBuiltinExpr()
function.  No functional change intended.

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

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