summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
...
* Rename headers: 'clang/GR' 'clang/EntoSA' andTed Kremenek2010-12-23133-285/+285
| | | | | | update Makefile. llvm-svn: 122493
* Rename static analyzer namespace 'GR' to 'ento'.Ted Kremenek2010-12-23119-209/+209
| | | | llvm-svn: 122492
* It's amazing what you find when you actuallyTed Kremenek2010-12-231-7/+27
| | | | | | | | | | | set the RUN line correctly in a test file! Mark a bunch of tests for ArrayBoundCheckerV2 as FIXME's, as our current lack of pointer arithmetic handling causes these to be all false positives/negatives. llvm-svn: 122471
* Further tweak nonloc::ConcreteInt pretty printingTed Kremenek2010-12-231-2/+5
| | | | | | | to correctly print out negative values for signed integers. llvm-svn: 122470
* Add WIP prototype of a new buffer overflowTed Kremenek2010-12-238-2/+424
| | | | | | | checker based on using raw (symbolic) byte offsets from a base region. llvm-svn: 122469
* Change MemRegion extent type to be the same type usedTed Kremenek2010-12-231-5/+5
| | | | | | for array indices. llvm-svn: 122468
* Add 'getConditionType()' and 'getArrayIndexType()'Ted Kremenek2010-12-231-0/+8
| | | | | | | to SValBuilder. These two query methods are useful for constructing SVals. llvm-svn: 122467
* Enhance pretty-printing for nonloc::ConcreteIntTed Kremenek2010-12-231-4/+6
| | | | | | | to also include signedness and bitwidth of the underlying integer. llvm-svn: 122466
* Implement the part of C++0x [temp.arg.explicit]p3 that pertains toDouglas Gregor2010-12-232-1/+38
| | | | | | | | | | | | parameter packs. In particular, a parameter pack not otherwise deduced is deduced to an empty parameter pack. The C++0x wording here is a bit unfortunate; this should really only apply to function templates, and it mentions "trailing" parameter packs, which doesn't really make sense in the context of function templates. Will file a core issue separately. llvm-svn: 122463
* Implement the rest of C++0x [temp.deduct.type]p9, which specifies thatDouglas Gregor2010-12-233-4/+83
| | | | | | | | the presence of a pack expansion anywhere except at the end of a template-argument-list causes the entire template-argument-list to be a non-deduced context. llvm-svn: 122461
* Change all self assignments X=X to (void)X, so that we can turn on aJeffrey Yasskin2010-12-237-20/+20
| | | | | | | | | new gcc warning that complains on self-assignments and self-initializations. Fix one bug found by the warning, in which one clang::OverloadCandidate constructor failed to initialize its FunctionTemplate member. llvm-svn: 122459
* Be paranoid about NULL size expressions in dependently-sized array typesDouglas Gregor2010-12-221-3/+4
| | | | llvm-svn: 122454
* Unify the consistency checking for deduced template arguments into aDouglas Gregor2010-12-223-127/+235
| | | | | | | | | single routine. Extend that routine to handle consistency checking for template argument packs, so that we can compare the deduced packs for template parameter packs across different pack expansions. llvm-svn: 122452
* build: Use CLANG_NO_RUNTIME=1 specifically, not just any definition.Daniel Dunbar2010-12-221-1/+1
| | | | llvm-svn: 122449
* Subsequent attempt to fix linux build.Argyrios Kyrtzidis2010-12-223-1/+1
| | | | llvm-svn: 122442
* Implement template argument deduction for pack expansions whoseDouglas Gregor2010-12-2210-61/+247
| | | | | | | | | | | pattern is a template argument, which involves repeatedly deducing template arguments using the pattern of the pack expansion, then bundling the resulting deductions into an argument pack. We can now handle a variety of simple list-handling metaprograms using variadic templates. See, e.g., the new "count" metaprogram. llvm-svn: 122439
* Apparently I'm on a mission to break as many builds as possible.Argyrios Kyrtzidis2010-12-222-3/+3
| | | | llvm-svn: 122436
* Forgot to move the files in CMakeLists.txt.Argyrios Kyrtzidis2010-12-222-3/+3
| | | | llvm-svn: 122433
* Add GR/Checkers subdir for CMake build.Argyrios Kyrtzidis2010-12-221-0/+1
| | | | llvm-svn: 122432
* Move AnalysisConsumer.cpp and ExprEngine.cpp into the Checkers subdir ↵Argyrios Kyrtzidis2010-12-222-0/+0
| | | | | | | | temporarily to avoid cyclic dependency between the libraries and fix the linux build. llvm-svn: 122431
* Complain on missing property getter method onlyFariborz Jahanian2010-12-226-14/+53
| | | | | | | if property-dot expression is decidedly an rvalue. // rdar://8155806. llvm-svn: 122430
* When performing template argument deduction where the argument is aDouglas Gregor2010-12-222-12/+41
| | | | | | | | | | dependent template specialization type, the number of template arguments need not match precisely. Rather than checking the number of arguments eagerly (which does not consider argument packs), let the deduction routine for template argument lists cope with too many/too few arguments. llvm-svn: 122425
* [analyzer] Refactoring: Drop the 'GR' prefix.Argyrios Kyrtzidis2010-12-2284-821/+821
| | | | llvm-svn: 122424
* [analyzer] Refactoring: Move stuff into namespace 'GR'.Argyrios Kyrtzidis2010-12-22118-196/+470
| | | | llvm-svn: 122423
* [analyzer] Refactoring: Move checkers into lib/GR/Checkers and their own ↵Argyrios Kyrtzidis2010-12-2262-54/+90
| | | | | | library, libclangGRCheckers llvm-svn: 122422
* [analyzer] Refactoring: lib/Checker -> lib/GR and libclangChecker -> ↵Argyrios Kyrtzidis2010-12-2296-13/+13
| | | | | | libclangGRCore llvm-svn: 122421
* [analyzer] Refactoring: include/clang/Checker -> include/clang/GRArgyrios Kyrtzidis2010-12-22115-265/+265
| | | | llvm-svn: 122420
* Implicitly expand argument packs when performing template argumentDouglas Gregor2010-12-223-33/+118
| | | | | | | | | | | | deduction. Unify all of the looping over template arguments for deduction purposes into a single place, where argument pack expansion occurs; this is also the hook for deducing from pack expansions, which itself is not yet implemented. For now, at least we can handle a basic "count" metafunction written with variadics. See the new test for the formulation that works. llvm-svn: 122418
* If the unary operator is prefix and an lvalue (in C++), bindZhongxing Xu2010-12-222-6/+10
| | | | | | the location (l-value) to it. llvm-svn: 122396
* Introduced raw_identifier token kind.Abramo Bagnara2010-12-2214-89/+115
| | | | llvm-svn: 122394
* The base type is not always pointer type. We may cast to a base reference.Zhongxing Xu2010-12-221-2/+8
| | | | llvm-svn: 122393
* Always blast through no-op casts when getting expr SVals.Zhongxing Xu2010-12-221-6/+1
| | | | llvm-svn: 122390
* After inlining the CXXConstructExpr, bind the temporary object region to it.Zhongxing Xu2010-12-223-12/+22
| | | | | | | | | | | This change is necessary when the variable is a const reference and we need the l-value of the construct expr. After that, when binding the variable, recover the lazy compound value when the variable is not a reference. In Environment, use the value of a no-op cast expression when it has one. Otherwise, blast-through it. llvm-svn: 122388
* Redesign the way anonymous fields are handled in designated-initializers.Francois Pichet2010-12-224-88/+32
| | | | | | Previously designated anonymous fields were found via name lookup. This redesign uses the fact that an IndirectFieldDecl declaration will always follow an anonymous implicit field to remove the special case of name lookup. llvm-svn: 122387
* Tweak the checking of class template partial specialization argumentsDouglas Gregor2010-12-211-4/+16
| | | | | | | | to cope with parameter packs. This is a band-aid I will be revisiting this section when I implement declaration matching semantics for variadic templates. llvm-svn: 122369
* Add a hack to work around the lack of proper type-source info in a pack ↵Douglas Gregor2010-12-211-1/+8
| | | | | | expansion TypeLoc llvm-svn: 122367
* Add some const qualifiersDouglas Gregor2010-12-211-2/+2
| | | | llvm-svn: 122365
* For member pointer conversions potentially involving derived-to-baseDouglas Gregor2010-12-212-4/+7
| | | | | | | | | conversions, make sure that the (possibly) derived type is complete before looking for base classes. Finishes the fix for PR8801. llvm-svn: 122363
* When searching for the instantiation of a locally-scoped tagDouglas Gregor2010-12-212-5/+28
| | | | | | | declaration, also look for an instantiation of its previous declarations. Fixes PR8801. llvm-svn: 122361
* In C++, if the user redeclares a builtin function with a type that isDouglas Gregor2010-12-214-0/+29
| | | | | | | | | | | | | | | inconsistent with the type that the builtin *should* have, forget about the builtin altogether: we don't want subsequence analyses, CodeGen, etc., to think that we have a proper builtin function. C is protected from errors here because it allows one to use a library builtin without having a declaration, and detects inconsistent (re-)declarations of builtins during declaration merging. C++ was unprotected, and therefore would crash. Fixes PR8839. llvm-svn: 122351
* When determining which preprocessed entities to traverse in libclang,Douglas Gregor2010-12-214-1/+29
| | | | | | | | take into account the region of interest. Otherwise, we may fail to traverse some important preprocessed entity cursors. Fixes <rdar://problem/8554072>. llvm-svn: 122350
* Fix test to be platform-agnosticDouglas Gregor2010-12-211-1/+1
| | | | llvm-svn: 122348
* Fix a major inconsistency in the representation of Objective-CDouglas Gregor2010-12-217-70/+56
| | | | | | | | | | | | | | | | | | | | classes, categories, protocols, and class extensions, where the methods and properties of these entities would be inserted into the DeclContext in an ordering that doesn't necessarily reflect source order. The culprits were Sema::ActOnMethodDeclaration(), which did not perform the insertion of the just-created method declaration into the DeclContext for these Objective-C entities, and Sema::ActOnAtEnd(), which inserted all method declarations at the *end* of the DeclContext. With this fix in hand, clean up the code-completion actions for property setters/getters that worked around this brokenness in the AST. Fixes <rdar://problem/8062781>, where this problem manifested as poor token-annotation information, but this would have struck again in many other places. llvm-svn: 122347
* Replace all uses of PathV1::makeAbsolute with PathV2::fs::make_absolute.Michael J. Spencer2010-12-215-24/+33
| | | | llvm-svn: 122340
* Fix spelling.Michael J. Spencer2010-12-211-1/+1
| | | | llvm-svn: 122339
* Implement BlockDecl::getSourceRange(). The bogus source-rangeDouglas Gregor2010-12-213-0/+39
| | | | | | | information caused token-annotation to fail in funny ways. Fixes <rdar://problem/8595386>. llvm-svn: 122338
* Add test for C++ [temp.friend]p8, which bans partial specializations from ↵Douglas Gregor2010-12-211-0/+6
| | | | | | being friends llvm-svn: 122335
* A class template partial specialization cannot be a friend. Fixes PR8649.Douglas Gregor2010-12-213-0/+17
| | | | llvm-svn: 122325
* Teach clang_getCursorSemanticParent() andDouglas Gregor2010-12-212-3/+34
| | | | | | | | clang_getCursorLexicalParent() to cope with class and function templates, along with the parent of the translation unit. Fixes PR8761 and PR8766. llvm-svn: 122324
* When checking a using declaration, make sure that the context we'reDouglas Gregor2010-12-212-0/+14
| | | | | | looking in is complete. Fixes PR8756. llvm-svn: 122323
OpenPOWER on IntegriCloud