Richard Smith
09f76ee63c
Improve the diagnostic when a comma ends up at the end of a declarator group
...
instead of a semicolon (as sometimes happens during refactorings). When such a
comma is seen at the end of a line, and is followed by something which can't
possibly be a declarator (or even something which might be a plausible typo for
a declarator), suggest that a semicolon was intended.
llvm-svn: 142544
2011-10-19 21:33:05 +00:00
Richard Smith
f720df0ed6
-Wc++98-compat: warn on nontrivial types used in unions and anonymous structs.
...
llvm-svn: 142541
2011-10-19 20:41:51 +00:00
Matt Beaumont-Gay
4b489fa629
Only warn at self-initialization if some later use is always uninitialized.
...
llvm-svn: 142538
2011-10-19 18:53:03 +00:00
Richard Smith
c620f554b9
-Wc++98-compat: diagnose if a reference is bound to a prvalue which does not
...
have an unambiguous accessible copying constructor; this is ill-formed in C++98.
llvm-svn: 142533
2011-10-19 16:55:56 +00:00
Rafael Espindola
5450f218a6
Fix the signatures of vfork, __sigsetjmp and sigsetjmp.
...
Patch by Dimitry Andric.
llvm-svn: 142531
2011-10-19 14:50:34 +00:00
Hans Wennborg
cc8ce7b1d7
Break out ssize_t test from Sema/format-strings-fixit.c
...
Move to a separate test that sets a specific target triple
so that the type of ssize_t is known.
llvm-svn: 142481
2011-10-19 07:55:50 +00:00
Douglas Gregor
e248eea214
Improve the warning for cv-qualifiers on free functions, from Ahmed Charles!
...
llvm-svn: 142478
2011-10-19 06:04:55 +00:00
David Blaikie
651c73ce78
Fix pr9789, assert-on-invalid while instantiating an (invalid) class template with a non-final parameter pack. Also improve the warning for non-final parameter packs in this scenario so it only fires once, rather than once for every template parameter after the non-final parameter pack.
...
llvm-svn: 142473
2011-10-19 05:19:50 +00:00
Douglas Gregor
dab63c1434
Tweak this test to test more directly what we want, and hopefully work around the brokenness of code completion under -fdelayed-template-parsing
...
llvm-svn: 142472
2011-10-19 04:17:22 +00:00
Richard Smith
a066ccfcf1
Add a -Wc++98-compat warning for friend functions of class templates which would
...
be implicitly instantiated (resulting in a redefinition) in C++98.
llvm-svn: 142468
2011-10-19 00:54:10 +00:00
Eric Christopher
7ec8ec8581
Add block information for ObjC @catch blocks.
...
Fixes rdar://10282889
llvm-svn: 142467
2011-10-19 00:44:01 +00:00
Richard Smith
38c0e0417c
-Wc++98-compat: warn if a SFINAE substitution in C++11 suppresses an access
...
control diagnostic.
llvm-svn: 142463
2011-10-19 00:07:01 +00:00
Fariborz Jahanian
7f73302b4f
objc: allow class name qualified with protocols in
...
iboutletcollection attribute. But ignore protocol
list. // rdar://10296078
llvm-svn: 142459
2011-10-18 23:13:50 +00:00
Douglas Gregor
7c0fc61faa
Minor tweak to test
...
llvm-svn: 142427
2011-10-18 21:43:22 +00:00
Richard Smith
c82397332d
-Wc++98-compat and -Wc++98-compat-pedantic warnings for Sema, part 2.
...
llvm-svn: 142426
2011-10-18 21:39:00 +00:00
Douglas Gregor
e5c79d5ea8
Provide result types for code completions that describe built-in
...
expressions (this, sizeof, etc.).
llvm-svn: 142424
2011-10-18 21:20:17 +00:00
John McCall
91aee685d8
Add a __has_feature check for arc_cf_code_audited.
...
llvm-svn: 142423
2011-10-18 21:18:53 +00:00
Richard Smith
0bf8a492fd
-Wc++98-compat and -Wc++98-compat-pedantic warnings for Sema, part 1.
...
llvm-svn: 142419
2011-10-18 20:49:44 +00:00
Daniel Dunbar
b274318bba
Frontend: Support -iframework.
...
llvm-svn: 142418
2011-10-18 20:40:38 +00:00
Richard Smith
aed32b4d8c
Simplify RecordDeclCXX::setBases slightly. No functional change.
...
Add test that a variadic base list which expands to 0 bases doesn't make the
class a non-aggregate. This test passed before the change, too.
llvm-svn: 142411
2011-10-18 20:08:55 +00:00
Fariborz Jahanian
2f31b33f34
objc: more changes in use of IBOutletCollection attribute.
...
'Class' is disallowed as argument. If the argument is missing,
NSObject is assumed. // rdar://10296078
llvm-svn: 142409
2011-10-18 19:54:31 +00:00
Argyrios Kyrtzidis
05c65fbdb6
[arcmt] Rewrite attributes in extensions as well. rdar://9992142
...
llvm-svn: 142407
2011-10-18 19:49:19 +00:00
Richard Smith
c30493db3c
In C++11, a class's members are allowed to be nominated as friends.
...
llvm-svn: 142393
2011-10-18 18:33:57 +00:00
Fariborz Jahanian
6b70865ec0
objc: diagnose invalid argument to an
...
iboutletcollection attribute intead of crashing.
// rdar://10296078
llvm-svn: 142364
2011-10-18 17:11:10 +00:00
Argyrios Kyrtzidis
098c4eabd2
[libclang] Since an objc extension semantically continues the interface of the class
...
don't use unique USRs for them, otherwise we fail to associate @implementation methods
with the methods in extensions.
llvm-svn: 142361
2011-10-18 16:50:06 +00:00
Douglas Gregor
4205feffcd
Add code completions for C++0x expressions
...
llvm-svn: 142357
2011-10-18 16:29:03 +00:00
Hans Wennborg
a5d653c7dd
Another attempt at fixing format-strings-fixit.c.
...
Use "%f" as format string to make sure it doesn't match size_t, etc.
whatever they might be typedeffed to, so that the fixit always applies.
llvm-svn: 142348
2011-10-18 09:30:37 +00:00
Hans Wennborg
95c49c6c32
Disable the ssize_t test in format-strings-fixit.c.
...
Turns out this part of the test from r142342 wasn't portable.
The errors on the bots look like this:
E:\bb-win7\cmake-clang-i686-msys\build\tools\clang\test\Sema\Output\format-strings-fixit.c.tmp:58:13: error: conversion specifies type 'unsigned int' but the argument has type 'ssize_t' (aka 'long')
printf("%zd", (ssize_t) 42);
~~^ ~~~~~~~~~~~~
%zd
Obviously we can't typedef ssize_t to someting that doesn't have the same size as size_t and expect it to work.
But it's also weird that the format string "%zd" gets interpreted as "unsigned int" when it should clearly be signed.
llvm-svn: 142345
2011-10-18 08:58:16 +00:00
Hans Wennborg
f99d04f841
Suggest %zu for size_t args to printf.
...
For PR11152. Make PrintSpecifier::fixType() suggest "%zu" for size_t, etc.
rather than looking at the underlying type and suggesting "%llu" or other
platform-specific length modifiers. Applies to C99 and C++11.
llvm-svn: 142342
2011-10-18 08:10:06 +00:00
David Blaikie
cc5f8f0d9e
Switch to the C++11 warning flags in tests.
...
Patch by Ahmed Charles!
llvm-svn: 142340
2011-10-18 05:54:07 +00:00
Douglas Gregor
d793e7c3f7
Don't format the code completion for parameters of block literal
...
arguments as block literal arguments; the block literal argument code
completion should only go one level deep. Fixes <rdar://problem/10291294>.
llvm-svn: 142335
2011-10-18 04:23:19 +00:00
Richard Smith
83c19296ff
Add -Wc++11-compat warning for an inline specifier on an explicit instantiation.
...
llvm-svn: 142333
2011-10-18 03:44:03 +00:00
Douglas Gregor
f333f8c40d
When transforming the arguments for a C++ "new" expression, make sure
...
to drop the implicitly-generated value initialization expression used
for initializing scalars. Fixes <rdar://problem/10283928>.
llvm-svn: 142330
2011-10-18 02:43:19 +00:00
Richard Smith
050d261ec7
Refactor the checking for explicit template instantiations being performed in
...
the right namespace in C++11 mode. Teach the code to prefer the 'must be in
precisely this namespace' diagnostic whenever that's true, and fix a defect
which resulted in the -Wc++11-compat warning in C++98 mode sometimes being
omitted.
llvm-svn: 142329
2011-10-18 02:28:33 +00:00
Eli Friedman
5e9534b0ae
Rewrite parts of MS ABI C++ layout. Based on work by r4start; I ended up doing this while I was trying to review his patch.
...
llvm-svn: 142325
2011-10-18 00:55:28 +00:00
John McCall
95ff270ee9
Fix several bugs with #pragma clang arc_cf_code_audited and macros.
...
llvm-svn: 142324
2011-10-18 00:44:04 +00:00
Argyrios Kyrtzidis
697729a7de
Revert r142311, -mios-simulator-version-min does not work correctly.
...
llvm-svn: 142322
2011-10-18 00:22:49 +00:00
Argyrios Kyrtzidis
7e16493c9b
Remove the hack where we sniff the __IPHONE_OS_VERSION_MIN_REQUIRED define.
...
We can use -mios-simulator-version-min now. rdar://10218700
llvm-svn: 142311
2011-10-17 23:41:26 +00:00
Richard Smith
9fcc5c31c4
Perform lvalue-to-rvalue conversions on __builtin_offsetof array argument index
...
before typechecking, as suggested by John.
llvm-svn: 142308
2011-10-17 23:29:39 +00:00
Argyrios Kyrtzidis
ffe8b1c7be
[arcmt] In ARC default for properties is 'strong' so just remove a 'retain' if possible,
...
instead of changing it to 'strong'. rdar://9984862.
llvm-svn: 142304
2011-10-17 23:14:16 +00:00
Richard Smith
b15c11c819
Add -Wc++98-compat warnings for uses of the new keywords 'alignof', 'char16_t',
...
'char32_t', 'constexpr', 'decltype', 'noexcept', 'nullptr' and 'static_assert'.
llvm-svn: 142302
2011-10-17 23:06:20 +00:00
Eli Friedman
cc66a2b067
Add missing newline.
...
llvm-svn: 142285
2011-10-17 21:48:31 +00:00
Ted Kremenek
a08713ce86
Move about 20 random diagnostics under -W flags. Patch by Ahmed Charles!
...
llvm-svn: 142284
2011-10-17 21:47:53 +00:00
Eli Friedman
a4c2602b71
Initial implementation of __atomic_is_lock_free. The input is the size of an atomic type rather than an atomic type itself just to save some implementation pain; I can change that if it seems worthwhile.
...
I think this is the last hook needed for <atomic> besides defines for ATOMIC_CHAR_LOCK_FREE and friends.
llvm-svn: 142281
2011-10-17 21:44:23 +00:00
DeLesley Hutchins
30abeb1680
Substitute for arguments in method calls -- functionality
...
llvm-svn: 142267
2011-10-17 21:38:02 +00:00
Richard Smith
b12bf69769
Refactor __attribute__ parsing, and add a diagnostic if the r_paren at the end
...
of an attrib is missing. gcc does not allow the closing parenthesis to be omitted.
llvm-svn: 142255
2011-10-17 21:20:17 +00:00
Tanya Lattner
49b3841398
The comparison of two vectors should return a signed result. hasIntegerRepresentation() used to always return false for vectors, but since it was changed, it also
...
changed the return type of a compare of two unsigned vectors to be unsigned. This patch removes the check for hasIntegerRepresentation since its not needed and returns the appropriate signed type.
I added a new test case and updated exisiting test cases that assumed an unsigned result.
llvm-svn: 142250
2011-10-17 21:00:38 +00:00
Fariborz Jahanian
502d2eee09
obj-c++: Fix a IRGen crash when getter is a reference type.
...
Fix is in Sema. // rdar://10153365
llvm-svn: 142249
2011-10-17 21:00:22 +00:00
John McCall
444bd25dff
Strip qualifiers off the type of an implicit property defined by
...
only a setter.
llvm-svn: 142236
2011-10-17 20:05:43 +00:00
John McCall
4124c4924d
Teach the ARC compiler to not require __bridge casts when
...
passing/receiving CF objects at +0 to/from Objective-C methods
or audited C functions.
llvm-svn: 142219
2011-10-17 18:40:02 +00:00