- Jul 15, 2011
-
-
John McCall authored
which is required given the current setup for template argument deduction substitution validation, and add a test case to make sure we don't break it in the future. llvm-svn: 135262
-
Chandler Carruth authored
the exception of its uses of SourceManager and SourceLocation APIs. llvm-svn: 135260
-
John McCall authored
Also add the missing serialization support for SEHTryStmt, SEHFinallyStmt, and SEHExceptStmt, and fix and finish the serialization support for AsTypeExpr. In addition, change the code so that it will no longer link if a Stmt subclass is missing serialization support. llvm-svn: 135258
-
John McCall authored
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
-
Chris Lattner authored
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
-
Jordy Rose authored
Clean up UnixAPIChecker, including switching its array of BugTypes to llvm::OwningPtr<BugType> vars (the new convention). No functionality change. llvm-svn: 135255
-
Jordy Rose authored
Clean up MacOSXAPIChecker, including switching its array of BugTypes to a single llvm::OwningPtr<BugType> (the new convention). No functionality change. llvm-svn: 135250
-
Chris Lattner authored
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
-
John McCall authored
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
-
Chandler Carruth authored
llvm-svn: 135226
-
Chandler Carruth authored
'expansion'. llvm-svn: 135224
-
Chandler Carruth authored
ARCMigrate. llvm-svn: 135223
-
Richard Trieu authored
Remove warnings of constant operands of logical operators from template 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
-
Ted Kremenek authored
Fix false negative reported in PR 10358 by using 'Unknown' in -Wuninitialized to avoid cascading warnings. Patch by Kaelyn Uhrain. llvm-svn: 135217
-
-
Rafael Espindola authored
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
-
Argyrios Kyrtzidis authored
Keep the error if the result is unused. rdar://9552694. llvm-svn: 135209
-
John McCall authored
llvm-svn: 135208
-
- Jul 14, 2011
-
-
Richard Smith authored
PR10359: Template declarations which define classes are not permitted to 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
-
Argyrios Kyrtzidis authored
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
-
Sebastian Redl authored
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 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
-
Sebastian Redl authored
llvm-svn: 135175
-
Chris Lattner authored
llvm-svn: 135170
-
Chris Lattner authored
llvm-svn: 135166
-
Benjamin Kramer authored
llvm-svn: 135155
-
Ted Kremenek authored
llvm-svn: 135152
-
Chandler Carruth authored
llvm-svn: 135150
-
Ted Kremenek authored
Add extra sanity checking in FormatString::matchesType() that we are 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
-
Chandler Carruth authored
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
-
Chandler Carruth authored
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
-
Chandler Carruth authored
'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
-
Chandler Carruth authored
to 'expand' for macros. Only comments and uses local to the TokenLexer are updated. No functionality changed. llvm-svn: 135137
-
Chandler Carruth authored
'[Ee]xpan(sion|ded)' in the TextDiagnosticPrinter. No functionality changed. llvm-svn: 135136
-
Chandler Carruth authored
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
-
Ted Kremenek authored
Reapply r135075, but modify format-strings.c and format-strings-fixit.c test cases to be more portable with an explicit target triple. llvm-svn: 135134
-
NAKAMURA Takumi authored
Revert r135075, "format string checking: long and int have the same widths on 32-bit, so we shouldn't warn about using" It fails on freebsd, mingw and msvc10. llvm-svn: 135129
-
Douglas Gregor authored
is still terrible here because typo correction is not behaving well in the presence of overloaded functions. llvm-svn: 135128
-
Argyrios Kyrtzidis authored
[arcmt] Make sure migrating to ARC works even if '-fobjc-arc' is included in command-line flags. rdar://9567824 llvm-svn: 135115
-
Richard Smith authored
PR8800: When building a conversion to A& using a member operatorA&(), do not require A to be a complete type. llvm-svn: 135101
-
- Jul 13, 2011
-
-
Bruno Cardoso Lopes authored
llvm-svn: 135091
-