| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
GetOrCreateLLVMFunction so that we
won't assert when building a thunk for an implicit virtual member function that is not marked used.
llvm-svn: 124967
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A common pattern in classes with multiple initializers is to put the
subclass's common initialization bits into a static function that receives
the value of 'self', e.g:
if (!(self = [super init]))
return nil;
if (!(self = _commonInit(self)))
return nil;
It was reported that 'self' was not set to the result of [super init].
Until we can use inter-procedural analysis, in such a call, transfer the
ObjCSelfInitChecker flags associated with 'self' to the result of the call.
Fixes rdar://8937441 & http://llvm.org/PR9094
llvm-svn: 124940
|
| |
|
|
|
|
|
|
|
| |
say "out-of-line definition differ from the declaration in the return type" instead of
the silly "functions that differ only in their return type cannot be overloaded".
Addresses rdar://7980179.
llvm-svn: 124939
|
| |
|
|
|
|
| |
We now emit everything except unused implicit virtual member functions when building the vtable.
llvm-svn: 124935
|
| |
|
|
| |
llvm-svn: 124924
|
| |
|
|
|
|
|
|
| |
when selector metadata is generated, which is triggered
by at least on class implementation. This is to match gcc's
behavior. // rdar://8851684.
llvm-svn: 124909
|
| |
|
|
|
|
| |
we captured in the dependent case.
llvm-svn: 124887
|
| |
|
|
|
|
| |
Patch by Renato Golin!
llvm-svn: 124878
|
| |
|
|
| |
llvm-svn: 124875
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
id-expression, e.g.,
CurrentClass<T>::member
Previously, if CurrentClass<T> was dependent and not complete, we
would treat it as a dependent-scoped declaration reference expression,
even if CurrentClass<T> referred to the current instantiation.
Fixes PR8966 and improves type checking of templates.
llvm-svn: 124867
|
| |
|
|
|
|
|
| |
bit-field width nor the initializer value are type- or
value-dependent. Fixes PR8712.
llvm-svn: 124866
|
| |
|
|
|
|
|
| |
cv-qualifiers on the object against the cv-qualifiers on the member
function. Fixes PR8315.
llvm-svn: 124865
|
| |
|
|
| |
llvm-svn: 124863
|
| |
|
|
|
|
|
| |
lists with zero template arguments. Fixes some seriously scary
crashers in C++ PCH.
llvm-svn: 124862
|
| |
|
|
|
|
|
| |
C, then hitting an assertion because C code shouldn't try to parse
optional nested-name-specifiers. Fixes PR9137.
llvm-svn: 124860
|
| |
|
|
|
|
| |
anything but a instance method to a warning.
llvm-svn: 124858
|
| |
|
|
|
|
| |
[temp.param]p9 and C++ DR226. Fixes PR8747.
llvm-svn: 124856
|
| |
|
|
|
|
|
|
|
|
| |
it's okay for the following template parameters to not have default
arguments (since those template parameters can still be
deduced). Also, downgrade the error about default template arguments
in function templates to an extension warning, since this is a
harmless C++0x extension.
llvm-svn: 124855
|
| |
|
|
|
|
| |
might expect.
llvm-svn: 124848
|
| |
|
|
| |
llvm-svn: 124837
|
| |
|
|
| |
llvm-svn: 124835
|
| |
|
|
|
|
| |
abi.
llvm-svn: 124834
|
| |
|
|
|
|
|
| |
or source locations that refer into a macro instantiation, delete all
of the Fix-Its on that diagnostic.
llvm-svn: 124833
|
| |
|
|
| |
llvm-svn: 124825
|
| |
|
|
| |
llvm-svn: 124822
|
| |
|
|
| |
llvm-svn: 124820
|
| |
|
|
| |
llvm-svn: 124807
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The difference with gcc is that it warns if you overload virtual methods only if
the method doesn't also override any method. This is to cut down on the number of warnings
and make it more useful like reported here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20423.
If we want to warn that not all overloads are overriden we can have an additional
warning like -Wpartial-override.
-Woverloaded-virtual, unlike gcc, is added to -Wmost. Addresses rdar://8757630.
llvm-svn: 124805
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
whose inode has changed since the file was first created and that is
being seen through a different path name (e.g., due to symlinks or
relative path elements), such that its FileEntry pointer doesn't match
a known FileEntry pointer. Since this requires a system call (to
stat()), we only perform this deeper checking if we can't find the
file by comparing FileEntry pointers.
Also, add a micro-optimization where we don't bother to compute line
numbers when given the location (1, 1). This improves the
efficiency of clang_getLocationForOffset().
llvm-svn: 124800
|
| |
|
|
| |
llvm-svn: 124786
|
| |
|
|
|
|
|
|
|
|
|
| |
right for anonymous struct/union members led to me discovering some
seemingly broken code in that area of Sema, which I fixed, partly by
changing the representation of member pointer constants so that
IndirectFieldDecls aren't expanded. This led to assorted cleanups with
member pointers in CodeGen, and while I was doing that I saw some random
other things to clean up.
llvm-svn: 124785
|
| |
|
|
|
|
|
| |
This reopens PR99114, but that one at least can be avoided with an #include.
PR9130 cannot.
llvm-svn: 124780
|
| |
|
|
|
|
| |
links.
llvm-svn: 124776
|
| |
|
|
|
|
|
|
| |
the atomic writes option, since the intent is that this option be set for an
entire build, which may have any number of compiler instances writing to the
same output file.
llvm-svn: 124772
|
| |
|
|
|
|
|
|
|
|
|
| |
is not defined in the current translation unit. Doing so lead to compile errors
such as PR9114.
Instead, when CodeGen is building the vtable, don't try to emit a definition
for functions that aren't marked used in the current translation unit.
Fixes PR9114.
llvm-svn: 124768
|
| |
|
|
|
|
| |
redundant searches in the string. No functionality change.
llvm-svn: 124760
|
| |
|
|
|
|
| |
refer to the bad use, and the note to the variable declaration.
llvm-svn: 124758
|
| |
|
|
| |
llvm-svn: 124757
|
| |
|
|
| |
llvm-svn: 124756
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
on that name. Canonicalization eliminates silliness such as "." and
"foo/.." that breaks the uniquing of files in the presence of virtual
files or files whose inode numbers have changed during
parsing/re-parsing. c-index-test isn't able to create this crazy
situation, so I've resorted to testing outside of the Clang
tree. Fixes <rdar://problem/8928220>.
Note that this hackery will go away once we have a real virtual file
system on which we can layer FileManager; the virtual-files hack is
showing cracks.
llvm-svn: 124754
|
| |
|
|
| |
llvm-svn: 124753
|
| |
|
|
|
|
|
| |
CC_PRINT_OPTIONS and can be used to get some out-of-band information on header
usage from a build.
llvm-svn: 124751
|
| |
|
|
|
|
| |
information to a file.
llvm-svn: 124750
|
| |
|
|
|
|
| |
ones outside the predefines buffer (which is what -H does).
llvm-svn: 124749
|
| |
|
|
|
|
|
|
| |
but has non-empty data fields, such as array of zero length,
remains zero.
// rdar://8945175
llvm-svn: 124741
|
| |
|
|
|
|
|
|
|
| |
savings of 25% sounds impressive, except that this amounted to only
about 360k in our standard "large" completion result set (40,000
results). Since code completion is performance-sensitive, the 4%
slowdown due to uniquing outweighs the 360k benefit.
llvm-svn: 124737
|
| |
|
|
| |
llvm-svn: 124736
|
| |
|
|
| |
llvm-svn: 124735
|
| |
|
|
|
|
|
|
| |
callbacks class.
- Aside from being generally cleaner, this also allows -H to work correctly in
modes other than standard preprocessing (e.g., -c, -MM, etc.)
llvm-svn: 124723
|
| |
|
|
|
|
|
| |
on, as well as more reliably limiting invalid references to locals from
nested scopes.
llvm-svn: 124721
|