| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 132956
|
| |
|
|
|
|
| |
can't properly model (yet?) to string-fail.c.
llvm-svn: 132955
|
| |
|
|
|
|
|
|
| |
functions in gnu89 mode in terms of redefinitions.
rdar://9559708 .
llvm-svn: 132953
|
| |
|
|
|
|
| |
This fixes radar 8757124.
llvm-svn: 132949
|
| |
|
|
| |
llvm-svn: 132924
|
| |
|
|
|
|
| |
reason to allow the user to control these semantics through a flag.
llvm-svn: 132919
|
| |
|
|
| |
llvm-svn: 132917
|
| |
|
|
| |
llvm-svn: 132905
|
| |
|
|
|
|
|
| |
- Move the diagnostic to the case statement instead of at the end of the switch
- Add a fix-it hint as to how to fix the compilation error
llvm-svn: 132903
|
| |
|
|
|
|
| |
handle memcpy and memmove. Spotted by Nico.
llvm-svn: 132902
|
| |
|
|
| |
llvm-svn: 132901
|
| |
|
|
|
|
|
|
|
|
|
|
| |
struct {
typedef int A = 0;
};
According to the C++11 standard, this is not ill-formed, but does not have any ascribed meaning. We can't reasonably accept it, so treat it as ill-formed.
Also switch C++ from an incorrect 'fields can only be initialized in constructors' diagnostic for this case to C's 'illegal initializer (only variables can be initialized)'
llvm-svn: 132890
|
| |
|
|
| |
llvm-svn: 132879
|
| |
|
|
| |
llvm-svn: 132878
|
| |
|
|
|
|
| |
keyword in objc property decl.
llvm-svn: 132877
|
| |
|
|
|
|
|
| |
pointer assignment in C++. This was a longstanding problem spotted by
Jordy Rose.
llvm-svn: 132873
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Related result types apply Cocoa conventions to the type of message
sends and property accesses to Objective-C methods that are known to
always return objects whose type is the same as the type of the
receiving class (or a subclass thereof), such as +alloc and
-init. This tightens up static type safety for Objective-C, so that we
now diagnose mistakes like this:
t.m:4:10: warning: incompatible pointer types initializing 'NSSet *'
with an
expression of type 'NSArray *' [-Wincompatible-pointer-types]
NSSet *array = [[NSArray alloc] init];
^ ~~~~~~~~~~~~~~~~~~~~~~
/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:72:1:
note:
instance method 'init' is assumed to return an instance of its
receiver
type ('NSArray *')
- (id)init;
^
It also means that we get decent type inference when writing code in
Objective-C++0x:
auto array = [[NSMutableArray alloc] initWithObjects:@"one", @"two",nil];
// ^ now infers NSMutableArray* rather than id
llvm-svn: 132868
|
| |
|
|
|
|
| |
properties.
llvm-svn: 132866
|
| |
|
|
|
|
|
|
| |
determine whether the vtable should be externally visible, instead of a rough approximation of it which messes up with templates.
While I'm here, zap the other user of isInAnonymousNamespace outside of Decl.cpp.
llvm-svn: 132861
|
| |
|
|
| |
llvm-svn: 132855
|
| |
|
|
|
|
| |
to study it.
llvm-svn: 132843
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
I believe, upon, careful review, that this code causes us to incorrectly
handle exception specifications of copy assignment operators in C++03
mode. However, we currently do not seem to properly implement the subtle
distinction between copying of members and bases made by implicit copy
constructors and assignment operators in C++03 - namely that they are
limited in their overload selection - in all cases. As such, I feel that
committing this code is correct pending a careful review of our
implementation of these semantics.
llvm-svn: 132841
|
| |
|
|
|
|
|
|
| |
expressions (by calling IgnoreParens before adding expressions to blocks). Undo 132769 (LiveVariables' local IgnoreParens), since it's no longer necessary.
Also, have Environment stop looking through NoOp casts; it didn't match the behavior of LiveVariables. And once that's gone, the whole cast block of that switch is unnecessary.
llvm-svn: 132840
|
| |
|
|
| |
llvm-svn: 132835
|
| |
|
|
|
|
|
|
| |
isn't yet used for the less controlled environments of initialization.
Also a few random text fixups.
llvm-svn: 132833
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-Wmismatched-tags.
- Removed fix-it hints from template instaniations since changes to the
templates are rarely helpful.
- Changed the caret in template instaniations from the class/struct name to the
class/struct keyword, matching the other warnings.
- Do not offer fix-it hints when multiple declarations disagree. Warnings are
still given.
- Once a definition is found, offer a fix-it hint to all previous declarations
with wrong tag.
- Declarations that disagree with a previous definition will get a fix-it hint
to change the declaration.
llvm-svn: 132831
|
| |
|
|
|
|
| |
// rdar://9566314
llvm-svn: 132791
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a follow-up to r132565, and should address the rest of PR9969:
Warn about cases such as
int foo(A a, bool b) {
return a + b ? 1 : 2; // user probably meant a + (b ? 1 : 2);
}
also when + is an overloaded operator call.
llvm-svn: 132784
|
| |
|
|
|
|
| |
liveness. Fixes the other half of PR8962.
llvm-svn: 132769
|
| |
|
|
|
|
| |
Environment. Fixes PR8962.
llvm-svn: 132762
|
| |
|
|
|
|
|
| |
It is not a sanctioned keyword and is assumed as default.
// rdar://8790791
llvm-svn: 132753
|
| |
|
|
|
|
| |
comments. rdar://problem/9037836
llvm-svn: 132752
|
| |
|
|
|
|
|
| |
This fixes a memory error on FreeBSD (and is the right thing to do
in any case).
llvm-svn: 132750
|
| |
|
|
|
|
| |
were intended for was suppressed.
llvm-svn: 132746
|
| |
|
|
|
|
| |
Very sorry for the accidental commit of WIP code.
llvm-svn: 132745
|
| |
|
|
|
|
|
|
| |
namespace set algorithm (re-)introduced. We may not have seen the 'std'
namespace, but we should still suggested associated namespaces. Easy
fix, but a bit annoying to test.
llvm-svn: 132744
|
| |
|
|
| |
llvm-svn: 132743
|
| |
|
|
|
|
| |
rdar://problem/9037836
llvm-svn: 132737
|
| |
|
|
|
|
| |
may pick it up. This would create bad text relocations.
llvm-svn: 132736
|
| |
|
|
|
|
| |
declared __weak objc-gc mode. // rdar://9666091.
llvm-svn: 132731
|
| |
|
|
|
|
|
| |
-undef flag is passed in. Also __ASSEMBLER__ with -x assembler-with-cpp. (Don't
ask.)
llvm-svn: 132708
|
| |
|
|
| |
llvm-svn: 132700
|
| |
|
|
| |
llvm-svn: 132679
|
| |
|
|
|
|
|
| |
specializing a member of an unspecialized template, and recover from
such errors without crashing. Fixes PR10024 / <rdar://problem/9509761>.
llvm-svn: 132677
|
| |
|
|
|
|
|
|
|
| |
this. My suggestion assumed a viable erase method for iterators on
SmallPtrSet.
This patch restores his original pattern.
llvm-svn: 132673
|
| |
|
|
|
|
| |
compilers incorrectly accept due to a lack of proper support for two-phase name lookup.
llvm-svn: 132672
|
| |
|
|
| |
llvm-svn: 132669
|
| |
|
|
|
|
|
|
| |
really contain any information that the step array didn't contain too. This makes debugging dumps a bit less informative, but probably not significantly so. The advantage is that the redundancy is gone, so the code is easier to understand.
ReferenceBinding is still there, because it is used in some unclear code.
llvm-svn: 132667
|
| |
|
|
| |
llvm-svn: 132666
|
| |
|
|
|
|
| |
SemaInit.cpp. Replace them with the boolean conversion or the new Failed() function. This is a first step towards removing InitializationSequence::SequenceKind. No functionality change.
llvm-svn: 132664
|