summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* [analyzer] Address Jordan's code review comments for r164716.Anna Zaks2012-09-272-15/+17
| | | | llvm-svn: 164788
* Pass PrintingPolicy by reference, copying it isn't cheap.Benjamin Kramer2012-09-271-2/+4
| | | | llvm-svn: 164781
* Following up on r164620, cope with symlinking from an embeddedDouglas Gregor2012-09-271-1/+30
| | | | | | | framework location out to a top-level framework. Such frameworks are not really embedded at all. llvm-svn: 164774
* Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. ↵Sylvestre Ledru2012-09-2716-32/+32
| | | | | | See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164766 llvm-svn: 164769
* Fix a typo 'iff' => 'if'Sylvestre Ledru2012-09-2716-32/+32
| | | | llvm-svn: 164766
* IvarInvalidationChecker.cpp: Remove an unused member, InterfD. ↵NAKAMURA Takumi2012-09-271-2/+1
| | | | | | [-Wunused-private-field] llvm-svn: 164745
* Per discussion in ↵Argyrios Kyrtzidis2012-09-275-13/+20
| | | | | | | | | | http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120917/064551.html have PPCallbacks::InclusionDirective pass the character range for the filename quotes or brackets. rdar://11113134 & http://llvm.org/PR13880 llvm-svn: 164743
* [libclang] Always report a CXCursor_MacroDefinition for code-completionArgyrios Kyrtzidis2012-09-272-4/+4
| | | | | | results for a macro name, not CXCursor_NotImplemented. llvm-svn: 164740
* Update to new function attribute querying syntax.Bill Wendling2012-09-261-1/+1
| | | | llvm-svn: 164726
* Allow -MF to be used in combination with -E -M or -E -MM.Benjamin Kramer2012-09-261-3/+3
| | | | | | Fixes PR13851. Patch by Dimitry Andric! llvm-svn: 164717
* [analyzer] Add experimental ObjC invalidation method checker.Anna Zaks2012-09-264-8/+333
| | | | | | | | | | | This checker is annotation driven. It checks that the annotated invalidation method accesses all ivars of the enclosing objects that are objects of type, which in turn contains an invalidation method. This is driven by __attribute((annotation("objc_instance_variable_invalidator")). llvm-svn: 164716
* Revert "Use sep instead of ' '."Ted Kremenek2012-09-261-1/+1
| | | | | | This isn't correct, as Jordan correctly points out. llvm-svn: 164711
* Fix template instantiation of attributes. More specifically, fix the caseDeLesley Hutchins2012-09-261-0/+20
| | | | | | | | | where an attribute is attached to a forward declaration of a template function, and refers to parameters of that declaration, but is then inherited by the definition of that function. When the definition is instantiated, the parameter references need to be remapped. llvm-svn: 164710
* Use sep instead of ' '.Ted Kremenek2012-09-261-1/+1
| | | | llvm-svn: 164709
* [libclang] Remove the ParentKind cursor kind from code-completion results.Argyrios Kyrtzidis2012-09-262-6/+2
| | | | | | This is to reduce dependency to cursors for the code-completion results. llvm-svn: 164705
* Have ASTUnit::Save() return a bool to indicate save error.Argyrios Kyrtzidis2012-09-261-5/+5
| | | | | | Removes a dependency of ASTUnit to clang-c/Index.h. llvm-svn: 164704
* Revert r163022, it caused PR13924.Nico Weber2012-09-262-11/+1
| | | | | | | Add a test for PR13924. Do not revert the test added in r163022, it surprisingly still passes even after reverting the code changes. llvm-svn: 164672
* Add struct keyword before _Unwind_Context.Logan Chien2012-09-261-1/+1
| | | | | | | | In the C programming language, we have to add the "struct" keyword. Otherwise, the compiler will emit error message. llvm-svn: 164665
* Remove unnecessary ASTContext& parameter from SymExpr::getType().Ted Kremenek2012-09-268-21/+19
| | | | llvm-svn: 164661
* Add codegen support for the __debugbreak intrinsic.Nico Weber2012-09-261-0/+4
| | | | llvm-svn: 164660
* Fix an edge case of mangling involving the combination of a lambda and typeid.Eli Friedman2012-09-265-6/+20
| | | | | | | | | | | | | typeid (and a couple other non-standard places where we can transform an unevaluated expression into an evaluated expression) is special because it introduces an an expression evaluation context, which conflicts with the mechanism to compute the current lambda mangling context. PR12123. I would appreciate if someone would double-check that we get the mangling correct with this patch. llvm-svn: 164658
* Fix the AST representation for non-type template arguments to encodeEli Friedman2012-09-2616-179/+234
| | | | | | | | | | | | enough information so we can mangle them correctly in cases involving dependent parameter types. (This specifically impacts cases involving null pointers and cases involving parameters of reference type.) Fix the mangler to use this information instead of trying to scavenge it out of the parameter declaration. <rdar://problem/12296776>. llvm-svn: 164656
* Teach Type::getAs<TemplateSpecializationType> that a TemplateSpecializationTypeRichard Smith2012-09-261-8/+15
| | | | | | | for a type alias template can appear as sugar at any level of desugaring, just like a TypedefType. llvm-svn: 164655
* [Options] Store the option ID in OptTable::Info.Michael J. Spencer2012-09-254-6/+6
| | | | llvm-svn: 164644
* Rename CanFitInto64Bits to alwaysFitsInto64Bits per discussion on IRC.Jordan Rose2012-09-251-2/+2
| | | | | | | | | | | | | This makes the behavior clearer concerning literals with the maximum number of digits. For a 32-bit example, 4,000,000,000 is a valid uint32_t, but 5,000,000,000 is not, so we'd have to count 10-digit decimal numbers as "unsafe" (meaning we have to check for overflow when parsing them, just as we would for numbers with 11 digits or higher). This is the same, only with 64 bits to play with. No functionality change. llvm-svn: 164639
* [driver] Add support for the -fno-fast-math option.Chad Rosier2012-09-251-11/+27
| | | | | | rdar://12299433 llvm-svn: 164638
* Improve upon r164450 and localize the logic of updating the type ofArgyrios Kyrtzidis2012-09-251-28/+34
| | | | | | a function decl inside the ASTNodeImporter::VisitFunctionDecl function. llvm-svn: 164625
* Optimize NumericLiteralParser::GetIntegerValue().Dmitri Gribenko2012-09-251-9/+21
| | | | | | | It does a conservative estimate on the size of numbers that can fit into uint64_t. This bound is improved. llvm-svn: 164624
* Reapply "[analyzer] Remove constraints on dead symbols as part of ↵Jordan Rose2012-09-252-9/+8
| | | | | | | | | | | | | | | | | | removeDeadBindings." Previously, we'd just keep constraints around forever, which means we'd never be able to merge paths that differed only in constraints on dead symbols. Because we now allow constraints on symbolic expressions, not just single symbols, this requires changing SymExpr::symbol_iterator to include intermediate symbol nodes in its traversal, not just the SymbolData leaf nodes. This depends on the previous commit to be correct. Originally applied in r163444, reverted in r164275, now being re-applied. llvm-svn: 164622
* [analyzer] Calculate liveness for symbolic exprs as well as atomic symbols.Jordan Rose2012-09-251-28/+40
| | | | | | | | | | | | | No tests, but this allows the optimization of removing dead constraints. We can then add tests that we don't do this prematurely. <rdar://problem/12333297> Note: the added FIXME to investigate SymbolRegionValue liveness is tracked by <rdar://problem/12368183>. This patch does not change the existing behavior. llvm-svn: 164621
* Under certain terrible circumstances (<rdar://problem/10805775>),Douglas Gregor2012-09-251-0/+13
| | | | | | | | | top-level frameworks can actually be symlinked over to embedded frameworks, and accessed via the top-level framework's headers. In this case, we need to determine that the framework was *actually* an embedded framework, so we can load the appropriate top-level module. llvm-svn: 164620
* Macro history (de-)serialization. Deserialization currently reads only the ↵Alexander Kornienko2012-09-254-107/+128
| | | | | | | | | | | | | | | | latest macro definition. Needs more work. Summary: Passes all tests (+ the new one with code completion), but needs a thorough review in part related to modules. Reviewers: doug.gregor Reviewed By: alexfh CC: cfe-commits, rsmith Differential Revision: http://llvm-reviews.chandlerc.com/D41 llvm-svn: 164610
* Examine the last, not the first, instruction from the MC matcher.Bob Wilson2012-09-251-1/+1
| | | | | | | | If an MS-style inline asm is matched to multiple instructions, e.g., with a a WAIT-prefix, then we need to examine the operands of the last instruction instruction, not the prefix instruction. llvm-svn: 164608
* Introduce builtin macros to determine whether we're building aDouglas Gregor2012-09-251-0/+67
| | | | | | | | | | specific module (__building_module(modulename)) and to get the name of the current module as an identifier (__MODULE__). Used to help headers behave differently when they're being included as part of building a module. Oh, the irony. llvm-svn: 164605
* When performing a ::delete of an object with a virtual destructor,John McCall2012-09-254-1/+50
| | | | | | | | | | | | | | be sure to delete the complete object pointer, not the original pointer. This is necessary if the base being deleted is at a non-zero offset in the complete object. This is only required for objects with virtual destructors because deleting an object via a base-class subobject when the base does not have a virtual destructor is undefined behavior. Noticed while reviewing the last four years of cxx-abi-dev activity. llvm-svn: 164597
* Implement Mike Herrick's proposed noexcept mangling.John McCall2012-09-251-1/+5
| | | | llvm-svn: 164593
* In the MS ABI, ctors return 'this'. Patch by Dmitry Sokolov.John McCall2012-09-251-12/+35
| | | | llvm-svn: 164592
* Add the Microsoft __is_interface_class type trait.John McCall2012-09-255-0/+9
| | | | | | Patch by Andy Gibbs! llvm-svn: 164591
* Fix for r163013 regression and further __interface enhancement.John McCall2012-09-253-22/+108
| | | | | | Patch by Andy Gibbs! llvm-svn: 164590
* During jump-scope checking, build an ExprWithCleanups immediatelyJohn McCall2012-09-252-3/+20
| | | | | | | | | | | | into the enclosing scope; this is a more accurate model but is (I believe) unnecessary in my test case due to other flaws. However, one of those flaws is now intentional: blocks which appear in return statements can be trivially observed to not extend in lifetime past the return, and so we can allow a jump past them. Do the necessary magic in IR-generation to make this work. llvm-svn: 164589
* Fix crash when a decltype expression in a trailing return type refers to theRichard Smith2012-09-252-0/+24
| | | | | | | | | | function being instantiated. An error recovery codepath was recursively performing name lookup (and triggering an unbounded stack of template instantiations which blew out the stack before hitting the depth limit). Patch by Wei Pan! llvm-svn: 164586
* Delete some code which is, as far as I can tell, dead.Eli Friedman2012-09-251-53/+3
| | | | llvm-svn: 164580
* [analyzer] Fix a buildbot crash triggered by turning on dynamicAnna Zaks2012-09-251-1/+1
| | | | | | dispatch. llvm-svn: 164579
* Don't produce diagnostics for missing ctor-initializers during templateRichard Smith2012-09-252-2/+6
| | | | | | instantiations if we encountered errors parsing some of the initializers. llvm-svn: 164578
* Handle C++ functional casts in a similar way to C-style casts inEli Friedman2012-09-241-0/+1
| | | | | | unused expression warnings. <rdar://problem/12359208>. llvm-svn: 164569
* Update for r164567.Chad Rosier2012-09-241-2/+2
| | | | llvm-svn: 164568
* Add clarifying comment.Ted Kremenek2012-09-241-0/+2
| | | | llvm-svn: 164557
* StringRef'ize Preprocessor::CreateString().Dmitri Gribenko2012-09-246-15/+12
| | | | llvm-svn: 164555
* Replace raw call to snprintf() by llvm streams.Dmitri Gribenko2012-09-241-21/+24
| | | | llvm-svn: 164554
* Replace an assertion with an error for empty __asm statements.Bob Wilson2012-09-241-4/+12
| | | | llvm-svn: 164551
OpenPOWER on IntegriCloud