summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* When suggesting a typo correction for an @implementation without aDouglas Gregor2010-01-062-1/+10
| | | | | | | | | | corresponding @interface, provide a note showing which interface we're referring to. This note has the fix-it hint on it. Also, don't automatically apply fix-it hints for notes. They're meant to express fix-its that would change semantics. llvm-svn: 92870
* Move the allocation of designators in DesignatedInitExpr to theDouglas Gregor2010-01-063-13/+22
| | | | | | ASTContext. Fixes <rdar://problem/7495428>. llvm-svn: 92867
* Don't assert when dealing with unsigned casts of lvalues. Fixes PR5961.John McCall2010-01-061-6/+11
| | | | llvm-svn: 92866
* Derive tighter ranges for & and >> in the conversion-checking code.John McCall2010-01-061-6/+38
| | | | llvm-svn: 92862
* Fix linkage for RTTI names by re-using the logic for computing theDouglas Gregor2010-01-063-43/+26
| | | | | | | | linkage of vtables. Before this, we were emitting RTTI names for template instantiations with strong external linkage rather than with weak ODR linkage. llvm-svn: 92857
* Fix a bug when property is redeclared in multipleFariborz Jahanian2010-01-061-0/+26
| | | | | | | continuation classes and its original declaration is imported from a protocol. This fixes radar 7509234. llvm-svn: 92856
* Fix marking of virtual members for nested classes whose first non-pure ↵Douglas Gregor2010-01-064-50/+90
| | | | | | virtual function has a body inlined in the class llvm-svn: 92855
* Fix for PR5691David Chisnall2010-01-061-1/+1
| | | | llvm-svn: 92846
* Make sure that the key-function computation produces the correctDouglas Gregor2010-01-061-10/+27
| | | | | | | | result for a nested class whose first non-pure virtual member function has an inline body. Previously, we were checking for the key function before we had seen the (delayed) inline body. llvm-svn: 92839
* Improve the diagnostics used to report implicitly-generated class membersJohn McCall2010-01-064-13/+52
| | | | | | | | | as parts of overload sets. Also, refer to constructors as 'constructors' rather than functions. Adjust a lot of tests. llvm-svn: 92832
* Fix (invalid) may-be-uninitialized warning.Daniel Dunbar2010-01-061-1/+2
| | | | llvm-svn: 92828
* Significantly rework the calculation of effective integer-expression rangesJohn McCall2010-01-061-176/+221
| | | | | | | | | | | | for -Wsign-compare and -Wconversion, and use that coordinated logic to drive both diagnostics. The new logic works more transparently with implicit conversions, conditional operators, etc., as well as bringing -Wconversion's ability to deal with pseudo-closed operations (e.g. arithmetic on shorts) to -Wsign-compare. Fixes PRs 5887, 5937, 5938, and 5939. llvm-svn: 92823
* Revert my available_externally vtables experiment. It's breaking the ↵Douglas Gregor2010-01-061-2/+7
| | | | | | LLVM-with-Clang build with linker errors that I have yet to investigate. llvm-svn: 92822
* Make our marking of virtual members functions in a class beDouglas Gregor2010-01-064-56/+36
| | | | | | | | | | | | | | | | | | | | | deterministic and work properly with templates. Once a class that needs a vtable has been defined, we now do one if two things: - If the class has no key function, we place the class on a list of classes whose virtual functions will need to be "marked" at the end of the translation unit. The delay until the end of the translation unit is needed because we might see template specializations of these virtual functions. - If the class has a key function, we do nothing; when the key function is defined, the class will be placed on the aforementioned list. At the end of the translation unit, we "mark" all of the virtual functions of the classes on the list as used, possibly causing template instantiation and other classes to be added to the list. This gets LLVM's lib/Support/CommandLine.cpp compiling again. llvm-svn: 92821
* Reorder to avoid invalidating idx which is an accessor into VCall.Mike Stump2010-01-061-1/+1
| | | | llvm-svn: 92819
* Fix spelling.Mike Stump2010-01-061-1/+1
| | | | llvm-svn: 92816
* Per offline discussion with Doug, don't perform typo correction when we have ↵Ted Kremenek2010-01-061-0/+4
| | | | | | encountered a fatal error. On some files that are woefully wrong (missing headers) this can cause a 3x slowdown in some cases when parsing the file. It makes sense not to perform typo correction in this case because after a fatal error diagnostics will either be suppressed or not really make any sense. llvm-svn: 92809
* Do not diagnose method disguised as property setterFariborz Jahanian2010-01-061-2/+5
| | | | | | for a 'readonly' property. Fixes radar 7427072. llvm-svn: 92808
* Add Expr::EvaluateAsBooleanCondition(), which does unprincipled folding toJohn McCall2010-01-051-1/+9
| | | | | | | try to evaluate an expression as a constant boolean condition. This has the same intended semantics as used in folding conditional operators. llvm-svn: 92805
* Fixed a bug where initializer is a macro in rewrite.Fariborz Jahanian2010-01-051-0/+1
| | | | llvm-svn: 92801
* Silence bogus GCC warningDouglas Gregor2010-01-051-1/+2
| | | | llvm-svn: 92787
* Make use of available_externally linkage for vtables when theDouglas Gregor2010-01-051-4/+19
| | | | | | | | | | non-inline key function of a class template instantiation, when no key function is present, the class template instantiation itself was instantiated with an explicit instantiation declaration (aka extern template). I'm fairly certain that the C++0x specification gives us this lattitude, although GCC doesn't take advantage of it. llvm-svn: 92779
* API support for __block variables which are also __weak.Fariborz Jahanian2010-01-051-5/+16
| | | | llvm-svn: 92755
* Improve key-function computation for templates. In particular:Douglas Gregor2010-01-056-37/+51
| | | | | | | | | | | | | | | | - All classes can have a key function; templates don't change that. non-template classes when computing the key function. - We always mark all of the virtual member functions of class template instantiations. - The vtable for an instantiation of a class template has weak linkage. We could probably use available_externally linkage for vtables of classes instantiated by explicit instantiation declarations (extern templates), but GCC doesn't do this and I'm not 100% that the ABI permits it. llvm-svn: 92753
* Add code to skip the emission of available externally functions at -O0. WIP.Mike Stump2010-01-051-0/+10
| | | | llvm-svn: 92749
* Minor clean up.Fariborz Jahanian2010-01-051-6/+3
| | | | llvm-svn: 92746
* Remove bogus "C" from preamble block decls.Steve Naroff2010-01-051-2/+2
| | | | llvm-svn: 92744
* More rewriting of __block APIs. wip.Fariborz Jahanian2010-01-051-26/+40
| | | | llvm-svn: 92742
* Fix <rdar://problem/7490212> clang rewriter: return of the mixed line ↵Steve Naroff2010-01-051-1/+3
| | | | | | | | | | endings, which is related to <rdar://problem/6596843> clang ObjC rewriter: Line endings still mixed in rewrite output This fix was dropped when I integrated the 'objective-rewrite' branch. llvm-svn: 92737
* Revert r92318. Instead fix the analyzer: do not call Zhongxing Xu2010-01-052-9/+3
| | | | | | ASTContext::hasSameUnqualifiedType() when one of the type is VariableArrayType. llvm-svn: 92723
* if an arraytype is canonical, then its element is guaranteed to be canonical.Zhongxing Xu2010-01-051-1/+2
| | | | llvm-svn: 92715
* Allow clang to pass -x cl through to compiler driver.Nate Begeman2010-01-051-0/+2
| | | | llvm-svn: 92686
* When emitting member function pointers, use the canonical decl if the member ↵Anders Carlsson2010-01-052-1/+4
| | | | | | function is virtual. Fixes PR5940. llvm-svn: 92680
* Disallow captured arrays in blocks as well. Radar 7438948.Mike Stump2010-01-051-0/+6
| | | | llvm-svn: 92677
* Disallow capturing vlas inside blocks.Mike Stump2010-01-051-0/+6
| | | | llvm-svn: 92676
* Make static analysis support for C++ 'this' expression context-sensitive. ↵Ted Kremenek2010-01-054-30/+46
| | | | | | Essentially treat 'this' as a implicit parameter to the method call, and associate a region with it. llvm-svn: 92675
* More rewriting of __block objective-c pointer variables. wip.Fariborz Jahanian2010-01-051-5/+80
| | | | llvm-svn: 92558
* Remove stale comment. We already do format string checking for functions ↵Ted Kremenek2010-01-051-3/+0
| | | | | | with the format attribute. llvm-svn: 92553
* Fix warnings.Mike Stump2010-01-051-1/+2
| | | | llvm-svn: 92551
* Remove references to 'Checker' and 'GRTransferFuncs' fromTed Kremenek2010-01-056-67/+52
| | | | | | | | | | | | GRStateManager. Having these references was an abstraction violation, as they really should only be known about GRExprEngine. This change required adding a new 'ProcessAssume' callback in GRSubEngine. GRExprEngine implements this callback by calling 'EvalAssume' on all registered Checker objects as well as the registered GRTransferFunc object. llvm-svn: 92549
* Move the -Wconversion logic into SemaChecking.cpp. There's a fair amount ofJohn McCall2010-01-043-314/+315
| | | | | | | overlap between this and -Wsign-compare, which is why I want them in the same place. llvm-svn: 92543
* Move the -Wsign-compare logic into SemaChecking.cpp.John McCall2010-01-042-78/+81
| | | | llvm-svn: 92541
* Avoid warnings for functions that return a value using MS-style inlineMike Stump2010-01-041-0/+8
| | | | | | | | | | | | | assembly code. This avoids changing the bahvior when normal asm("") statements are used. The type of code affected would be: void* t4(void) { __asm mov eax, fs:[0x10] } I hope people like this version, if not, let me know. llvm-svn: 92531
* Remember if the AsmStmt came from Microsoft-style inline assembly code.Mike Stump2010-01-046-8/+12
| | | | llvm-svn: 92526
* -Wsign-compare shouldn't warn when the signed operand is a conditional operatorJohn McCall2010-01-041-20/+24
| | | | | | | whose operands are non-negative integer constant expressions. This comes up in LLVM in a few places. llvm-svn: 92525
* Make sure to use ASTContext::getAs*ArrayType() when decomposing arrayDouglas Gregor2010-01-041-2/+2
| | | | | | types. Fixes APFloat.cpp compilation failure. llvm-svn: 92523
* More rewriting of __block declared objective-c/block pointers.Fariborz Jahanian2010-01-041-16/+45
| | | | | | This is wip. llvm-svn: 92501
* Teach Preprocessor::macro_begin/macro_end to lazily load all macroDouglas Gregor2010-01-044-7/+93
| | | | | | | | definitions from a precompiled header. This ensures that code-completion with macro names behaves the same with or without precompiled headers. llvm-svn: 92497
* Revert r92431, this code isn't dead and broke the ntfs build.Daniel Dunbar2010-01-041-0/+1
| | | | llvm-svn: 92493
* Fix -Asserts warning.Daniel Dunbar2010-01-041-2/+2
| | | | llvm-svn: 92491
OpenPOWER on IntegriCloud