summaryrefslogtreecommitdiffstats
path: root/clang/test
Commit message (Collapse)AuthorAgeFilesLines
* Fix an incorrect namespace typo-correction diagnostic, from KaelynDouglas Gregor2011-07-131-3/+14
| | | | | | Uhrain! Fixes PR10318. llvm-svn: 135086
* Emit debug info for extended vectors.Devang Patel2011-07-131-0/+5
| | | | llvm-svn: 135083
* format string checking: long and int have the same widths on 32-bit, so we ↵Ted Kremenek2011-07-131-0/+14
| | | | | | | | shouldn't warn about using an "int" format specifier with a "long" type in 32-bit. llvm-svn: 135075
* Enforce access control for the destructor in a new[] expression and markJohn McCall2011-07-132-0/+22
| | | | | | | it as used. Otherwise, we can fail to instantiate or validate the destructor, which can lead to crashes in IR gen like PR10351. llvm-svn: 135073
* [arcmt] Add weak/unsafe_unretained for "@property (readonly)" when we are ↵Argyrios Kyrtzidis2011-07-132-4/+6
| | | | | | @synthesizing it. llvm-svn: 135067
* [arcmt] For properties rewrite 'assign' -> 'weak or unsafe_unretained', ↵Argyrios Kyrtzidis2011-07-138-27/+29
| | | | | | | | 'retain' -> 'strong', and add 'weak or unsafe_unretained' when 'assign' is missing. rdar://9496219&9602589. llvm-svn: 135065
* With -Wselector, don't warn about unimplemented optional methodFariborz Jahanian2011-07-131-0/+25
| | | | | | | used in @selector expression because, well, their implementation is optional. // rdar://9545564 llvm-svn: 135057
* Don't crash if defining -dealloc in a category.John McCall2011-07-131-0/+10
| | | | llvm-svn: 135054
* In debugger mode, make ObjC message sends to unknown selectors returnJohn McCall2011-07-131-0/+14
| | | | | | | | | | __unknown_anytype, and rewrite such message sends correctly. I had to bite the bullet and actually add a debugger support mode for this one, which is a bit unfortunate, but there really isn't anything else I could imagine doing; this is clearly just debugger-specific behavior. llvm-svn: 135051
* objc++: Some level of covariance is allowed in ObjC properties.Fariborz Jahanian2011-07-132-2/+3
| | | | | | | Make it also available in ObjC++ propeties. Use common code for objc and objc++ so they don't diverge. // rdar://9740328 llvm-svn: 135050
* Re-relax conversion specifier checking for printf format strings and ↵Ted Kremenek2011-07-131-2/+2
| | | | | | conversion specifiers. My recent change was a mistake. llvm-svn: 135048
* Fix inversion in argument type checking for format strings with conversion ↵Ted Kremenek2011-07-131-0/+9
| | | | | | specifiers for character types. llvm-svn: 135046
* Okay, that rule about zero-length arrays applies to destroyingJohn McCall2011-07-133-7/+8
| | | | | | them, too. llvm-svn: 135038
* Arrays are permitted to be zero-length in some situations.John McCall2011-07-131-0/+11
| | | | llvm-svn: 135036
* Make the integer-range analysis recognize ^= correctly,John McCall2011-07-131-0/+15
| | | | | | | | | and (while I'm at it) teach it to grok the results of simple assignments. The first is PR10336. llvm-svn: 135034
* Convert the standard default-construction loops to use phis andJohn McCall2011-07-134-32/+69
| | | | | | partial destruction. llvm-svn: 135033
* PR10337 reminds me that calls return values, lets handle them justChris Lattner2011-07-131-0/+16
| | | | | | like arguments. Thanks PR10337! :) llvm-svn: 135030
* Eliminate an incomplete/incorrect attempt to provide support for C++0xDouglas Gregor2011-07-131-0/+16
| | | | | | | unrestricted unions, which ended up attempting to initialize objects in a union (which CodeGen isn't prepared for). Fixes PR9683. llvm-svn: 135027
* Silliness with commas, as reported at http://blog.regehr.org/archives/558 . ↵Eli Friedman2011-07-131-0/+1
| | | | | | As it turns out, this is my fault for not noticing this was an issue when I was looking at this a long time ago. :( llvm-svn: 135026
* Switch delete[] IR-generation over to the destroy framework,John McCall2011-07-132-30/+31
| | | | | | which implicitly makes it EH-safe as well. llvm-svn: 135025
* When compiling ::delete for a class with a virtual destructor, callDouglas Gregor2011-07-131-0/+19
| | | | | | | | the complete destructor and then invoke the global delete operator. Previously, we would invoke the deleting destructor, which calls the wrong delete operator. Fixes PR10341. llvm-svn: 135021
* revert fix for // rdar://9740328Fariborz Jahanian2011-07-121-0/+1
| | | | llvm-svn: 135010
* Revert r134946Bruno Cardoso Lopes2011-07-121-2/+2
| | | | llvm-svn: 135004
* [arcmt] Also avoid 'weak' for forward references to objc classes.Argyrios Kyrtzidis2011-07-122-4/+10
| | | | llvm-svn: 135003
* [arcmt] Before applying '__weak' check whether the objc class is annotated ↵Argyrios Kyrtzidis2011-07-122-14/+46
| | | | | | | | | | with objc_arc_weak_reference_unavailable or is in a list of classes not supporting 'weak'. rdar://9489367. llvm-svn: 135002
* objc++: Some level of covariance is allowed in ObjC properties.Fariborz Jahanian2011-07-121-0/+19
| | | | | | Make it also available in ObjC++ propeties. // rdar://9740328 llvm-svn: 135001
* Implement -MG. Fixes PR9613Peter Collingbourne2011-07-121-0/+5
| | | | llvm-svn: 134996
* In ARC mode, consider Objective-C lifetime types (object pointers andDouglas Gregor2011-07-124-6/+29
| | | | | | | | | | | | | | block pointers) that don't have any qualification to be POD types. We were previously considering them to be non-POD types, because this was convenient in C++ for is_pod-like traits. However, we now end up inferring lifetime in such cases (template arguments infer __strong), so it is not necessary. Moreover, we want rvalues of object type (which have their lifetime stripped) to be PODs to allow, e.g., va_arg(arglist, id) to function properly. Fixes <rdar://problem/9758798>. llvm-svn: 134993
* Fix a bug where a local variable named 'self' is causingFariborz Jahanian2011-07-121-7/+8
| | | | | | | implicit ivar accesses to go through the 'self' variable rather than the real 'self' for the method. // rdar://9730771 llvm-svn: 134992
* Switch field destruction over to use the new destroyer-based APIJohn McCall2011-07-122-9/+15
| | | | | | and kill a lot of redundant code. llvm-svn: 134988
* Improve name mangling for instantiation-dependent types that are notDouglas Gregor2011-07-121-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | dependent. This covers an odd class of types such as int (&)[sizeof(sizeof(T() + T()))]; which involve template parameters but, because of some trick typically involving a form of expression that is never type-dependent, resolve down to a non-dependent type. Such types need to be mangled essentially as they were written in the source code (involving template parameters), rather than via their canonical type. In general, instantiation-dependent types should be mangled as they were written in the source. However, since we can't do that now without non-trivial refactoring of the AST (see the new FIXME), I've gone for this partial solution: only use the as-written-in-the-source mangling for these strange types that are instantiation-dependent but not dependent. This provides better compatibility with previous incarnations of Clang and with GCC. In the future, we'd like to get this right. Fixes <rdar://problem/9663282>. llvm-svn: 134984
* Fix typo correction crash on overloaded functions, pr10283.Hans Wennborg2011-07-121-0/+12
| | | | | | | It would be cool if we could do overload resolution to suggest the right function, but at least this fixes the crashing. llvm-svn: 134976
* Implement name mangling for sizeof...(function parameter pack).Douglas Gregor2011-07-121-0/+10
| | | | llvm-svn: 134974
* Fix a problem Eli ran into where we now reject incomplete arrays of Chris Lattner2011-07-121-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | uncompleted struct types. We now do what llvm-gcc does and compile them into [i8 x 0]. If the type is later completed, we make sure that it is appropriately cast. We compile the terrible example to something like this now: %struct.A = type { i32, i32, i32 } @g = external global [0 x i8] define void @_Z1fv() nounwind { entry: call void @_Z3fooP1A(%struct.A* bitcast ([0 x i8]* @g to %struct.A*)) ret void } declare void @_Z3fooP1A(%struct.A*) define %struct.A* @_Z2f2v() nounwind { entry: ret %struct.A* getelementptr inbounds ([0 x %struct.A]* bitcast ([0 x i8]* @g to [0 x %struct.A]*), i32 0, i64 1) } llvm-svn: 134972
* fix an unintended behavior change in the type system rewrite, which caused ↵Chris Lattner2011-07-127-14/+14
| | | | | | | | | | | | | | | | | | | | | us to compile stuff like this: typedef struct { int x, y, z; } foo_t; foo_t g; into: %"struct.<anonymous>" = type { i32, i32, i32 } we now get: %struct.foo_t = type { i32, i32, i32 } This doesn't change the behavior of the compiler, but makes the IR much easier to read. llvm-svn: 134969
* Mangle dependent template names of unknown arityDouglas Gregor2011-07-121-0/+13
| | | | llvm-svn: 134967
* fix PR10335 by watching out for IR type compatibility in call argument lists.Chris Lattner2011-07-121-2/+14
| | | | llvm-svn: 134966
* make test name less specificChris Lattner2011-07-121-0/+0
| | | | llvm-svn: 134964
* Implement the Itanium C++ ABI's mangling rule forDouglas Gregor2011-07-121-0/+16
| | | | | | non-instantiation-dependent sizeof and alignof expressions. llvm-svn: 134963
* [ARC] Complain about property without storage attribute when @synthesizing ↵Argyrios Kyrtzidis2011-07-121-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | it, not at its declaration. For this sample: @interface Foo @property id x; @end we get: t.m:2:1: error: ARC forbids properties of Objective-C objects with unspecified storage attribute @property id x; ^ 1 error generated. The error should be imposed on the implementor of the interface, not the user. If the user uses a header of a non-ARC library whose source code he does not have, we are basically asking him to go change the header of the library (bad in general), possible overriding how the property is implemented if he gets confused and says "Oh I'll just add 'copy' then" (even worse). Second issue is that we don't emit any error for 'readonly' properties, e.g: @interface Foo @property (readonly) id x; // no error here @end @implementation Foo @synthesize x; // no error here too @end We should give an error when the implementor is @synthesizing a property which doesn't have any storage specifier; this is when the explicit specifier is important, because we are going to create an ivar and we want its ownership to be explicit. Related improvements: -OBJC_PR_unsafe_unretained turned out to not fit in ObjCPropertyDecl's bitfields, fix it. -For properties of extension classes don't drop PropertyAttributesAsWritten values. -Have PropertyAttributesAsWritten actually only reflect what the user wrote rdar://9756610. llvm-svn: 134960
* Do the same as r134946 for arrays. Add more testcases for avx x86_64 argBruno Cardoso Lopes2011-07-121-3/+15
| | | | | | passing. llvm-svn: 134951
* Fix one x86_64 abi issue and the test to actually look for the right thing,Bruno Cardoso Lopes2011-07-121-2/+2
| | | | | | which is: { <4 x float>, <4 x float> } should continue to go through memory. llvm-svn: 134946
* Reapply r134754, which turns out to be working correctly and alsoBruno Cardoso Lopes2011-07-111-0/+30
| | | | | | add one more testcase. llvm-svn: 134934
* Allow us to compute linkage et al for instantiation-dependent types.Douglas Gregor2011-07-111-0/+8
| | | | llvm-svn: 134932
* Revert r134898, "test/Frontend/dependency-gen.c: Mark XFAIL: mingw due to ↵NAKAMURA Takumi2011-07-111-4/+0
| | | | | | | | PR10331. to appease mingw-target (and non-mingw-host) builds. PR10331 is still alive I suppose. llvm-svn: 134931
* Reenable test.Argyrios Kyrtzidis2011-07-111-1/+0
| | | | llvm-svn: 134928
* Add missing header file for the test.Argyrios Kyrtzidis2011-07-111-0/+1
| | | | llvm-svn: 134927
* Add diagnostic for constructs like "va_arg(l, float)" which have undefined ↵Eli Friedman2011-07-111-0/+9
| | | | | | behavior. PR10201. llvm-svn: 134926
* Test is broken; XFAIL it until Argyrios gets a chance to look at it.Eli Friedman2011-07-111-0/+1
| | | | llvm-svn: 134925
* Don't warn for unused macro when undef'ing it, if it comes from an included ↵Argyrios Kyrtzidis2011-07-111-0/+5
| | | | | | file. rdar://9745065 llvm-svn: 134919
OpenPOWER on IntegriCloud