| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
CharUnits. No change in functionality intended.
llvm-svn: 128126
|
| |
|
|
|
|
|
| |
on previous block parameters that crept in as part of my captures
work a month or so ago.
llvm-svn: 128121
|
| |
|
|
| |
llvm-svn: 128118
|
| |
|
|
|
|
| |
both 32-bit and 64-bit targets.
llvm-svn: 128110
|
| |
|
|
|
|
| |
which class to produce, not CodeGenModule's.
llvm-svn: 128109
|
| |
|
|
|
|
| |
ptrdiff_t instead of a long (should have no impact on any sane platforms, but win64 is not sane).
llvm-svn: 128104
|
| |
|
|
|
|
| |
expects this. Actually, it expects a long, but that's a bug that will be fixed in the next commit...
llvm-svn: 128102
|
| |
|
|
| |
llvm-svn: 128088
|
| |
|
|
|
|
|
|
| |
line options, instead of leveraging the blanket -mllvm option.
- This allows using the frontend itself without requiring the backend have
those options available (i.e., if the target wasn't built).
llvm-svn: 128087
|
| |
|
|
| |
llvm-svn: 128075
|
| |
|
|
|
|
|
| |
conditioned on whether it has any destructible ivars, not on whether
it has any non-trivial class-object initializers.
llvm-svn: 128074
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
CharUnits. No change in functionality intended.
llvm-svn: 128060
|
| |
|
|
|
|
|
|
| |
during a Sema crash (we have just a handful of leaks left)
and to use the simplified cleanup registration API.
llvm-svn: 128059
|
| |
|
|
|
|
| |
prone, only hit in rare cases.
llvm-svn: 128058
|
| |
|
|
| |
llvm-svn: 128057
|
| |
|
|
|
|
|
|
| |
constructed within ParseAST. This avoids double crashes
during crash recovery.
llvm-svn: 128056
|
| |
|
|
|
|
| |
change in functionality intended.
llvm-svn: 128050
|
| |
|
|
|
|
| |
to CharUnits. No change in functionality intended.
llvm-svn: 128047
|
| |
|
|
| |
llvm-svn: 128029
|
| |
|
|
| |
llvm-svn: 128018
|
| |
|
|
|
|
| |
really make any sense in this environment.
llvm-svn: 128014
|
| |
|
|
|
|
| |
// rdar:// 9139947
llvm-svn: 128013
|
| |
|
|
|
|
|
|
|
|
| |
recovery. This was a huge resource "root" during crashes.
This change requires making a bunch of fundamental Clang structures (optionally) reference counted to allow correct
ownership semantics of these objects (e.g., ASTContext) to play out between an active ASTUnit and CompilerInstance
object.
llvm-svn: 128011
|
| |
|
|
| |
llvm-svn: 128010
|
| |
|
|
|
|
| |
CompilerInstance objects.
llvm-svn: 128009
|
| |
|
|
|
|
|
|
| |
program and fallback to plain version otherwise. Use this for the NetBSD
target to make it try e.g. i486--netbsdelf-as and -ld for target
i486--netbsdelf.
llvm-svn: 127996
|
| |
|
|
|
|
|
| |
Drop program paths on NetBSD (unused). Only include lib dir, if
-nostdlib is absent. Use = to allow --sysroot to work.
llvm-svn: 127995
|
| |
|
|
|
|
|
| |
and DragonFly. Use the --sysroot= form for Linux. Fix handling of =
prefix for -B.
llvm-svn: 127994
|
| |
|
|
| |
llvm-svn: 127980
|
| |
|
|
| |
llvm-svn: 127977
|
| |
|
|
|
|
| |
[dcl.constexpr]p9
llvm-svn: 127967
|
| |
|
|
|
|
|
|
| |
MSVC doesn't do any validation on exception specifications.
This remove 1 error when parsing MSVC stl lib with clang.
llvm-svn: 127961
|
| |
|
|
| |
llvm-svn: 127942
|
| |
|
|
| |
llvm-svn: 127938
|
| |
|
|
| |
llvm-svn: 127933
|
| |
|
|
| |
llvm-svn: 127932
|
| |
|
|
| |
llvm-svn: 127931
|
| |
|
|
|
|
|
|
|
| |
This rename serves two purposes:
- It reflects the actual functionality of this analysis.
- We will have more than one reachability analysis.
llvm-svn: 127930
|
| |
|
|
|
|
| |
functionality intended.
llvm-svn: 127927
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
- We don't really support the majority of the horrible -traditional-cpp
behavior, but it is unlikely that we ever will either. This allows us to
start trying to use clang as a /usr/bin/cpp replacement and see what pieces
of -traditional-cpp mode people actually care about.
llvm-svn: 127911
|
| |
|
|
|
|
| |
comments.
llvm-svn: 127910
|
| |
|
|
|
|
| |
don't support the ABI yet.
llvm-svn: 127903
|
| |
|
|
| |
llvm-svn: 127902
|
| |
|
|
| |
llvm-svn: 127897
|
| |
|
|
| |
llvm-svn: 127896
|
| |
|
|
|
|
| |
determine if any files in the preamble have changed.
llvm-svn: 127894
|