| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
convention selection (AAPCS or
AAPCS+VFP), similar to fastcall / stdcall / whatevercall seen on x86.
In particular, all library functions should always be AAPCS regardless of floating point ABI used.
llvm-svn: 129534
|
| |
|
|
|
|
| |
function template from a previous PCH. Fixes the only crasher when using massive chains on Clang's Sema component. We still have some incomplete codegen there.
llvm-svn: 129516
|
| |
|
|
|
|
| |
string or not.
llvm-svn: 129488
|
| |
|
|
|
|
|
| |
the initialized's protocol and yet clang warns.
objective-c issue, // rdar://9267196
llvm-svn: 129363
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 129269
|
| |
|
|
| |
llvm-svn: 129265
|
| |
|
|
|
|
| |
I added.
llvm-svn: 129263
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
represents a dynamic cast where we know that the result is always null.
For example:
struct A {
virtual ~A();
};
struct B final : A { };
struct C { };
bool f(B* b) {
return dynamic_cast<C*>(b);
}
llvm-svn: 129256
|
| |
|
|
|
|
| |
pageexec@freemail.hu, tweaks by me.
llvm-svn: 129206
|
| |
|
|
|
|
|
| |
implement lhs's protocols. // rdar://9091389.
llvm-svn: 129142
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
types such that protocols are seached first. Fixes
// rdar://9224670
llvm-svn: 129016
|
| |
|
|
| |
llvm-svn: 129001
|
| |
|
|
|
|
|
|
|
|
|
| |
a couple of operator overloads which form interesting expressions in the
AST.
I added test cases for both bugs with the c-index-test's token
annotation feature. Also, thanks to John McCall for confirming that this
is the correct solution.
llvm-svn: 128768
|
| |
|
|
|
|
|
|
|
|
|
| |
logic was divorced
from how we process ordinary function calls, had a tremendous about of redundancy, and relied
strictly on inlining behavior (which was incomplete) to provide semantics instead of falling
back to the conservative analysis we use for C functions. This is a significant step into
making C++ analyzer support more useful.
llvm-svn: 128557
|
| |
|
|
|
|
|
|
| |
returned
from an objective-c message: // rdar://9005189
llvm-svn: 128348
|
| |
|
|
| |
llvm-svn: 128339
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
'unavailable' argument, which specifies that the declaration to which
the attribute appertains is unavailable on that platform.
llvm-svn: 128329
|
| |
|
|
| |
llvm-svn: 128297
|
| |
|
|
| |
llvm-svn: 128272
|
| |
|
|
| |
llvm-svn: 128251
|
| |
|
|
| |
llvm-svn: 128250
|
| |
|
|
| |
llvm-svn: 128141
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
a function template decl's pattern, which was suddenly exposed by my
last patch.
llvm-svn: 128073
|
| |
|
|
|
|
|
|
| |
they don't collide with file-scope extern functions from the same
translation unit. This is basically a matter of applying the same
logic to FunctionDecls as we were previously applying to VarDecls.
llvm-svn: 128072
|
| |
|
|
| |
llvm-svn: 128057
|
| |
|
|
| |
llvm-svn: 127931
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 127876
|
| |
|
|
| |
llvm-svn: 127755
|
| |
|
|
| |
llvm-svn: 127744
|
| |
|
|
| |
llvm-svn: 127735
|
| |
|
|
|
|
|
|
| |
be more speciaclized than that of the initializer,
when matching protocol qualifier list.
// rdar:// 9118343.
llvm-svn: 127585
|
| |
|
|
|
|
| |
noexcept specifiers, unique FunctionProtoTypes with a ContextualFoldingSet, as suggested by John McCall.
llvm-svn: 127568
|
| |
|
|
|
|
|
|
| |
Change the interface to expose the new information and deal with the enormous fallout.
Introduce the new ExceptionSpecificationType value EST_DynamicNone to more easily deal with empty throw specifications.
Update the tests for noexcept and fix the various bugs uncovered, such as lack of tentative parsing support.
llvm-svn: 127537
|
| |
|
|
|
|
|
| |
extending the existing support for sizeof and alignof. Original
patch by Guy Benyei.
llvm-svn: 127475
|
| |
|
|
|
|
| |
parameter to tidy up the places where the expression is a size.
llvm-svn: 127454
|
| |
|
|
|
|
| |
type.
llvm-svn: 127391
|
| |
|
|
| |
llvm-svn: 127390
|
| |
|
|
| |
llvm-svn: 127330
|
| |
|
|
|
|
| |
keywords for Objective-C+ and C++0x.
llvm-svn: 127253
|
| |
|
|
|
|
| |
range for declarations using postfix types.
llvm-svn: 127251
|
| |
|
|
| |
llvm-svn: 127242
|
| |
|
|
| |
llvm-svn: 127237
|
| |
|
|
| |
llvm-svn: 127225
|
| |
|
|
|
|
| |
trivial to check this. Adjust for style.
llvm-svn: 127151
|
| |
|
|
| |
llvm-svn: 127120
|