#
a52b1f72 |
| 13-May-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
Produce UTF-8 strings with -fconstant-string-class -fno-constant-cfstrings. Patch by Jonathan Schleifer.
llvm-svn: 131298
|
#
61226d3f |
| 13-May-2011 |
Douglas Gregor <dgregor@apple.com> |
When determining whether we can make a declaration into a global constant, also consider whether it's a class type that has any mutable fields. If so, it can't be a global constant.
llvm-svn: 131276
|
#
2d1c055e |
| 07-May-2011 |
Douglas Gregor <dgregor@apple.com> |
In C++, allow us to emit a global as 'constant' even if it has class type, so long as it is known to have a constant initializer and the class type is a POD class. Fixes <rdar://problem/9306265>.
ll
In C++, allow us to emit a global as 'constant' even if it has class type, so long as it is known to have a constant initializer and the class type is a POD class. Fixes <rdar://problem/9306265>.
llvm-svn: 131060
show more ...
|
#
4a8ea109 |
| 06-May-2011 |
Alexis Hunt <alercah@gmail.com> |
Modify some deleted function methods to better reflect reality:
- New isDefined() function checks for deletedness - isThisDeclarationADefinition checks for deletedness - New doesThisDeclarationHa
Modify some deleted function methods to better reflect reality:
- New isDefined() function checks for deletedness - isThisDeclarationADefinition checks for deletedness - New doesThisDeclarationHaveABody() does what isThisDeclarationADefinition() used to do - The IsDeleted bit is not propagated across redeclarations - isDeleted() now checks the canoncial declaration - New isDeletedAsWritten() does what it says on the tin. - isUserProvided() now correct (thanks Richard!)
This fixes the bug that we weren't catching
void foo() = delete; void foo() {}
as being a redefinition.
llvm-svn: 131013
show more ...
|
#
49a94b1c |
| 06-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add an implementation of thunks for varargs methods. The implementation is a bit messy, but it is correct as long as the method in question doesn't use indirect gotos. A couple of possible alternat
Add an implementation of thunks for varargs methods. The implementation is a bit messy, but it is correct as long as the method in question doesn't use indirect gotos. A couple of possible alternative implementations are outlined in FIXME's in this patch. rdar://problem/8077308 .
llvm-svn: 130993
show more ...
|
#
3f1b5d07 |
| 05-May-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement support for C++0x alias templates.
llvm-svn: 130953
|
#
85c011dd |
| 05-May-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Preserve the full name of the file, so that '-c -o foo.pic.o' produces foo.pic.gcno instead of foo.gcno.
llvm-svn: 130899
|
#
480cb991 |
| 04-May-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Record where the GCOV data files should be placed.
llvm-svn: 130866
|
#
1c229c04 |
| 22-Apr-2011 |
Francois Pichet <pichet2000@gmail.com> |
Add -fdelayed-template-parsing option. Using this option all templated function definitions are parsed at the end of the translation unit only if it is required by an actual instantiation. As such al
Add -fdelayed-template-parsing option. Using this option all templated function definitions are parsed at the end of the translation unit only if it is required by an actual instantiation. As such all the symbols of the TU are available during name lookup.
Using this flag is necessary for compatibility with Microsoft template code. This also provides some parsing speed improvement.
llvm-svn: 130022
show more ...
|
#
207bce31 |
| 21-Apr-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Wire up the -ftest-coverage and -fprofile-arcs flags to .gcno file emission (at compile time) and .gcda emission (at runtime). --coverage enables both.
This does not yet add the profile_rt library t
Wire up the -ftest-coverage and -fprofile-arcs flags to .gcno file emission (at compile time) and .gcda emission (at runtime). --coverage enables both.
This does not yet add the profile_rt library to the link step if -fprofile-arcs is enabled when linking.
llvm-svn: 129956
show more ...
|
#
ea324f15 |
| 21-Apr-2011 |
Jay Foad <jay.foad@gmail.com> |
PR9214: Convert Metadata API to use ArrayRef.
llvm-svn: 129929
|
#
14ad22f0 |
| 19-Apr-2011 |
Daniel Dunbar <daniel@zuster.org> |
ADT/Triple: Switch to using .isOSDarwin() predicate.
llvm-svn: 129823
|
#
9c8cd4c0 |
| 12-Apr-2011 |
Daniel Dunbar <daniel@zuster.org> |
IRgen/Obj-C: Emit CFStrings and NSStrings with the alignment of the char type, there is no reason to align them higher. - This roughly matches llvm-gcc's r126913. - It is an open question whether o
IRgen/Obj-C: Emit CFStrings and NSStrings with the alignment of the char type, there is no reason to align them higher. - This roughly matches llvm-gcc's r126913. - It is an open question whether or not we should do this for cstring's in general (code size vs optimization potential), for now we just match llvm-gcc until someone wants to run some experiments.
llvm-svn: 129410
show more ...
|
#
a97f3298 |
| 12-Apr-2011 |
John McCall <rjmccall@apple.com> |
Template static data members can have weak_odr linkage, not just weak linkage. Also, fix a problem where global weak variables with non-trivial initializers were getting guard variables, or at least
Template static data members can have weak_odr linkage, not just weak linkage. Also, fix a problem where global weak variables with non-trivial initializers were getting guard variables, or at least were checking for them and then crashing.
llvm-svn: 129342
show more ...
|
#
32f44bd0 |
| 12-Apr-2011 |
John McCall <rjmccall@apple.com> |
Ignore indirect field declarations. Fixes PR9570.
llvm-svn: 129337
|
#
2979fe01 |
| 12-Apr-2011 |
John McCall <rjmccall@apple.com> |
After some discussion with Doug, we decided that it made a lot more sense for __unknown_anytype resolution to destructively modify the AST. So that's what it does now, which significantly simplifies
After some discussion with Doug, we decided that it made a lot more sense for __unknown_anytype resolution to destructively modify the AST. So that's what it does now, which significantly simplifies some of the implementation. Normal member calls work pretty cleanly now, and I added support for propagating unknown-ness through &.
llvm-svn: 129331
show more ...
|
#
e4ec5abf |
| 09-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
fix indentation
llvm-svn: 129202
|
#
31996343 |
| 07-Apr-2011 |
John McCall <rjmccall@apple.com> |
Basic, untested implementation for an "unknown any" type requested by LLDB. The idea is that you can create a VarDecl with an unknown type, or a FunctionDecl with an unknown return type, and it will
Basic, untested implementation for an "unknown any" type requested by LLDB. The idea is that you can create a VarDecl with an unknown type, or a FunctionDecl with an unknown return type, and it will still be valid to access that object as long as you explicitly cast it at every use. I'm still going back and forth about how I want to test this effectively, but I wanted to go ahead and provide a skeletal implementation for the LLDB folks' benefit and because it also improves some diagnostic goodness for placeholder expressions.
llvm-svn: 129065
show more ...
|
Revision tags: llvmorg-2.9.0 |
|
#
eafa4e4b |
| 06-Apr-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
If this is an intrinsic function, set the function's attributes to the intrinsic's attributes.
llvm-svn: 129000
|
Revision tags: llvmorg-2.9.0-rc3 |
|
#
1baf38f5 |
| 26-Mar-2011 |
Douglas Gregor <dgregor@apple.com> |
On Mac OS X, the presence of an 'availability' attribute for that platform implies default visibility. To achieve these, refactor our lookup of explicit visibility so that we search for both an expli
On Mac OS X, the presence of an 'availability' attribute for that platform implies default visibility. To achieve these, refactor our lookup of explicit visibility so that we search for both an explicit VisibilityAttr and an appropriate AvailabilityAttr, favoring the VisibilityAttr if it is present.
llvm-svn: 128336
show more ...
|
Revision tags: llvmorg-2.9.0-rc2 |
|
#
945b8aed |
| 23-Mar-2011 |
Devang Patel <dpatel@apple.com> |
Update type cache when a type is completed. Radar 9168773
llvm-svn: 128150
|
#
20b2ebd7 |
| 23-Mar-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement a new 'availability' attribute, that allows one to specify which versions of an OS provide a certain facility. For example,
void foo() __attribute__((availability(macosx,introduced=10.
Implement a new 'availability' attribute, that allows one to specify which versions of an OS provide a certain facility. For example,
void foo() __attribute__((availability(macosx,introduced=10.2,deprecated=10.4,obsoleted=10.6)));
says that the function "foo" was introduced in 10.2, deprecated in 10.4, and completely obsoleted in 10.6. This attribute ties in with the deployment targets (e.g., -mmacosx-version-min=10.1 specifies that we want to deploy back to Mac OS X 10.1). There are several concrete behaviors that this attribute enables, as illustrated with the function foo() above:
- If we choose a deployment target >= Mac OS X 10.4, uses of "foo" will result in a deprecation warning, as if we had placed attribute((deprecated)) on it (but with a better diagnostic) - If we choose a deployment target >= Mac OS X 10.6, uses of "foo" will result in an "unavailable" warning (in C)/error (in C++), as if we had placed attribute((unavailable)) on it - If we choose a deployment target prior to 10.2, foo() is weak-imported (if it is a kind of entity that can be weak imported), as if we had placed the weak_import attribute on it.
Naturally, there can be multiple availability attributes on a declaration, for different platforms; only the current platform matters when checking availability attributes.
The only platforms this attribute currently works for are "ios" and "macosx", since we already have -mxxxx-version-min flags for them and we have experience there with macro tricks translating down to the deprecated/unavailable/weak_import attributes. The end goal is to open this up to other platforms, and even extension to other "platforms" that are really libraries (say, through a #pragma clang define_system), but that hasn't yet been designed and we may want to shake out more issues with this narrower problem first.
Addresses <rdar://problem/6690412>.
As a drive-by bug-fix, if an entity is both deprecated and unavailable, we only emit the "unavailable" diagnostic.
llvm-svn: 128127
show more ...
|
#
067f0ed4 |
| 22-Mar-2011 |
David Chisnall <csdavec@swan.ac.uk> |
Simplify Mac runtime selection - it's the factory function's job to select which class to produce, not CodeGenModule's.
llvm-svn: 128109
|
#
6a4fa52b |
| 22-Mar-2011 |
John McCall <rjmccall@apple.com> |
The emission of an Objective-C++'s class .cxx_destruct method should be conditioned on whether it has any destructible ivars, not on whether it has any non-trivial class-object initializers.
llvm-sv
The emission of an Objective-C++'s class .cxx_destruct method should be conditioned on whether it has any destructible ivars, not on whether it has any non-trivial class-object initializers.
llvm-svn: 128074
show more ...
|
#
599cb8e4 |
| 18-Mar-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Add support for language-specific address spaces. On top of that, add support for the OpenCL __private, __local, __constant and __global address spaces, as well as the __read_only, _read_write and _
Add support for language-specific address spaces. On top of that, add support for the OpenCL __private, __local, __constant and __global address spaces, as well as the __read_only, _read_write and __write_only image access specifiers. Patch originally by ARM; language-specific address space support by myself.
llvm-svn: 127915
show more ...
|