| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 172673
|
|
|
|
|
|
|
|
| |
This fixes pr14946. The problem was that the linkage computation was done too
early, so things like "extern int a;" would be given external linkage, even if
a previous declaration was static.
llvm-svn: 172667
|
|
|
|
|
|
|
| |
but not vice-versa. Fix bug introduced in r172567 and noticed by
Jordan, thanks!
llvm-svn: 172586
|
|
|
|
|
|
|
|
| |
overriding and overridden method, allow the overridden method to have
a narrower contract (introduced earlier, deprecated/obsoleted later)
than the overriding method. Fixes <rdar://problem/12992023>.
llvm-svn: 172567
|
|
|
|
| |
llvm-svn: 172340
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The testcase in pr14929 shows that this is extremely hard to do. If we choose
to apply the attribute, that causes the visibility of some decls to change and
that can happen really late (during codegen).
Current gcc warns and ignores the attribute in this testcase with a warning.
This suggest that the correct solution is to find a point in the compilation
where we can compute the visibility and
* assert it was never computed before
* reject any attempts to compute it again in the future (with warnings).
llvm-svn: 172305
|
|
|
|
| |
llvm-svn: 171906
|
|
|
|
| |
llvm-svn: 171902
|
|
|
|
| |
llvm-svn: 171899
|
|
|
|
| |
llvm-svn: 171782
|
|
|
|
|
|
| |
Patch by Nick Lewycky. Fixes pr8703.
llvm-svn: 171781
|
|
|
|
|
|
| |
nearby 'C++0x' comments.
llvm-svn: 171372
|
|
|
|
|
|
| |
calling convention is already implemented in LLVM.
llvm-svn: 171056
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the body of a functions. The problem was that hasBody looks at the entire chain
and causes problems to -fvisibility-inlines-hidden if the cache was not
invalidated.
Original message:
Cache visibility of decls.
This unifies the linkage and visibility caching. I first implemented this when
working on pr13844, but the previous fixes removed the performance advantage of
this one.
This is still a step in the right direction for making linkage and visibility
cheap to use.
llvm-svn: 171053
|
|
|
|
|
|
| |
It broke stage2.
llvm-svn: 171050
|
|
|
|
|
|
|
|
|
|
|
| |
This unifies the linkage and visibility caching. I first implemented this when
working on pr13844, but the previous fixes removed the performance advantage of
this one.
This is still a step in the right direction for making linkage and visibility
cheap to use.
llvm-svn: 171048
|
|
|
|
|
|
| |
which is wrong here.
llvm-svn: 170721
|
|
|
|
|
|
| |
single attribute in the future.
llvm-svn: 170500
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
per review discussion in r170365
This does limit these typedefs to being sequences, but no current usage
requires them to be contiguous (we could expand this to a more general
iterator pair range concept at some point).
Also, it'd be nice if SmallVector were constructible directly from an ArrayRef
but this is a bit tricky since ArrayRef depends on SmallVectorBaseImpl for the
inverse conversion. (& generalizing over all range-like things, while nice,
would require some nontrivial SFINAE I haven't thought about yet)
llvm-svn: 170482
|
|
|
|
|
|
| |
This fixes PR14339.
llvm-svn: 169705
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
uncovered.
This required manually correcting all of the incorrect main-module
headers I could find, and running the new llvm/utils/sort_includes.py
script over the files.
I also manually added quite a few missing headers that were uncovered by
shuffling the order or moving headers up to be main-module-headers.
llvm-svn: 169237
|
|
|
|
| |
llvm-svn: 167791
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
applied to CXXRecordDecls, where functions with that return type will
inherit the warn_unused_result attribute.
Also includes a tiny fix (with no discernable behavior change for
existing code) to re-sync AttributeDeclKind enum and
err_attribute_wrong_decl_type with warn_attribute_wrong_decl_type since
the enum is used with both diagnostic messages to chose the correct
description.
llvm-svn: 167783
|
|
|
|
| |
llvm-svn: 167551
|
|
|
|
| |
llvm-svn: 167510
|
|
|
|
| |
llvm-svn: 167266
|
|
|
|
| |
llvm-svn: 166957
|
|
|
|
| |
llvm-svn: 166946
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Because PNaCl bitcode must be target-independent, it uses some
different bitcode representations from other targets (e.g. byval and
sret for structures). This means that without additional type
information, it cannot meet some native ABI requirements for some
targets (e.g. passing structures containing unions by value on
x86-64). To allow generation of code which uses the correct native
ABIs, we also support triples such as x86_64-nacl, which uses
target-dependent IR (as opposed to le32-nacl, which uses byval and
sret).
To allow interoperation between the two types of code, this patch adds
a calling convention attribute to be used in code compiled with the
target-dependent triple, which will generate code using the le32-style
bitcode. This calling convention does not need to be explicitly
supported in the backend because it determines bitcode representation
rather than native conventions (the backend just needs to undersand
how to handle byval and sret for the Native Client OS).
This patch implements __attribute__((pnaclcall)) to generate calls in
bitcode according to the le32 bitcode conventions, an attribute which
is accepted by any Native Client target, but issues a warning
otherwise.
llvm-svn: 166065
|
|
|
|
|
|
| |
Patch by Jeremiah Zanin.
llvm-svn: 165849
|
|
|
|
|
|
|
|
| |
is allowed or ignored with warning. This allows for correct name mangling for x64 targets on Windows, which in turn allows for linking against the Win32 APIs.
Fixes PR13782
llvm-svn: 165015
|
|
|
|
|
|
|
| |
setter or getter backing a deprecated/unavailable property,
also not location of the property. // rdar://12324295
llvm-svn: 164412
|
|
|
|
| |
llvm-svn: 163643
|
|
|
|
|
|
| |
on templates.
llvm-svn: 163642
|
|
|
|
|
|
|
|
| |
in classes. Use it to flag those method implementations which don't
contain call to 'super' if they have 'super' class and it has the method
with this attribute set. This is wip. // rdar://6386358
llvm-svn: 163434
|
|
|
|
|
|
| |
within part of a particular method.
llvm-svn: 163397
|
|
|
|
| |
llvm-svn: 163145
|
|
|
|
|
|
| |
incomplete type member pointer size calculation under the MS ABI.
llvm-svn: 163078
|
|
|
|
|
|
| |
expressions, which should be ignored right now.
llvm-svn: 163026
|
|
|
|
|
|
|
|
| |
could not be attached to a CFTypeRef.
Fixes <rdar://problem/12197822>
llvm-svn: 162872
|
|
|
|
|
|
|
|
| |
and when used in property type declaration, is handled as type
attribute. Do not issue the warning when declaraing the property.
// rdar://12173491
llvm-svn: 162801
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
function arguments and arguments for variadic functions are of a particular
type which is determined by some other argument to the same function call.
Usecases include:
* MPI library implementations, where these attributes enable checking that
buffer type matches the passed MPI_Datatype;
* for HDF5 library there is a similar usecase as MPI;
* checking types of variadic functions' arguments for functions like
fcntl() and ioctl().
llvm-svn: 162067
|
|
|
|
|
|
| |
This is already handled by CheckCallingConvAttr.
llvm-svn: 161865
|
|
|
|
| |
llvm-svn: 161863
|
|
|
|
|
|
| |
just to account for us emitting notes more consistently.
llvm-svn: 161528
|
|
|
|
| |
llvm-svn: 161245
|
|
|
|
|
|
|
| |
variables that have static storage duration, it removes debug info on the
emitted initializer function but not all debug info about this variable.
llvm-svn: 160659
|
|
|
|
| |
llvm-svn: 160658
|
|
|
|
| |
llvm-svn: 160657
|
|
|
|
|
|
|
|
| |
Make handler functions for thread safety attributes consistent with other attributes handler functions
by removing the bool parameter from some of the thread safety attributes handler functions and extracting
common checks out of different handler functions.
llvm-svn: 160635
|