aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2009-09-22Fix: <rdar://problem/7242006> [RegionStore] compound literal assignment with ↵Ted Kremenek
floats not honored git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82575 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Replace the -code-completion-dump option with Douglas Gregor
-code-completion-at=filename:line:column which performs code completion at the specified location by truncating the file at that position and enabling code completion. This approach makes it possible to run multiple tests from a single test file, and gives a more natural command-line interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82571 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22CXXMethodDecls should always be mangled, even if they are inside an extern ↵Anders Carlsson
"C" block. Fixes PR5017. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82567 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Code refactoring and cleanup.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82566 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Issue good ambiguity diagnostic when convesion fails.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82565 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22If we already set a primary base, don't set it to the first nearly empty ↵Anders Carlsson
base class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82563 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Fix speling error.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82562 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Explicitly initialize the PrimaryBase and PrimaryBaseWasVirtual members.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82560 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Yes.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82559 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22(With Doug's help) fix a crash in the code completion code that lead to a ↵Anders Carlsson
test failure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82558 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Don't assert that linkage decls are always C++, it's not true. Fixes PR5019.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82557 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Fix a regression in accessing class getter using the dot-syntaxFariborz Jahanian
notation. There is still an issue accessing field of a 'Class''s isa in legacy code using dot field access notation (as noted in the test case) but unrelated to this patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82555 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Implement code completion within a function call, triggered after theDouglas Gregor
opening parentheses and after each comma. We gather the set of visible overloaded functions, perform "partial" overloading based on the set of arguments that we have thus far, and return the still-viable results sorted by the likelihood that they will be the best candidate. Most of the changes in this patch are a refactoring of the overloading routines for a function call, since we needed to separate out the notion of building an overload set (common to code-completion and normal semantic analysis) and then what to do with that overload set. As part of this change, I've pushed explicit template arguments into a few more subroutines. There is still much more work to do in this area. Function templates won't be handled well (unless we happen to deduce all of the template arguments before we hit the completion point), nor will overloaded function-call operators or calls to member functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82549 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Spell function pointer correctly.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82543 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Add safe part of previous (reverted) commit, necessary to update to LLVM API ↵Daniel Dunbar
change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82540 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Revert "Switch a few clients over to StringLiteral::getString.", this is ↵Daniel Dunbar
breaking some projects, but I don't have a test case yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82539 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Update PCH serialization of FunctionDecl flags.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82526 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Allow PCH files to be read from stdin.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82525 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Fix: <rdar://problem/7242015> [RegionStore] variable passed-by-reference ↵Ted Kremenek
(via integer) to function call not invalidated git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82523 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Switch a few clients over to StringLiteral::getString.Daniel Dunbar
- Switching all of them out-of-my-current-scope-of-interest, sorry. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82515 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Add StringLiteral::getString -> StringRef.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82514 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Store the set of indirect primary bases directly in the record layout builder.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82513 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Fix some typos. WIP. Large alignments don't work yet.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82512 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Fix doc.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82511 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Improve debug info generation for __block variables.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82508 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Record layout builder cleanup.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82502 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Change all the Type::getAsFoo() methods to specializations of Type::getAs().John McCall
Several of the existing methods were identical to their respective specializations, and so have been removed entirely. Several more 'leaf' optimizations were introduced. The getAsFoo() methods which imposed extra conditions, like getAsObjCInterfacePointerType(), have been left in place. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82501 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Removed -fobjc-newgc-api option. clang now conforms toFariborz Jahanian
gcc-style write-barrier api only. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82493 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Provide intermediate solution to handling assignments to structs via anTed Kremenek
integer pointer. For now just invalidate the fields of the struct. This addresses: <rdar://problem/7185607> [RegionStore] support invalidation of bit fields using integer assignment git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82492 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Code completion for ordinary names when we're starting a declaration, ↵Douglas Gregor
expression, or statement git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82481 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21When providing a code-completion suggestion for a hidden name, includeDouglas Gregor
a nested-name-specifier that describes how to refer to that name. For example, given: struct Base { int member; }; struct Derived : Base { int member; }; the code-completion result for a member access into "Derived" will provide both "member" to refer to Derived::member (no qualification needed) and "Base::member" to refer to Base::member (qualification included). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82476 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Enhance "case" code completion in C++ to suggest qualified names forDouglas Gregor
enumerators when either the user intentionally wrote a qualified name (in which case we just use that nested-name-specifier to match the user's code) or when this is the first "case" statement and we need a qualified name to refer to an enumerator in a different scope. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82474 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Miscellanous fixes in generatation of objc gc's write-barriers.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82472 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Code completion for "case" statements within a switch on an expressionDouglas Gregor
of enumeration type, providing the various unused enumerators as options. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82467 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Refactor and simplify the CodeCompleteConsumer, so that all of theDouglas Gregor
real work is performed within Sema. Addresses Chris's comments, but still retains the heavyweight list-of-multimaps data structure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82459 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Add missing PCH support for -fstack-protector.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82435 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Implement __builtin_unreachable(), a GCC 4.5 extension.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82433 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Change ASTUnit to only initialize the predefines buffer to the suggested ↵Daniel Dunbar
predefines. - It isn't really clear what to do with the preprocessor here, but this is more sensible. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82431 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Change ASTUnit to take the Diagnostic as an argument, the client should have ↵Daniel Dunbar
control of this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82430 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Start mangling expressions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82423 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-19Ok, an AssertingVH definitely doesn't work for now because we free our cache ↵Daniel Dunbar
after the optimizer may have hacked on the module. Use a WeakVH instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82324 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-19Make clang stop relying on ConstantStruct::get's default value for isPackedNick Lewycky
which will be going away (ie. it's becoming a required parameter) later today. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82323 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-19Switch CGDebugInfo type cache to using an AssertingVH.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82321 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-19Factor out CGDebugInfo::CreateTypeNode method.Daniel Dunbar
- No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82320 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18In C++ code completion, only suggest the "template" keyword after ".",Douglas Gregor
"->", or "::" if we will be looking into a dependent context. It's not wrong to use the "template" keyword, but it's to needed, either. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82307 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18Make the construction of the code-completion string for a functionDouglas Gregor
template smarter, by taking into account which function template parameters are deducible from the call arguments. For example, template<typename RandomAccessIterator> void sort(RandomAccessIterator first, RandomAccessIterator last); will have a code-completion string like sort({RandomAccessIterator first}, {RandomAccessIterator last}) since the template argument for its template parameter is deducible. On the other hand, template<class X, class Y> X* dyn_cast(Y *Val); will have a code-completion string like dyn_cast<{class X}>({Y *Val}) since the template type parameter X is not deducible from the function call. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82306 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18Introduce code completion patterns for templates, which provide theDouglas Gregor
angle brackets < > along with placeholder template arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82304 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18Re-introduce diagnostic caching in BugReporter that was originally added inTed Kremenek
r82198 and then reverted. This is an intermediate solution, as diagnostic caching should not rely on static variables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82301 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18Reintroduce FoldingSet profiling for PathDiagnostics.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82299 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18Fix regression introduced by r82198 that caused functions/methods with ↵Ted Kremenek
invalid CFGs to get analyzed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82297 91177308-0d34-0410-b5e6-96231b3b80d8