| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
is right --- shouldn't there be a TypeLoc in here somewhere? ---
but at least it doesn't have a redundant QualType and a broken
children() method.
Noticed this while doing things in serialization.
llvm-svn: 135257
|
| |
|
|
|
|
|
| |
to prevent recursive compilation problems. This fixes a failure of CodeGen/decl.c
on x86-32 targets that don't fill in the coerce-to type.
llvm-svn: 135256
|
| |
|
|
|
|
| |
llvm::OwningPtr<BugType> vars (the new convention). No functionality change.
llvm-svn: 135255
|
| |
|
|
|
|
| |
single llvm::OwningPtr<BugType> (the new convention). No functionality change.
llvm-svn: 135250
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
types. Fore xample, we used to lower:
struct bar { int a; };
struct foo {
void (*FP)(struct bar);
} G;
to:
%struct.foo = type { {}* }
since the function pointer would cause recursive translation of bar and
we didn't know if that would get us into trouble. We are now smart enough
to know that it is fine, so we get this type instead:
%struct.foo = type { void (i32)* }
Codegen still needs to be prepared for uncooperative types at any place,
which is why I let the maximally uncooperative code sit around for awhile to
help shake out the bugs.
llvm-svn: 135244
|
| |
|
|
|
|
|
|
| |
to represent a fully-substituted non-type template parameter.
This should improve source fidelity, as well as being generically
useful for diagnostics and such.
llvm-svn: 135243
|
| |
|
|
| |
llvm-svn: 135226
|
| |
|
|
|
|
| |
'expansion'.
llvm-svn: 135224
|
| |
|
|
|
|
| |
ARCMigrate.
llvm-svn: 135223
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
instantiations. Upon instantiation of template, value-dependent parameters are replaced by equivalent literals, so code like:
template<unsigned int A, unsigned int B> struct S {
int foo() {
int x = A && B;
}
}
will not warn on A && B on every instantiation. This will still warn on other cases inside templates, which will be caught on checking the template definition.
llvm-svn: 135222
|
| |
|
|
|
|
| |
-Wuninitialized to avoid cascading warnings. Patch by Kaelyn Uhrain.
llvm-svn: 135217
|
| |
|
|
|
|
| |
errors. rdar://9402555.
llvm-svn: 135213
|
| |
|
|
|
|
|
|
| |
Revert "For C++11, do more checking of initializer lists up-front, enabling some subset of the final functionality. C just leaves the function early. C++98 runs through the same code path, but has no changed functionality either."
This reverts commit ac420c5053d6aa41d59f782caad9e46e5baaf2c2.
llvm-svn: 135210
|
| |
|
|
|
|
|
|
| |
used.
Keep the error if the result is unused. rdar://9552694.
llvm-svn: 135209
|
| |
|
|
| |
llvm-svn: 135208
|
| |
|
|
|
|
|
|
|
|
|
|
| |
also contain declarators. Previously we would accept code like this:
template<typename T> struct S { } f() { return 0; }
This case now produces a missing ';' diagnostic, since that seems like a much more likely error than an attempt to declare a function or variable in addition to the class template.
Treat this
llvm-svn: 135195
|
| |
|
|
|
|
|
|
|
|
|
| |
An unused autorelease is badness. If we remove it the receiver
will likely die immediately while previously it was kept alive
by the autorelease pool. This is bad practice in general, so leave it
and emit an error to force the user to restructure his code.
rdar://9599884
llvm-svn: 135193
|
| |
|
|
|
|
|
|
|
|
| |
subset of the final functionality. C just leaves the function early. C++98 runs through the same code path, but has no changed functionality either.
This is a first baby step towards supporting generalized initializer lists. This also removes an aggregate
test case that was just plain wrong, assuming that non-aggregates couldn't be initialized with initializer lists
in C++11 mode.
llvm-svn: 135177
|
| |
|
|
|
|
| |
kind.
llvm-svn: 135175
|
| |
|
|
| |
llvm-svn: 135170
|
| |
|
|
| |
llvm-svn: 135166
|
| |
|
|
|
|
| |
function in LLVM does.
llvm-svn: 135155
|
| |
|
|
|
|
| |
thing to do.
llvm-svn: 135152
|
| |
|
|
| |
llvm-svn: 135150
|
| |
|
|
|
|
| |
comparing integers to integers. This happens not to be an issue now, but the extra check helps future proof in case of future refactorings.
llvm-svn: 135147
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is switches all the interfaces points (and most of the commenst
/ local variables I saw on my way through) regarding the
NestedMacroInstantiations bit.
The libclang enums corresponding to this state were renamed, but
a legacy enum was added with the old name, and the same value to keep
existing clients working. I've added a documentation blurb for it, but
let me know if there is a canonical way to document legacy elemenst of
the libclang interface.
No functionality changed here, even in tests.
llvm-svn: 135141
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
variants to 'expand'. This changed a couple of public APIs, including
one public type "MacroInstantiation" which is now "MacroExpansion". The
rest of the codebase was updated to reflect this, especially the
libclang code. Two of the C++ (and thus easily changed) libclang APIs
were updated as well because they pertained directly to the old
MacroInstantiation class.
No functionality changed.
llvm-svn: 135139
|
| |
|
|
|
|
|
|
|
| |
'expand'. Also update the public API it provides to the new term, and
propagate that update to the various clients.
No functionality changed.
llvm-svn: 135138
|
| |
|
|
|
|
|
|
|
| |
to 'expand' for macros. Only comments and uses local to the TokenLexer
are updated.
No functionality changed.
llvm-svn: 135137
|
| |
|
|
|
|
|
|
| |
'[Ee]xpan(sion|ded)' in the TextDiagnosticPrinter.
No functionality changed.
llvm-svn: 135136
|
| |
|
|
|
|
|
|
|
| |
and 'expansions' rather than 'instantiated' and 'contexts'.
This is the first of several patches migrating Clang's terminology
surrounding macros from 'instantiation' to 'expansion'.
llvm-svn: 135135
|
| |
|
|
|
|
| |
cases to be more portable with an explicit target triple.
llvm-svn: 135134
|
| |
|
|
|
|
|
|
| |
on 32-bit, so we shouldn't warn about using"
It fails on freebsd, mingw and msvc10.
llvm-svn: 135129
|
| |
|
|
|
|
|
| |
is still terrible here because typo correction is not behaving well in
the presence of overloaded functions.
llvm-svn: 135128
|
| |
|
|
|
|
| |
command-line flags. rdar://9567824
llvm-svn: 135115
|
| |
|
|
|
|
| |
require A to be a complete type.
llvm-svn: 135101
|
| |
|
|
|
|
| |
failures.
llvm-svn: 135091
|
| |
|
|
|
|
| |
parsing lambda expressions, from John Freeman!
llvm-svn: 135090
|
| |
|
|
|
|
| |
Uhrain! Fixes PR10318.
llvm-svn: 135086
|
| |
|
|
| |
llvm-svn: 135083
|
| |
|
|
|
|
|
|
| |
shouldn't warn about using
an "int" format specifier with a "long" type in 32-bit.
llvm-svn: 135075
|
| |
|
|
|
|
|
| |
it as used. Otherwise, we can fail to instantiate or validate the destructor,
which can lead to crashes in IR gen like PR10351.
llvm-svn: 135073
|
| |
|
|
|
|
| |
@synthesizing it.
llvm-svn: 135067
|
| |
|
|
|
|
|
|
| |
'retain' -> 'strong', and add
'weak or unsafe_unretained' when 'assign' is missing. rdar://9496219&9602589.
llvm-svn: 135065
|
| |
|
|
|
|
|
| |
used in @selector expression because, well, their implementation
is optional. // rdar://9545564
llvm-svn: 135057
|
| |
|
|
| |
llvm-svn: 135054
|
| |
|
|
|
|
|
|
|
|
| |
__unknown_anytype, and rewrite such message sends correctly.
I had to bite the bullet and actually add a debugger support mode for this
one, which is a bit unfortunate, but there really isn't anything else
I could imagine doing; this is clearly just debugger-specific behavior.
llvm-svn: 135051
|
| |
|
|
|
|
|
| |
Make it also available in ObjC++ propeties. Use common code for
objc and objc++ so they don't diverge. // rdar://9740328
llvm-svn: 135050
|
| |
|
|
|
|
| |
conversion specifiers. My recent change was a mistake.
llvm-svn: 135048
|
| |
|
|
|
|
| |
specifiers for character types.
llvm-svn: 135046
|