aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-07-15Switch comments and assert text in AST from 'instantiation' toChandler Carruth
'expansion'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135224 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-15Switch comments about 'macro instantiation' to 'macro expansion' inChandler Carruth
ARCMigrate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135223 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-15Remove warnings of constant operands of logical operators from template ↵Richard Trieu
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135222 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Match llvm API change.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135220 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Fix false negative reported in PR 10358 by using 'Unknown' in ↵Ted Kremenek
-Wuninitialized to avoid cascading warnings. Patch by Kaelyn Uhrain. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135217 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Tweak the CMake build so that building a project just containing ClangDouglas Gregor
(and linking to an already-build LLVM) works with Xcode. The resulting Xcode project for Clang is quite a bit smaller and builds/loads faster. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135216 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14[arcmt] Don't remove retains/releases on a global variable, flag them with ↵Argyrios Kyrtzidis
errors. rdar://9402555. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135213 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Revert 135177 to fix PR10363.Rafael Espindola
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135210 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14[arcmt] Allow -retain of an __unsafe_unretained receiver if the result gets ↵Argyrios Kyrtzidis
used. Keep the error if the result is unused. rdar://9552694. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135209 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Teach -Wconversion, -Wsign-compare etc. about division and remainder.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135208 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14PR10359: Template declarations which define classes are not permitted to ↵Richard Smith
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135195 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14[arcmt] Emit an error for unused -autorelease messages.Argyrios Kyrtzidis
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135193 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14For C++11, do more checking of initializer lists up-front, enabling some ↵Sebastian Redl
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135177 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Fix problems Johannes noticed, and extend test cases further.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135176 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Remove InitializationSequence::ReferenceBinding, the last redundant sequence ↵Sebastian Redl
kind. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135175 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14simplifyChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135170 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14StringMap::first() is about to start returning a StringRef, adapt.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135166 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Change intrinsic getter to take an ArrayRef, now that the underlying ↵Benjamin Kramer
function in LLVM does. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135155 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Moving one misplaced entry in the attribute enum in AttributeList.h into ↵Caitlin Sadowski
alphabetical order. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135153 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Revert r135147 and r135075. The consensus was that this wasn't the right ↵Ted Kremenek
thing to do. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135152 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Update the remaining comments in Frontend to 'expansion'.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135150 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Clean up some comments I missed when switching fromChandler Carruth
NestedMacroInstantiations -> NestedMacroExpansions. With this change, libclang should be completely converted except for uses of SourceManger and SourceLocation APIs, and the C bindings for those APIs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135149 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Clean up two lingering comments that mention 'instantiation' w.r.t.Chandler Carruth
macros in libclang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135148 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Add extra sanity checking in FormatString::matchesType() that we are ↵Ted Kremenek
comparing integers to integers. This happens not to be an issue now, but the extra check helps future proof in case of future refactorings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135147 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14NestedMacroInstantiations -> NestedMacroExpansionsChandler Carruth
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135141 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Update all of the libclang code corresponding to the preprocessorChandler Carruth
MacroInstantiation -> MacroExpansion rename. Internally, everything is switched. Introduce a new cursor kind enum with the new name, but retain the old name as an alias so that we don't break backwards compatibility. Also update the debug printing routine to use 'macro expansions' as its explicitly not guaranteed to be stable, and mechanically switch the test cases over to that. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135140 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Move the rest of the preprocessor terminology from 'instantiate' andChandler Carruth
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135139 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Convert terminology in the Lexer from 'instantiate' and variants toChandler Carruth
'expand'. Also update the public API it provides to the new term, and propagate that update to the various clients. No functionality changed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135138 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Switch the TokenLexer's terminology from various forms of 'instantiate'Chandler Carruth
to 'expand' for macros. Only comments and uses local to the TokenLexer are updated. No functionality changed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135137 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Switch all local code and comments from '[Ii]nstantiat(ion|ed)' toChandler Carruth
'[Ee]xpan(sion|ded)' in the TextDiagnosticPrinter. No functionality changed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135136 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Switch the diagnostic messages about macros to use the terms 'expanded'Chandler Carruth
and 'expansions' rather than 'instantiated' and 'contexts'. This is the first of several patches migrating Clang's terminology surrounding macros from 'instantiation' to 'expansion'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135135 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Reapply r135075, but modify format-strings.c and format-strings-fixit.c test ↵Ted Kremenek
cases to be more portable with an explicit target triple. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135134 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Revert r135075, "format string checking: long and int have the same widths ↵NAKAMURA Takumi
on 32-bit, so we shouldn't warn about using" It fails on freebsd, mingw and msvc10. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135129 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14Add a hackaround to avoid the crash in PR10355. However, our recoveryDouglas Gregor
is still terrible here because typo correction is not behaving well in the presence of overloaded functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135128 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-14[arcmt] Make sure migrating to ARC works even if '-fobjc-arc' is included in ↵Argyrios Kyrtzidis
command-line flags. rdar://9567824 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135115 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13Document the behavior of property modifiers in ARC.John McCall
rdar://problem/9768338 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135104 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13PR8800: When building a conversion to A& using a member operatorA&(), do not ↵Richard Smith
require A to be a complete type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135101 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13Reapply r134946 with fixes. Tested on Benjamin testcase and other test-suite ↵Bruno Cardoso Lopes
failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135091 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13Add 'mutable' to the function declarator chunk, to be used whenDouglas Gregor
parsing lambda expressions, from John Freeman! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135090 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13Fix an incorrect namespace typo-correction diagnostic, from KaelynDouglas Gregor
Uhrain! Fixes PR10318. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135086 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13Emit debug info for extended vectors.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135083 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13format string checking: long and int have the same widths on 32-bit, so we ↵Ted Kremenek
shouldn't warn about using an "int" format specifier with a "long" type in 32-bit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135075 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13Enforce access control for the destructor in a new[] expression and markJohn McCall
it as used. Otherwise, we can fail to instantiate or validate the destructor, which can lead to crashes in IR gen like PR10351. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135073 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13[arcmt] Add weak/unsafe_unretained for "@property (readonly)" when we are ↵Argyrios Kyrtzidis
@synthesizing it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135067 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13[arcmt] For properties rewrite 'assign' -> 'weak or unsafe_unretained', ↵Argyrios Kyrtzidis
'retain' -> 'strong', and add 'weak or unsafe_unretained' when 'assign' is missing. rdar://9496219&9602589. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135065 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13With -Wselector, don't warn about unimplemented optional methodFariborz Jahanian
used in @selector expression because, well, their implementation is optional. // rdar://9545564 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135057 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13Don't crash if defining -dealloc in a category.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135054 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13In debugger mode, make ObjC message sends to unknown selectors returnJohn McCall
__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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135051 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13objc++: Some level of covariance is allowed in ObjC properties.Fariborz Jahanian
Make it also available in ObjC++ propeties. Use common code for objc and objc++ so they don't diverge. // rdar://9740328 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135050 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-13Re-relax conversion specifier checking for printf format strings and ↵Ted Kremenek
conversion specifiers. My recent change was a mistake. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135048 91177308-0d34-0410-b5e6-96231b3b80d8