summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
Commit message (Collapse)AuthorAgeFilesLines
...
* Switch Sema over to using the new implementation of format stringTed Kremenek2010-01-292-275/+39
| | | | | | | | | checking. It passes all existing tests, and the diagnostics have been refined to provide better range information (we now highlight individual format specifiers) and more precise wording in the diagnostics. llvm-svn: 94837
* Fix reference-binding when we have a reference to const volatile type;Douglas Gregor2010-01-292-1/+3
| | | | | | | previously, we were allowing this to bind to a temporary. Now, we don't; add test-cases and improve diagnostics. llvm-svn: 94831
* Fix reference binding of const lvalue references to bit-fields, whichDouglas Gregor2010-01-292-3/+207
| | | | | | | | | | | | | | | | | requires a temporary. Previously, we were building an initialization sequence that bound to the bit-field as if it were a real lvalue. Note that we previously (and still) diagnose binding of non-const references to bit-fields, as we should. There's no real way to test that this code is correct, since reference binding does not *currently* have any representation in the AST. This fix should make it easier for that to happen, so I've verified this fix with... Added InitializationSequence::dump(), to print an initialization sequence for debugging purposes. llvm-svn: 94826
* And yet another call.Anders Carlsson2010-01-291-2/+8
| | | | llvm-svn: 94824
* Another PerformCopyInitialization call bites the dust.Anders Carlsson2010-01-291-4/+12
| | | | llvm-svn: 94823
* Get rid of another old PerformCopyInitialization call.Anders Carlsson2010-01-291-4/+12
| | | | llvm-svn: 94819
* When naming a function template via a qualified-id (or any other wayDouglas Gregor2010-01-291-1/+1
| | | | | | | | that ADL is suppressed), we need to build an UnresolvedLookupExpr. Fixes PR6063, which was hitting Boost headers pretty hard. llvm-svn: 94814
* Alternate format string checking: issue warnings for incomplete format ↵Ted Kremenek2010-01-291-12/+19
| | | | | | | | | | specifiers. In addition, move ParseFormatString() and FormatStringHandler() from the clang::analyze_printf to the clang namespace. Hopefully this will resolve some link errors on Linux. llvm-svn: 94794
* Simplify InitListChecker::CheckReferenceTypeAnders Carlsson2010-01-291-11/+10
| | | | llvm-svn: 94793
* Alternate format string checking: issue a warning for invalid conversion ↵Ted Kremenek2010-01-291-8/+27
| | | | | | specifiers. llvm-svn: 94792
* Add an CXXBindReferenceExpr (not used just yet).Anders Carlsson2010-01-291-0/+10
| | | | llvm-svn: 94791
* Alternate format string checking: check for excess data arguments.Ted Kremenek2010-01-291-0/+11
| | | | llvm-svn: 94787
* Alternate format string checking: check if the number of format specifiers ↵Ted Kremenek2010-01-291-0/+12
| | | | | | exceeds the number of arguments. llvm-svn: 94785
* Alternate format string checking: warn of '%n' as being potentially insecure.Ted Kremenek2010-01-291-1/+11
| | | | llvm-svn: 94782
* Add precision/field width checking to AlternateCheckPrintfString().Ted Kremenek2010-01-291-3/+68
| | | | llvm-svn: 94774
* Start fleshing out Sema::AlternateCheckPrintfString():Ted Kremenek2010-01-282-2/+99
| | | | | | | | | | - Add an anonymous class 'CheckPrintfHandler' which will do the checking of specific format specifiers - Add checking for using the '@' conversion specifier outside an ObjC string literal - Add checking for null characters within the string llvm-svn: 94761
* Access control for surrogate function calls. Required a moderately gross hackJohn McCall2010-01-282-3/+8
| | | | | | to get the access bits set properly in conversion sets. llvm-svn: 94744
* Access control for overloaded call operators. Not for surrogates yet,John McCall2010-01-281-0/+5
| | | | | | | | mostly because we're going to want a better diagnostic for conversions. Also this API needs to go back to sanity. llvm-svn: 94730
* Access checking for overloaded operators.John McCall2010-01-283-5/+32
| | | | llvm-svn: 94725
* Add placeholder function in Sema for new format string checking logic.Ted Kremenek2010-01-282-1/+25
| | | | | | | | This function will use the format string parsing logic in libAnalysis, and once it is shown to be better than the current implementation it will replace AlternateCheckPrintfString() entirely. llvm-svn: 94721
* Fix 80 col violation.Ted Kremenek2010-01-281-1/+3
| | | | llvm-svn: 94717
* Remove invalid conversion specifiers from format string checking.Ted Kremenek2010-01-281-5/+0
| | | | llvm-svn: 94707
* Fix a major oversight in the comparison of standard conversionDouglas Gregor2010-01-274-39/+81
| | | | | | | | | | | | | | sequences, where we would occasionally determine (incorrectly) that one standard conversion sequence was a proper subset of another when, in fact, they contained completely incomparable conversions. This change records the types in each step within a standard conversion sequence, so that we can check the specific comparison types to determine when one sequence is a proper subset of the other. Fixes this testcase (thanks, Anders!), which was distilled from PR6095 (also thanks to Anders). llvm-svn: 94660
* Implement access-check delays for out-of-line member definitionsJohn McCall2010-01-273-28/+136
| | | | | | using the same framework we use for deprecation warnings. llvm-svn: 94659
* Implement access control for overloaded functions. Suppress access controlJohn McCall2010-01-277-95/+182
| | | | | | | diagnostics in "early" lookups, such as during typename checks and when building unresolved lookup expressions. llvm-svn: 94647
* Avoid some unnecessary copying of unresolved lookup results.John McCall2010-01-261-16/+12
| | | | llvm-svn: 94531
* Handle redeclarations found by ADL deterministically and reasonably.John McCall2010-01-264-16/+87
| | | | | | | | | This solution relies on an O(n) scan of redeclarations, which means it might scale poorly in crazy cases with tons of redeclarations brought in by a ton of distinct associated namespaces. I believe that avoiding this is not worth the common-case cost. llvm-svn: 94530
* Correctly treat 64 bit integers specified via the mode attribute as the 'long'Chandler Carruth2010-01-261-2/+8
| | | | | | | | | | type when that type is 64 bits wide, and the 'long long' type when 'long' is only 32 bits wide. This fixes PR6108. Also adds a bunch of test cases to ensure proper conversion between equally sized standard types and mode-specified types on both 32 and 64 bit targets. llvm-svn: 94527
* Allow ADL to find functions imported by using decls. Leave wordy commentJohn McCall2010-01-262-12/+21
| | | | | | about interaction between ADL and default arguments. Shrug shoulders, commit. llvm-svn: 94524
* Preserve access bits through overload resolution much better. SomeJohn McCall2010-01-266-103/+86
| | | | | | general refactoring in operator resolution. llvm-svn: 94498
* Pass access specifiers around in overload resolution.John McCall2010-01-267-54/+107
| | | | llvm-svn: 94485
* Code simplification; this should have no visible effects.Eli Friedman2010-01-251-33/+2
| | | | llvm-svn: 94427
* Split libAnalysis into two libraries: libAnalysis and libChecker.Ted Kremenek2010-01-253-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | (1) libAnalysis is a generic analysis library that can be used by Sema. It defines the CFG, basic dataflow analysis primitives, and inexpensive flow-sensitive analyses (e.g. LiveVariables). (2) libChecker contains the guts of the static analyzer, incuding the path-sensitive analysis engine and domain-specific checks. Now any clients that want to use the frontend to build their own tools don't need to link in the entire static analyzer. This change exposes various obvious cleanups that can be made to the layout of files and headers in libChecker. More changes pending. :) This change also exposed a layering violation between AnalysisContext and MemRegion. BlockInvocationContext shouldn't explicitly know about BlockDataRegions. For now I've removed the BlockDataRegion* from BlockInvocationContext (removing context-sensitivity; although this wasn't used yet). We need to have a better way to extend BlockInvocationContext (and any LocationContext) to add context-sensitivty. llvm-svn: 94406
* -fno-rtti is now the default.Chris Lattner2010-01-241-1/+0
| | | | llvm-svn: 94379
* Implement [dcl.fct.spec]p6.Anders Carlsson2010-01-241-0/+22
| | | | llvm-svn: 94365
* Implement instantiation of AsmStmts (Crazy, I know)Anders Carlsson2010-01-243-5/+90
| | | | llvm-svn: 94361
* fix PR6034, a crash on invalid where the switch stack would get Chris Lattner2010-01-242-0/+12
| | | | | | unbalanced. llvm-svn: 94347
* Use new initialization code when dealing with [dcl.init.aggr]p12. This fixes ↵Anders Carlsson2010-01-241-16/+28
| | | | | | the bug where array elements and member initializers weren't copied correctly. llvm-svn: 94340
* Change all InitializedEntity pointers over to be references.Anders Carlsson2010-01-231-137/+81
| | | | llvm-svn: 94335
* Start passing InitializedEntity to CheckDesignatedInitializer.Anders Carlsson2010-01-231-9/+22
| | | | llvm-svn: 94334
* Preserve access for enum constants during template instantiation.John McCall2010-01-231-0/+1
| | | | llvm-svn: 94333
* More init work, adding more entity parameters.Anders Carlsson2010-01-231-10/+27
| | | | llvm-svn: 94332
* Use the new init code for member subobjects.Anders Carlsson2010-01-231-6/+18
| | | | llvm-svn: 94329
* Switch some array initialization over to the new init code.Anders Carlsson2010-01-231-7/+22
| | | | llvm-svn: 94327
* Baby steps towards migrating the InitListChecker over to the new ↵Anders Carlsson2010-01-231-33/+65
| | | | | | initialization code. Pass an InitializedEntity pointer through to most init checker functions. Right now, it's ignored everywhere except when initializing vectors in C++. llvm-svn: 94325
* When an InitializedEntity is passed to CheckSingleInitializer, call the new ↵Anders Carlsson2010-01-231-22/+36
| | | | | | Sema::PerformCopyInitialization overload. llvm-svn: 94324
* Change CheckSingleInitializer to take/return OwningExprResults instead. No ↵Anders Carlsson2010-01-231-24/+46
| | | | | | functionality change. llvm-svn: 94316
* Simplify code with StringRef.Benjamin Kramer2010-01-231-6/+5
| | | | llvm-svn: 94314
* Produce a special diagnostic when users call a function with an argument ofJohn McCall2010-01-231-1/+16
| | | | | | | | | | | | | | | | incomplete type (or a pointer/reference to such). The causes of this problem are different enough to justify a different "design" for the diagnostic. Most notably, it doesn't give an operand index: it's usually pretty obvious which operand is the problem, it adds a lot of clutter to mention it, and the fix is usually in a different part of the file anyway. This is yet another diagnostic that should really have an analogue in the non-overloaded case --- which should be much easier to write because of the weaker space constraints. llvm-svn: 94303
* Fix the EntityKind order so that all entity kinds that can be copied (using ↵Anders Carlsson2010-01-231-5/+5
| | | | | | copy constructors) come first. Also, fix a bug where EK_New was left out of the err_init_conversion_failed diagnostic (It is now reported as 'new value'). Please review Doug :) llvm-svn: 94289
OpenPOWER on IntegriCloud