]>
granicus.if.org Git - clang/log
Daniel Jasper [Sat, 12 Oct 2013 05:16:06 +0000 (05:16 +0000)]
clang-format: No space in "<::" in C++11 mode.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192524
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 12 Oct 2013 04:24:31 +0000 (04:24 +0000)]
Add missing flags -fexpensive-optimizations and -minline-all-stringops as noops.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192521
91177308 -0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Fri, 11 Oct 2013 23:03:26 +0000 (23:03 +0000)]
Consumed analysis: replace the consumes attribute with a set_typestate
attribute. Patch by chris.wailes@gmail.com; reviewed and edited by delesley.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192515
91177308 -0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Fri, 11 Oct 2013 22:30:48 +0000 (22:30 +0000)]
Consumed analysis: switch from tests_consumed/unconsumed to a general
tests_typestate attribute. Patch by chris.wailes@gmail.com.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192513
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Fri, 11 Oct 2013 22:16:04 +0000 (22:16 +0000)]
Improve the error message for attempting to build a for range loop using a
function parameter that has array type. Such a parameter will be treated as
a pointer type instead, resulting in a missing begin function error is a
suggestion to dereference the pointer. This provides a different,
more informative diagnostic as well as point to the parameter declaration.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192512
91177308 -0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Fri, 11 Oct 2013 21:55:33 +0000 (21:55 +0000)]
Consumed analysis: check destructor calls.
This allows the callable_when attribute to be attached to destructors.
Original patch by chris.wailes@gmail.com, reviewed and edited by delesley.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192508
91177308 -0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Fri, 11 Oct 2013 21:43:05 +0000 (21:43 +0000)]
Don't break string literals inside preprocessor directives.
Summary:
This way we avoid breaking code which uses unknown preprocessor
directives with long string literals. The specific use case in
http://llvm.org/PR17035 isn't very common, but it seems to be a good idea to
avoid this kind of problem anyway.
Reviewers: djasper
Reviewed By: djasper
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D1813
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192507
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 11 Oct 2013 21:34:56 +0000 (21:34 +0000)]
ObjectiveC migrator. also support migration to
NS_ENUM/NS_OPTIONS macros when typedef declaration
precedes enum declaration. // rdar://
15200915
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192506
91177308 -0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Fri, 11 Oct 2013 21:32:01 +0000 (21:32 +0000)]
Changed clang-format-diff.py to output diff by default. Added -i option to apply changes to files instead.
Summary:
"svn diff|clang-format-diff.py" will just output the diff.
Now it's possible to use:
svn diff|clang-format-diff.py|patch -p0
as an equivalent to:
svn diff|clang-format-diff.py -i
;)
Reviewers: djasper
Reviewed By: djasper
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1840
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192505
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Fri, 11 Oct 2013 21:25:45 +0000 (21:25 +0000)]
Support formatting of preprocessor branches.
We now correctly format:
void SomeFunction(int param1,
#ifdef X
NoTemplate param2,
#else
template <
#ifdef A
MyType<Some> >
#else
Type1, Type2>
#endif
param2,
#endif
param3) {
f();
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192503
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 11 Oct 2013 21:10:11 +0000 (21:10 +0000)]
Only use the MS record layout when using the MS C++ ABI
We're not ready to use it everywhere we use a win32 triple yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192502
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Fri, 11 Oct 2013 20:48:38 +0000 (20:48 +0000)]
Turn struct-path aware TBAA on by default.
Use -no-struct-path-tbaa to turn it off.
This is the same as r191695, which was reverted because it depends on a
commit that has issues.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192497
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 11 Oct 2013 20:46:27 +0000 (20:46 +0000)]
Use castAs instead of cast in thunk generation
Calling convention attributes can add sugar to methods that we have to
look through. This fixes an assertion failure in the provided test
case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192496
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 11 Oct 2013 20:41:08 +0000 (20:41 +0000)]
Fix unused variable warning in MS record layout.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192495
91177308 -0d34-0410-b5e6-
96231b3b80d8
Warren Hunt [Fri, 11 Oct 2013 20:19:00 +0000 (20:19 +0000)]
Adds Microsoft compatiable C++ record layout code to clang.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192494
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 11 Oct 2013 19:58:38 +0000 (19:58 +0000)]
[libclang] Introduce clang_Type_getCXXRefQualifier whichexposes ref-qualifier information of function type.
Patch by Che-Liang Chiou!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192493
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 11 Oct 2013 19:45:02 +0000 (19:45 +0000)]
clang-format: Don't remove 'unknown' tokens.
In certain macros or incorrect string literals, the token stream can
contain 'unknown' tokens, e.g. a single backslash or a set of empty
ticks. clang-format simply treated them as whitespace and removed them
prior to this patch.
This fixes llvm.org/PR17215
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192490
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 11 Oct 2013 18:16:51 +0000 (18:16 +0000)]
Remove extra braces.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192473
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 11 Oct 2013 17:35:22 +0000 (17:35 +0000)]
ObjectiveC migrator: fixes a bug when in NS_ENUM/NS_OPTIONS
migration, the typedef has annotations.
// rdar://
15200602
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192468
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 11 Oct 2013 17:11:51 +0000 (17:11 +0000)]
clang-cl: Mark /FA and /Fa as unsupported options
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192465
91177308 -0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 11 Oct 2013 16:56:21 +0000 (16:56 +0000)]
Don't hardcode the alias order in this test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192464
91177308 -0d34-0410-b5e6-
96231b3b80d8
Robert Lytton [Fri, 11 Oct 2013 10:55:53 +0000 (10:55 +0000)]
remove path separator from test/Driver/xcore-opts.c
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192439
91177308 -0d34-0410-b5e6-
96231b3b80d8
Robert Lytton [Fri, 11 Oct 2013 10:29:40 +0000 (10:29 +0000)]
XCore target: add an xcore toolchain implementation
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192437
91177308 -0d34-0410-b5e6-
96231b3b80d8
Robert Lytton [Fri, 11 Oct 2013 10:29:34 +0000 (10:29 +0000)]
XCore : Fix bug in XCoreABIInfo::EmitVAArg()
Incorrect handling of 'double' and 'long long int'
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192436
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 11 Oct 2013 04:25:21 +0000 (04:25 +0000)]
Diagnose by-copy captures of abstract classes.
Fixes <rdar://problem/
14468891 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192419
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Fri, 11 Oct 2013 03:52:43 +0000 (03:52 +0000)]
The emitted IR is the same, we need these flags to actually use the LLVM target.
Mark it as requiring the x86 target.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192417
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Fri, 11 Oct 2013 03:35:10 +0000 (03:35 +0000)]
Add -fno-function-sections and -fno-data-sections. Since
-f{function,data}-sections had no tests at all, add some, and verify that the
-fno variants work as well.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192413
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Fri, 11 Oct 2013 03:33:53 +0000 (03:33 +0000)]
Fix typo in comment. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192412
91177308 -0d34-0410-b5e6-
96231b3b80d8
Kevin Qin [Fri, 11 Oct 2013 02:34:30 +0000 (02:34 +0000)]
Implemented aarch64 SIMD copy related ACLE intrinsic :
vget_lane, vset_lane, vcopy_lane, vcreate, vdup_n, vdup_lane, vmov_n.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192411
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 10 Oct 2013 23:57:58 +0000 (23:57 +0000)]
ObjectiveC migrator. When migrating to NS_ENUM/NS_OPTIONS,
don't leave a blank line behind replacing the typedef
decl. // rdar://
15200949
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192407
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 10 Oct 2013 23:04:06 +0000 (23:04 +0000)]
clang-cl: simplify the -m32 -m64 test
This was just broken.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192405
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 10 Oct 2013 22:36:20 +0000 (22:36 +0000)]
clang-cl: Expose the -m32 and -m64 command-line options
And add a test to check that they work.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192402
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 10 Oct 2013 21:58:04 +0000 (21:58 +0000)]
ObjectiveC. ObjectiveC's collection selector expression in
the fereach loop must be a non-const lvalue expression as
it will be assigned to at the beginning of the loop.
// rdar://
15123684
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192399
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mark Lacey [Thu, 10 Oct 2013 20:57:00 +0000 (20:57 +0000)]
Make CodeGenTypes data members private.
No functionality differences.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192390
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Thu, 10 Oct 2013 18:40:16 +0000 (18:40 +0000)]
Debug Info: update testing cases when the context field of subprogram is updated
to use DIScopeRef.
Paired commit with r192378.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192379
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 10 Oct 2013 18:23:13 +0000 (18:23 +0000)]
ObjectiveC migrator: For 'default' and 'shared' family of
methods, infer their self's type as their result type.
// rdar://
15145218
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192377
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 10 Oct 2013 18:03:08 +0000 (18:03 +0000)]
Locate VS InstallDir in the presence of newer runtime
This fixes getSystemRegistryString() in WindowsToolChain.cpp to
make sure that the VS version that it picks has an InstallDir.
Previously we would look for the highest version os VS and check
for InstallDir afterwards.
Patch by Yaron Keren!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192374
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hao Liu [Thu, 10 Oct 2013 17:01:49 +0000 (17:01 +0000)]
Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem).
Including following 14 instructions:
4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers.
ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4).
4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers.
st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192362
91177308 -0d34-0410-b5e6-
96231b3b80d8
Timur Iskhodzhanov [Thu, 10 Oct 2013 16:38:32 +0000 (16:38 +0000)]
Disable RTTI in one test so clang doesn't assert behind the scenes
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192359
91177308 -0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Thu, 10 Oct 2013 16:00:08 +0000 (16:00 +0000)]
Revert "Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem). "
This reverts commit r192351. The LLVM side broke the build and the Clang tests
will inevitably fail without it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192356
91177308 -0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 10 Oct 2013 15:04:21 +0000 (15:04 +0000)]
Revert "Use aliases for more constructors and destructors."
This reverts commit r192300.
The change itself looks correct, but it found issues on how we handle aliases
in llvm.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192353
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hao Liu [Thu, 10 Oct 2013 14:59:36 +0000 (14:59 +0000)]
Implement AArch64 vector load/store multiple N-element structure class SIMD(lselem).
Including following 14 instructions:
4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers.
ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4).
4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers.
st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4).
E.g. ld1(3 registers version) will load 32-bit elements {A, B, C, D, E, F} sequentially into the three 64-bit vectors list {BA, DC, FE}.
E.g. ld3 will load 32-bit elements {A, B, C, D, E, F} into the three 64-bit vectors list {DA, EB, FC}.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192351
91177308 -0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Thu, 10 Oct 2013 13:36:20 +0000 (13:36 +0000)]
Correctly detect colon in bit fields. Fixes PR17333.
Summary: Colon was incorrectly detected as a start of inheritance list. Fixed.
Reviewers: djasper
Reviewed By: djasper
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D1884
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192349
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 10 Oct 2013 12:24:40 +0000 (12:24 +0000)]
Parser: Avoid a crash-on-invalid when trying to diagnose function calls with -> in it.
Use the existing convenience function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192347
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 10 Oct 2013 09:44:41 +0000 (09:44 +0000)]
Sema: Taking the address of a dtor is illegal per C++ [class.dtor]p2.
Emit a proper error instead of crashing in CodeGen. PR16892.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192345
91177308 -0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Thu, 10 Oct 2013 07:57:44 +0000 (07:57 +0000)]
[Mips] Support FSF Mips toolchain directories tree in the Clang driver.
The patch reviewed by Rafael Espindola.
http://llvm-reviews.chandlerc.com/D1843
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192343
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 10 Oct 2013 02:12:25 +0000 (02:12 +0000)]
Make test portable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192338
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 10 Oct 2013 01:15:16 +0000 (01:15 +0000)]
Add a section about clang-cl to UsersManual.rst
Differential Revision: http://llvm-reviews.chandlerc.com/D1881
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192337
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 10 Oct 2013 00:54:01 +0000 (00:54 +0000)]
Fix getIntegerTypeOrder() to properly handle enums by first unwrapping their underlying integer type. This is a precondition for calling getIntegerRank().
Fixes an assertion failure in a test case involving vectors.
Fixes <rdar://problem/
15091442 >
Please somebody check this.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192334
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Wed, 9 Oct 2013 23:41:48 +0000 (23:41 +0000)]
Use KEY_WOW64_32KEY when reading the registry in WindowsToolChain.cpp (PR17033)
This exposes a 32-bit view of the registry even when Clang is built as a 64-bit
program. Since Visual Studio is a 32-bit application, this is necessary for us
to find it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192331
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 9 Oct 2013 22:34:33 +0000 (22:34 +0000)]
Refine string literal concatenation warning within an NSArray literal to not warn when the literal comes from a macro expansion. Fixes <rdar://problem/
15147688 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192328
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Wed, 9 Oct 2013 21:45:11 +0000 (21:45 +0000)]
This patch addresses a problem encountered by the
ASTImporter when importing the following types:
typedef struct {
} A;
typedef struct {
A a;
} B;
Suppose we have imported B, but we did not at that
time need to complete it. Then later we want to
import A. The struct is anonymous, so the first
thing we want to do is make sure no other anonymous
struct already matches it. So we set up an
StructuralEquivalenceContext and compare B with A.
This happens at ASTImporter.cpp:2179.
Now, in this scenario, B is not complete. So we go
and import its fields, including a, which causes A
to be imported. The ASTImporter doesn’t yet have A
in its list of already-imported things, so we
import A.
After the StructuralEquivalenceContext is finished
determining that A and B are different, the
ASTImporter concludes that A must be imported
because no equivalent exists, so it imports a second
copy of A. Now we have two different structs
representing A. This is really bad news.
The patch allows the StructuralEquivalenceContext to
use the original version of B when making its
comparison, obviating the need for an import and
cutting this loop.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192324
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Wed, 9 Oct 2013 19:47:05 +0000 (19:47 +0000)]
Debug Info: update testing cases when the context and type fields of
template_type and template_value are updated to use DIRef.
Paired commit with r192320.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192321
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 9 Oct 2013 19:06:08 +0000 (19:06 +0000)]
ObjectiveC migrator. Introduce a new objcmt-atomic-property option
and use it to infer all properties as 'atomic'.
// rdar://
14988132
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192317
91177308 -0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Wed, 9 Oct 2013 18:38:53 +0000 (18:38 +0000)]
Fix warnings introduced in r192314.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192315
91177308 -0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Wed, 9 Oct 2013 18:30:24 +0000 (18:30 +0000)]
Consumed analysis: improve loop handling. The prior version of the analysis
marked all variables as "unknown" at the start of a loop. The new version
keeps the initial state of variables unchanged, but issues a warning if the
state at the end of the loop is different from the state at the beginning.
This patch will eventually be replaced with a more precise analysis.
Initial patch by chris.wailes@gmail.com. Reviewed and edited by
delesley@google.com.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192314
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ariel J. Bernal [Wed, 9 Oct 2013 18:27:27 +0000 (18:27 +0000)]
Revert commit r192299 until find a way to account for simlinks in OS X.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192313
91177308 -0d34-0410-b5e6-
96231b3b80d8
Timur Iskhodzhanov [Wed, 9 Oct 2013 18:16:58 +0000 (18:16 +0000)]
Initialize vtorDisp in class constructors and destructors
Reviewed at http://llvm-reviews.chandlerc.com/D1867
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192312
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Wed, 9 Oct 2013 18:10:25 +0000 (18:10 +0000)]
Tighten diagnostics for calling conventions on variadic functions
Follow-up from r192240.
This makes it an error to use callee-cleanup conventions on variadic
functions, except for __fastcall and __stdcall, which we ignore with
a warning for GCC and MSVC compatibility.
Differential Revision: http://llvm-reviews.chandlerc.com/D1870
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192308
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 9 Oct 2013 17:37:28 +0000 (17:37 +0000)]
ObjectiveC migrator. Introduce a new print policy for
suppression of strong lifetime qualifiers when
inferring property. // rdar://
15082812
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192305
91177308 -0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 9 Oct 2013 16:13:15 +0000 (16:13 +0000)]
Use aliases for more constructors and destructors.
With this patch we produce alias for cases like
template<typename T>
struct foobar {
foobar() {
}
};
template struct foobar<void>;
It is safe to use aliases to weak symbols, as long and the alias itself is also
weak.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192300
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ariel J. Bernal [Wed, 9 Oct 2013 16:09:23 +0000 (16:09 +0000)]
This patch fixes replacements that are not applied when relative paths are
specified.
In particular it makes sure that relative paths for non-virtual files aren't
made absolute.
Added unittest test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192299
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Wed, 9 Oct 2013 15:06:17 +0000 (15:06 +0000)]
clang-format: Fix template declaration line breaking with comment.
Before, clang-format would always insert a linebreak before the comment
in code like:
template <typename T> // T can be A, B or C.
struct S {};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192297
91177308 -0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Wed, 9 Oct 2013 12:12:39 +0000 (12:12 +0000)]
[Mips] Group MIPS-related options checking function in one place.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192293
91177308 -0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Wed, 9 Oct 2013 12:12:34 +0000 (12:12 +0000)]
[Mips] Make the isMipsR2Arch() function simpler - remove checking for
MIPS-arch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192292
91177308 -0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Wed, 9 Oct 2013 12:12:29 +0000 (12:12 +0000)]
[Mips] Remove unused mips_CPUs_Group options group. It's better to join
all MIPS-related options to the new m_mips_Features_Group later.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192291
91177308 -0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Wed, 9 Oct 2013 12:12:24 +0000 (12:12 +0000)]
[Mips] Do not check for options from the OPT_mips_CPUs_Group. All these
options are aliases now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192290
91177308 -0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Wed, 9 Oct 2013 12:12:19 +0000 (12:12 +0000)]
[Mips] Make mips32/mips32r2/mips64/mips64r2 real aliases for appropriate
march options.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192289
91177308 -0d34-0410-b5e6-
96231b3b80d8
Timur Iskhodzhanov [Wed, 9 Oct 2013 11:33:51 +0000 (11:33 +0000)]
Code cleanup: rename VTableContext to ItaniumVTableContext, VTableBuilder to ItaniumVTableBuilder and clang-format code around
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192288
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 9 Oct 2013 09:45:27 +0000 (09:45 +0000)]
clang/test/Coverage/codegen-next.m: Exclude this for targeting x86_64-win32.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192286
91177308 -0d34-0410-b5e6-
96231b3b80d8
Timur Iskhodzhanov [Wed, 9 Oct 2013 09:23:58 +0000 (09:23 +0000)]
Reland 192220 "Abstract out parts of thunk emission code, add support for simple thunks when using -cxx-abi microsoft" with relaxed assertions
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192285
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Wed, 9 Oct 2013 00:22:23 +0000 (00:22 +0000)]
Make wording for certain invalid unary expressions more consistent.
An invalid decltype expression like 'decltype int' gives:
error: expected '(' after 'decltype'
This makes it so 'sizeof int' gives a similar one:
error: expected parentheses around type name in sizeof expression
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192258
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Wed, 9 Oct 2013 00:17:23 +0000 (00:17 +0000)]
Debug Info: update testing cases when the context field of
DICompositeType is updated to use DIScopeRef.
Paired commit with r192256.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192257
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 8 Oct 2013 23:29:36 +0000 (23:29 +0000)]
Debug Info: update testing cases when the derived-from field of
DICompositeType is updated to use DITypeRef.
Paired commit with r192251.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192252
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 8 Oct 2013 22:56:54 +0000 (22:56 +0000)]
Debug Info: update testing cases when the derived-from field of
DIDerivedType is updated to use DITypeRef.
Paired commit with r192246.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192247
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Tue, 8 Oct 2013 22:45:29 +0000 (22:45 +0000)]
-Wmicrosoft: Don't warn on non-inline pure virtual method definitions
MSVC and clang with -fms-extensions allow pure virtual methods to be
defined inline after the "= 0" tokens. Clang warns on these because it
is not standard, but incorrectly warns on out-of-line definitions, which
are standard.
With this change, clang will only warn on inline definitions of pure
virtual methods.
Fixes some self-host warnings on out-of-line definitions of pure virtual
destructors.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192244
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Tue, 8 Oct 2013 22:09:29 +0000 (22:09 +0000)]
[AArch64] Add support for NEON scalar floating-point reciprocal estimate,
reciprocal exponent, and reciprocal square root estimate instructions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192243
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 8 Oct 2013 21:52:56 +0000 (21:52 +0000)]
Turn error about fastcall variadic function into warning in MS mode (PR12535)
MSVC allows this and silently falls back to __cdecl for variadic functions.
This patch turns Clang's error into a warning in MS mode and adds a test
to make sure we generate correct code.
Differential Revision: http://llvm-reviews.chandlerc.com/D1861
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192240
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 8 Oct 2013 21:32:16 +0000 (21:32 +0000)]
ObjectiveC migrator: Add support for inferring
properties of function pointer type.
// rdar://
15082812
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192237
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Tue, 8 Oct 2013 20:43:46 +0000 (20:43 +0000)]
[AArch64] Add support for NEON scalar signed/unsigned integer to floating-point
convert instructions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192232
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Tue, 8 Oct 2013 20:20:00 +0000 (20:20 +0000)]
Explicitly request unsigned enum types when desired
This fixes repeated -Wmicrosoft warnings when self-hosting clang on
Windows, and gets us real unsigned enum types with MSVC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192228
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 8 Oct 2013 20:14:24 +0000 (20:14 +0000)]
ObjectiveC migration. Add support for inferring
properties of block pointer types. Also, remove
strong lifetime attribute from property type
in this migration. This is wip.
// rdar://
15082818
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192226
91177308 -0d34-0410-b5e6-
96231b3b80d8
Timur Iskhodzhanov [Tue, 8 Oct 2013 20:09:50 +0000 (20:09 +0000)]
Revert 192220 as it fails on an assertion
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192225
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 8 Oct 2013 19:50:01 +0000 (19:50 +0000)]
Suggest people use -Xclang not -cc1 when passing options to the frontend.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192222
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 8 Oct 2013 19:45:46 +0000 (19:45 +0000)]
Remove documentation of removed -ast-dump-xml flag.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192221
91177308 -0d34-0410-b5e6-
96231b3b80d8
Timur Iskhodzhanov [Tue, 8 Oct 2013 19:15:38 +0000 (19:15 +0000)]
Abstract out parts of thunk emission code, add support for simple thunks when using -cxx-abi microsoft
Reviewed at http://llvm-reviews.chandlerc.com/D1787
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192220
91177308 -0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 8 Oct 2013 19:08:54 +0000 (19:08 +0000)]
[mips] Remove XFAIL.
Triple x86_64 has been added to the command line, so this test doesn't fail
on mips anymore.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192219
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 8 Oct 2013 18:04:56 +0000 (18:04 +0000)]
Remove transient code I did not mean to check in.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192211
91177308 -0d34-0410-b5e6-
96231b3b80d8
Serge Pavlov [Tue, 8 Oct 2013 17:38:38 +0000 (17:38 +0000)]
Fixed messages in tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192208
91177308 -0d34-0410-b5e6-
96231b3b80d8
Serge Pavlov [Tue, 8 Oct 2013 17:09:03 +0000 (17:09 +0000)]
Fixed grammar. Thanks to Jordan Rose.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192204
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 8 Oct 2013 17:08:03 +0000 (17:08 +0000)]
Convert anachronistic use of 'void *' to 'DeclContext *' in Scope that was a holdover from the long-dead Action interface.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192203
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 8 Oct 2013 16:58:52 +0000 (16:58 +0000)]
Fix an edge case in the template differ with default arguments.
In the test case one type is coming from a typedef with no default arg, the
other has the default arg. Taking the default arg from the typedef crashes, so
always use the real template paramter declaration. PR17510.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192202
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 8 Oct 2013 16:56:54 +0000 (16:56 +0000)]
clang-cl: ignore the /sdl[-] flag
In cl.exe, this flag turns some warnings into errors and adds some
codegen security checks. I don't think we intend to support this.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192201
91177308 -0d34-0410-b5e6-
96231b3b80d8
Serge Pavlov [Tue, 8 Oct 2013 16:56:30 +0000 (16:56 +0000)]
Add fixits suggesting parenthesis around type name in expressions like sizeof.
This fixes PR16992 - Fixit missing when "sizeof type" found.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192200
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 8 Oct 2013 16:24:07 +0000 (16:24 +0000)]
Daniel Jasper [Tue, 8 Oct 2013 15:54:36 +0000 (15:54 +0000)]
clang-format: Don't exit with failure on empty files.
Also let clang-format-diff.py detect errors based on clang-format's
return code. Otherwise messages like "Can't find usable .clang-format,
falling back to LLVM style" can make it fail, which might be undesired.
Patch by Alp Toker. Thank you!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192184
91177308 -0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Tue, 8 Oct 2013 08:09:04 +0000 (08:09 +0000)]
Make InstantiatingTemplate depth checks clearer
The bool conversion operator on InstantiatingTemplate never added value and
only served to obfuscate the template instantiation routines.
This replaces the conversion and its callers with an explicit isInvalid()
function to make it clear what's going on at a glance.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192177
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 8 Oct 2013 05:11:18 +0000 (05:11 +0000)]
clang-format: Improve constructor initializer linewrapping.
Specifically make ConstructorInitializerAllOnOneLineOrOnePerLine work
nicely with BreakConstructorInitializersBeforeComma.
This fixes llvm.org/PR17395.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192168
91177308 -0d34-0410-b5e6-
96231b3b80d8
Faisal Vali [Tue, 8 Oct 2013 04:15:04 +0000 (04:15 +0000)]
Fix linkage calculation of auto member functions returning lambdas
As described by Richard in https://groups.google.com/a/isocpp.org/d/msg/std-discussion/S1kmj0wF5-g/fb6agEYoL2IJ
we should allow:
template<typename S>
struct A {
template<typename T> static auto default_lambda() {
return [](const T&) { return 42; };
}
template<class U = decltype(default_lambda<S>())>
U func(U u = default_lambda<S>()) { return u; }
};
int run2 = A<double>{}.func()(3.14);
int run3 = A<char>{}.func()('a');
This patch allows the code using the same trickery that was used to allow the code in non-member functions at namespace scope.
Please see http://llvm-reviews.chandlerc.com/D1844 for richard's approval.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192166
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Tue, 8 Oct 2013 00:58:57 +0000 (00:58 +0000)]
[ms-cxxabi] Fix the calling convention for operator new in records
Summary:
Operator new, new[], delete, and delete[] are all implicitly static when
declared inside a record. CXXMethodDecl already knows this, but we need
to account for that before we pick the calling convention for the
function type.
Fixes PR17371.
Reviewers: rsmith
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1761
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192150
91177308 -0d34-0410-b5e6-
96231b3b80d8