summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Make helpers static, remove unused variables.Benjamin Kramer2011-09-033-9/+5
| | | | llvm-svn: 139078
* Teach -Wdangling-field to warn about temporaries bound to references asChandler Carruth2011-09-031-9/+17
| | | | | | | | | | | | | well. Also, clean up the flow of the code a bit, and factor things more nicely. Finally, add the test case that was missing from my previous commit (sorry), with new tests added to cover temporaries and other fun cases. llvm-svn: 139077
* Add a simple new warning to catch blatantly dangling pointer andChandler Carruth2011-09-031-2/+51
| | | | | | | | | | | | | | | | | reference members of classes. We've had several bugs reported because of this, and there's no reason not to flag it right away in the compiler. Comments especially welcome on the strategy for implementing this warning (IE, what should trigger this?) and on the text of the warning itself. I'm going to extend this to cover obvious cases with temporaries and beef up the test cases some in subsequent patches. I'll then run it over a large codebase and make sure its not misbehaving before I add it to -Wall or turn it on by default. I think this one might be a good candidate for on by default. llvm-svn: 139075
* Fix some indenting issues in SemaExpr.cppRichard Trieu2011-09-021-4/+3
| | | | llvm-svn: 139042
* blocks: Support capturing complex variable in block.Fariborz Jahanian2011-09-021-0/+1
| | | | | | // rdar://10033896 llvm-svn: 139041
* Refactor UsualArithmeticConversions() in SemaExpr.cpp into several functions.Richard Trieu2011-09-021-251/+291
| | | | llvm-svn: 139033
* revert patch in r139020Fariborz Jahanian2011-09-021-1/+5
| | | | llvm-svn: 139029
* -Wuninitialized: fix insidious bug resulting from interplay of blocks and ↵Ted Kremenek2011-09-021-17/+14
| | | | | | dead code. Fixes <rdar://problem/10060250>. llvm-svn: 139027
* blocks: Support capturing complex variable in block.Fariborz Jahanian2011-09-021-5/+1
| | | | | | // rdar://10033896 llvm-svn: 139020
* Make StmtDumper::VisitCXXFunctionalCastExpr dump the attached cast kind. ↵Eli Friedman2011-09-022-4/+6
| | | | | | Fix the cast kind for a cast from floating-point to enum type. (The difference isn't actually visible, but that's just because IRGen is overly forgiving.) Per report by Enea Zaffanella on cfe-dev. llvm-svn: 139011
* [analyzer] Remove TransferFuncs.h, then deal with the fallout.Jordy Rose2011-09-0214-6/+12
| | | | | | And with that, TransferFuncs is gone! llvm-svn: 139003
* [analyzer] Move RetainReleaseChecker to the Checkers library and rename it ↵Jordy Rose2011-09-023-256/+208
| | | | | | to RetainCountChecker...and clean up the file while I'm at it. llvm-svn: 139002
* Hoist the emission of parseable fixits into a helper method, simplifyingChandler Carruth2011-09-021-38/+38
| | | | | | and reducing indentation through the clever use of early exits. ;] llvm-svn: 139001
* [analyzer] Remove lingering CFRefCount creation, which would have resulted ↵Jordy Rose2011-09-021-12/+3
| | | | | | in a leak. There's room for improvement here... llvm-svn: 139000
* [analyzer] Fix member initialization order. No functionality change.Jordy Rose2011-09-021-1/+1
| | | | llvm-svn: 138999
* [analyzer] Move the knowledge of whether or not GC is enabled for the ↵Jordy Rose2011-09-024-130/+118
| | | | | | | | | | current analysis from CFRefCount to ExprEngine. Remove TransferFuncs from ExprEngine and AnalysisConsumer. Demote RetainReleaseChecker to a regular checker, and give it the name osx.cocoa.RetainCount (class name change coming shortly). Update tests accordingly. llvm-svn: 138998
* Move the warning for different enum comparisons and the warning for using ↵Richard Trieu2011-09-021-61/+88
| | | | | | NULL as a non-pointer in a binary operation into separate functions. llvm-svn: 138995
* Reduce code duplication for pointer comparisons in CheckCompareOperands().Richard Trieu2011-09-021-72/+84
| | | | llvm-svn: 138994
* Pull out incomplete pointer type checking code, used from arithmetic ↵Richard Trieu2011-09-021-24/+22
| | | | | | checking functions, into its own function. llvm-svn: 138993
* Refactor CheckConditionalOperands() by moving chunks of code to helper ↵Richard Trieu2011-09-021-163/+227
| | | | | | functions making a slimmer function. llvm-svn: 138992
* Refactor CheckAddressOfOperand() by pulling out redundant code and moving ↵Richard Trieu2011-09-021-9/+14
| | | | | | hard coding strings from SemaExpr.cpp to DiagnosticSemaKinds.td. llvm-svn: 138987
* Always construct an ASTReader with a non-NULL ASTContext andDouglas Gregor2011-09-024-31/+6
| | | | | | | | | Preprocessor, eliminating the constructor that was used by ASTUnit (which didn't provide an ASTContext or Prepreprocessor). Ensuring that both objects are non-NULL will simplify module loading (but none of that is done yet). llvm-svn: 138986
* Extend the ASTContext constructor to delay the initialization ofDouglas Gregor2011-09-0241-221/+238
| | | | | | | | builtin types (When requested). This is another step toward making ASTUnit build the ASTContext as needed when loading an AST file, rather than doing so after the fact. No actual functionality change (yet). llvm-svn: 138985
* Allow the preprocessor to be constructed without performing target-Douglas Gregor2011-09-014-80/+115
| | | | | | | | and language-specific initialization. Use this to allow ASTUnit to create a preprocessor object *before* loading the AST file. No actual functionality change. llvm-svn: 138983
* Refactor CheckAdditionOperands(), CheckSubtractionOperands(), and ↵Richard Trieu2011-09-011-21/+29
| | | | | | CheckIncrementDecrementOperand() in SemaExpr.cpp to move reused code to separate functions. llvm-svn: 138975
* Don't try keeping a 'LeadingEmptyMacroLoc' in NullStmt. This failsArgyrios Kyrtzidis2011-09-015-9/+6
| | | | | | in the face of buffering C++/ObjC method bodies. llvm-svn: 138972
* Don't try to emit unsupported templated friend declarations. They're unsupportedNick Lewycky2011-09-011-2/+3
| | | | | | | and may very well be dependent-types, triggering an assertion in debug info codegen. llvm-svn: 138970
* Extend the self-reference warning to catch when a constructor references ↵Richard Trieu2011-09-012-13/+68
| | | | | | | | | itself upon initialization, such as using itself within its own copy constructor. struct S {}; S s(s); llvm-svn: 138969
* [arcmt] Fix test/ARCMT/remove-statements.m regression due toArgyrios Kyrtzidis2011-09-013-32/+73
| | | | | | | | Objective-C method buffering(rdar://10056942) Turned out the same issue existed for C++ inline methods. llvm-svn: 138960
* Teach ASTContext and Preprocessor to hold on to references to the sameDouglas Gregor2011-09-013-8/+8
| | | | | | | | | LangOptions, rather than making distinct copies of LangOptions. Granted, LangOptions doesn't actually get modified, but this will eventually make it easier to construct ASTContext and Preprocessor before we know all of the LangOptions. llvm-svn: 138959
* default property synthesis is off by defaultFariborz Jahanian2011-09-011-1/+1
| | | | | | for now. llvm-svn: 138958
* objective-c: Make auto synthesis of properties the default.Fariborz Jahanian2011-09-011-1/+1
| | | | | | This concludes //rdar://8843851 llvm-svn: 138947
* Modules hide macro definitions by default, so that silly things likeDouglas Gregor2011-09-019-43/+104
| | | | | | | | | | | include guards don't show up as macro definitions in every translation unit that imports a module. Macro definitions can, however, be exported with the intentionally-ugly #__export_macro__ directive. Implement this feature by not even bothering to serialize non-exported macros to a module, because clients of that module need not (should not) know that these macros even exist. llvm-svn: 138943
* Enable -fdelayed-template-parsing by default on Win32.Francois Pichet2011-09-011-2/+3
| | | | | | I had to force -fno-delayed-template-parsing on some Index tests because delayed template parsing will change the output of some tests. llvm-svn: 138942
* Fix PR10744 by adding the toolchain path to the regular program pathRafael Espindola2011-09-011-5/+6
| | | | | | | and doing a simple search. Before we would manually check for the linker before the -B options were searched. llvm-svn: 138941
* Add 4.4.6 to GccVersions[] in lib/Driver/ToolChains.cpp.Hans Wennborg2011-09-011-1/+1
| | | | llvm-svn: 138940
* If size was equal to 0, either NULL or a pointer suitable to be passed to Zhongxing Xu2011-09-011-5/+2
| | | | | | | | free() is returned by realloc(). Most code expect NULL. And we only need to transfer one final ProgramState. llvm-svn: 138937
* Fix "multi-line comment" compiler error.Argyrios Kyrtzidis2011-09-011-8/+8
| | | | llvm-svn: 138936
* When defining the implicit move assignment operator, don't performDouglas Gregor2011-09-011-3/+9
| | | | | | | | semantic analysis when taking the address of an xvalue. Instead, just build the unary operator directly, since it's safe to do so (from the IRgen and AST perspectives) for any glvalue. Fixes PR10822. llvm-svn: 138935
* Support importing of ObjC categories from modules.Argyrios Kyrtzidis2011-09-014-1/+192
| | | | | | | | | | | | The initial incentive was to fix a crash when PCH chaining categories to an interface, but the fix was done in the "modules way" that I hear is popular with the kids these days. Each module stores the local chain of categories and we combine them when the interface is loaded. We also warn if non-dependent modules introduce duplicate named categories. llvm-svn: 138926
* Create a CaretDiagnostic class to hold the logic for emittingChandler Carruth2011-08-311-263/+331
| | | | | | | | | | | | | | (unsurprisingly) caret diagnostics. This is designed to bring some organization to the monstrous EmitCaretDiagnostic function, and allow factoring it more easily and with less mindless parameter passing. Currently this just lifts the existing function into a method, and splits off the obviously invariant arguments to be class members. No functionality is changed, and there are still lots of warts to let existing code continue functioning as-is. Definitely WIP, more cleanups to follow. llvm-svn: 138921
* Sink all of the include stack printing logic into its member function.Chandler Carruth2011-08-311-18/+39
| | | | llvm-svn: 138920
* objective-c: this patch (re)introduces objective-c's default propertyFariborz Jahanian2011-08-318-154/+17
| | | | | | | | | | synthesis. This new feature is currently placed under -fobjc-default-synthesize-properties option and is off by default pending further testing. It will become the default feature soon. // rdar://8843851 llvm-svn: 138913
* Switch the "no module found" default-fatal warning to a default-fatal error.Douglas Gregor2011-08-311-1/+1
| | | | llvm-svn: 138909
* Don't assert when diagnosing a missing cast of an unknown-anytypeJohn McCall2011-08-312-3/+9
| | | | | | | | message send to an unknown method. rdar://problem/9416370, redux. llvm-svn: 138893
* [driver] If no -miphoneos-version-min is specified on the command line *and*Chad Rosier2011-08-311-35/+31
| | | | | | | IPHONEOS_DEPLOYMENT_TARGET if undefined, set -miphoneos-version-min based on isysroot. llvm-svn: 138892
* Make sure to initialize field. Hopefully this will fix some test failures ↵Eli Friedman2011-08-311-0/+1
| | | | | | on Windows. llvm-svn: 138880
* [analyzer] Fix varargs helper to only use POD types even for named ↵Jordy Rose2011-08-311-4/+4
| | | | | | arguments. Thanks, Joerg. llvm-svn: 138875
* Switch __import__ over to __import_module__, so we don't conflict withDouglas Gregor2011-08-312-7/+8
| | | | | | | | existing practice with Python extension modules. Not that Python extension modules should be using a double-underscored identifier anyway, but... llvm-svn: 138870
* objective-c - This patch buffers method implementations Fariborz Jahanian2011-08-312-39/+83
| | | | | | | | | | | | | and does the Sema on their body after the entire class/category @implementation is seen. This change allows messaging of forward private methods, as well as, access to synthesized ivars of properties with foward synthesize declarations; among others. In effect, this patch removes several restrictions placed on objective-c due to in-place semantics processing of methods. This is part of // rdar://8843851. llvm-svn: 138865
OpenPOWER on IntegriCloud