aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-11-12[PCH] When completing an objc forward reference, do not serialize the chain ↵Argyrios Kyrtzidis
of its categories because it is going to be rewritten (and the chain will be serialized again), otherwise we may form a cycle in its categories list when deserializing. Also introduce ASTMutationListener::CompletedObjCForwardRef to notify that a forward reference was completed; using Decl's isChangedSinceDeserialization/setChangedSinceDeserialization is bug inducing and kinda gross, we should phase it out. Fixes infinite loop in rdar://10418538. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144465 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-12Remove unnecessary 'else's after 'return's.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144464 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-12Add missing casts to AST.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144455 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-12[libclang] Further simplify the indexing API.Argyrios Kyrtzidis
That stuff can be added later on if we need them. Also add some const goodness. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144446 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-12Tweak the module map file test slightly, by putting one of the headersDouglas Gregor
into a submodule. Submodules aren't actually supported anywhere else, but we do parse them, so this verifies that we're at least seeing through them properly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144436 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-12Implement a minor optimization when loading module maps to satisfy aDouglas Gregor
module import: don't re-check for a loaded module unless we've actually loaded a new module map file. Already-loaded module map files aren't interesting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144435 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-12When searching for a module, speculatively load module maps to see ifDouglas Gregor
the module is described in one of the module maps in a search path or in a subdirectory off the search path that has the same name as the module we're looking for. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144433 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Make test compatible with ARM hosts.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144428 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Teach the search for modules to consider modules described by a moduleDouglas Gregor
map, so long as they have an umbrella header. This makes it possible to introduce a module map + umbrella header for a given set of headers, to turn it into a module. There are two major deficiencies here: first, we don't go hunting for module map files when we just see a module import (so we won't know about the modules described therein). Second, we don't yet have a way to build modules that don't have umbrella headers, or have incomplete umbrella headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144424 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Fix some typos, grammar errors, etc. in cursor kind descriptionsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144412 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Wire up the mapping from header files mentioned in module maps over toDouglas Gregor
the corresponding (top-level) modules. This isn't actually useful yet, because we don't yet have a way to build modules out of module maps. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144410 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Resolve the header files named in module map "header" and "umbrella"Douglas Gregor
declarations to actual files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144408 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Extend -Wno-bind-to-temporary-copy and -Wno-{unnamed,local}-type-template-argsRichard Smith
to disable the corresponding -Wc++98-compat warnings in addition to the C++11 extension warnings, so that people already using these flags can switch to C++11 mode and turn on -Wc++98-compat. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144404 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Rename SPECIAL_TYPE_jmp_buf and SPECIAL_TYPE_sigjmp_buf to follow theDouglas Gregor
convention of SPECIAL_TYPE*. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144403 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Introduce basic support for parsing module map files.Douglas Gregor
Module map files provide a way to map between headers and modules, so that we can layer a module system on top of existing headers without changing those headers at all. This commit introduces the module map file parser and the module map that it generates, and wires up the module map file parser so that we'll automatically find module map files as part of header search. Note that we don't yet use the information stored in the module map. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144402 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11When importing an ObjCInterfaceDecl, ensure thatSean Callanan
superclass information is imported before validating it. This fixes spurious "incompatible superclasses" errors in LLDB. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144393 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Tweak CXLoadedDiagnosticSetImpl::makeString() to include an extra null ↵Ted Kremenek
character, and change the creation of the FixIT's string to again just rely on this string (instead of duplicating it when calling createCXString). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144389 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Silence compiler warning.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144386 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Constant expression evalation: const_cast support.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144382 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Search for libstdc++.dylib in llvm-gcc's files on darwin10. rdar://10419079Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144381 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11libclang/CXLoadedDiagnostic.cpp: Work around not to miss the string ↵NAKAMURA Takumi
terminator on fixit. FixIts might be exposed as C string via clang_getCString(), though the zero terminator is not allocated in CXLoadedDiagnosticSetImpl::makeString. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144379 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Don't recurse so deep in this test, pending APValue rework to further reduce theRichard Smith
stack pressure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144378 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Reduce the constexpr stack pressure somewhat. Hopefully this will be enough toRichard Smith
please the buildbots. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144375 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11test/Misc/serialized-diags.c: Tweak FileCheck expressions to be tolerant to ↵NAKAMURA Takumi
DOSish output. FIXME: For now, " = 0Parse Issueexpected ';' after expression{{XXX}}" would not be matched due to unexpected garbage{{XXX} on some hosts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144374 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Constant expression evaluation: support for constexpr member functions. ThisRichard Smith
reinstates r144273; a combination of r144333's fix for NoOp rvalue-to-lvalue casts and some corresponding changes here resolve the regression which that caused. This patch also adds support for some additional forms of member function call, along with additional testing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144369 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Place 'argument unused during compilation' under a -W flag. Fixes ↵Ted Kremenek
<rdar://problem/10403653>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144365 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Don't apply NRVO to over-aligned variables. The caller onlyJohn McCall
guarantees alignment up to the ABI alignment of the return type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144364 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Be sure to insulate block literals from any cleanups in theirJohn McCall
enclosing full-expressions. It is somewhat amazing that this hasn't come up as a problem before. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144362 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Add Linux multiarch include directories for mips/mipsel. Patch from Simon ↵Eli Friedman
Atanasyan. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144358 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11include/clang-c/Index.h: Update CINDEX_LINKAGE on 6 decls. Corresponds to ↵NAKAMURA Takumi
libclang.exports in r144343 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144357 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Make sure that restrict-qualifying an array actually adds a restrict ↵Eli Friedman
qualifier. PR11354. (operator bool() is evil!) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144355 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11[serialized diagnostics]: add test cases for serialized diagnostics, ↵Ted Kremenek
including a test case for no issues, multiple issues, and a single issue. Along the way, tweak c-index-test -read-diagnostics output so it is easier to tell what diagnostics are child diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144349 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11I predict that HeaderSearch will need the ability to generateDouglas Gregor
diagnostics in the future. Make it so. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144347 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11[libclang] Simplify the indexing API.Argyrios Kyrtzidis
Cut down the number of callbacks to more generic ones. Clients can check an enum to find out what kind of declaration it is and they can call functions to get more specific information than the generic provided info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144343 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Add a const version of ObjCClassDecl::getForwardDecl, no functionality change.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144342 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Move "Unqualified lookup into dependent bases of class templates" Microsoft ↵Francois Pichet
specific behavior from -fms-extensions to -fms-compatibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144341 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11[static analyzer] be more specific when running removeDeadBindings. Instead ↵Ted Kremenek
of seeing if the predecessor node was a non-StmtPoint, check if it is specifically a BlockEntrance node. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144340 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Add top-level driver option '--serialize-diagnostics' for serialize compiler ↵Ted Kremenek
diagnostics to a file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144339 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-10Implicit casts from rvalue to lvalue are not meaningful. Don't accidentally addRichard Smith
them when performing a const conversion on the implicit object argument for a member operator call on an rvalue. No change to the testsuite: the test for this change is that the added assertion does not fire any more. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144333 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-10[static analyzer]: only call RemoveDeadBindings() when analyzing non-Expr ↵Ted Kremenek
stmts, entering a basic block, or analyzing non-consumed expressions. This sigificantly speeds up analysis time, and reduces analysis time down to 27% less than before we linearized the CFG. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144332 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-10Add invariant.load metadata to loads from selector references. Allows these ↵Pete Cooper
loads to later be moved/combined in the optimizer. Fixes <rdar://problem/6027699> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144318 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-10Add missing dependency for shared library build to CMakeLists. Patch by ↵Eli Friedman
Johannes Obermayr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144310 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-10Revert r144273. It causes clang self-host build failure.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144296 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-10serialized diagnostics: simplify code.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144277 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-10Whenever explicitly activating or deactivating a cleanup, weJohn McCall
need to provide a 'dominating IP' which is guaranteed to dominate the (de)activation point but which cannot be avoided along any execution path from the (de)activation point to the push-point of the cleanup. Using the entry block is bad mojo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144276 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-10include/clang/AST/APValue.h: Try to fix *900* of cast-qual warnings by g++.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144275 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-10c-index-test.c: Fix a comment style. /* It is C source. */NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144274 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-10Constant expression evaluation: support for constexpr member functions.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144273 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-10c-index-test.c: Fix syntax. It is C source.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144272 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-10Fix a subtle bug with cleanups: when activatingJohn McCall
a previously-inactive cleanup, not only do we need a flag variable, but we should also force the cleanup to query the flag variable. However, we only need to do this when we're activating in a context that's conditionally executed; otherwise, we may safely assume that the cleanup is dominated by the activation point. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144271 91177308-0d34-0410-b5e6-96231b3b80d8