Commit Graph

5610 Commits

Author SHA1 Message Date
Ted Kremenek fa89e2f09c Support retain/release tracking for CoreGraphics (CGxxxRef) objects.
llvm-svn: 53617
2008-07-15 16:50:12 +00:00
Ted Kremenek 41aeef5205 Update radar component to file static analyzer bugs against.
llvm-svn: 53589
2008-07-15 03:51:09 +00:00
Ted Kremenek 9731a97220 Removed disclaimer about checker-36, which is old news.
llvm-svn: 53588
2008-07-15 03:49:15 +00:00
Ted Kremenek fd7efdf20d Provide an "Analysis Scope" for Analyses so checks can either be run on code declarations (bodies) or Objective-C @implementation blocks.
llvm-svn: 53584
2008-07-15 00:46:02 +00:00
Ted Kremenek 5470e0c7e1 Re-enable missing -dealloc check.
llvm-svn: 53578
2008-07-14 23:56:31 +00:00
Ted Kremenek 70fe0ca126 Update Xcode project.
llvm-svn: 53577
2008-07-14 23:42:26 +00:00
Ted Kremenek 2fa70832e4 Using new clang option to invoke the type-signature check of Objective-C instance methods.
llvm-svn: 53576
2008-07-14 23:41:49 +00:00
Ted Kremenek 3063b73773 Break off declaration of Analysis enum into Analyses.def. The driver options in
clang.cpp now #include these definitions to create the command line options, and
AnalysisConsumer #includes this file to generate the switch statement to create
actions.

Renamed -check-objc-methodsigs to -warn-objc-methodsigs.

The "missing -dealloc" check is now optional: -warn-objc-missing-dealloc

llvm-svn: 53575
2008-07-14 23:41:13 +00:00
Ted Kremenek c18255d80f Refactor Dead Stores error reporting to use the simplified BugReporter::EmitBasicReport interface.
llvm-svn: 53573
2008-07-14 20:56:04 +00:00
Nate Begeman 191a6b1f1b http://llvm.org/bugs/show_bug.cgi?id=2523
Add some code to handle vector comparisons, which is the language side
of the llvm vicmp/vfcmp instructions.  Also make the vector-vector and
vector-scalar asign checks a bit more sane under the presence of lax vector
conversions.

llvm-svn: 53565
2008-07-14 18:02:46 +00:00
Ted Kremenek 0255531dd3 Added method "EmitBasicReport" to BugReporter to simplify the emission of simple bug diagnostics.
Refactored error reporting in CheckObjCDealloc and CheckObjCInstMethSignature to use this new bug reporting interface (major code simplification).

llvm-svn: 53560
2008-07-14 17:40:50 +00:00
Chris Lattner 6d1a3c2e2b remove CGObjCEtoile until it compiles.
llvm-svn: 53552
2008-07-14 16:54:05 +00:00
Ted Kremenek a696ca66e9 Fix minor mistake in clang checkout instructions.
llvm-svn: 53550
2008-07-14 14:40:22 +00:00
Cedric Venet 455298f2d6 test commit. Remove previously added line.
llvm-svn: 53524
2008-07-13 19:42:06 +00:00
Cedric Venet 1e43f55933 test commit. Add a blank line.
llvm-svn: 53522
2008-07-13 19:34:37 +00:00
Argyrios Kyrtzidis 07b8b63f9f Use of NextToken() makes ParseIdentifierStatement unnecessary.
Simplify the parser by removing Parser::ParseIdentifierStatement.

llvm-svn: 53520
2008-07-12 21:04:42 +00:00
Argyrios Kyrtzidis 715eabcef5 Convert CRLF -> LF line endings.
llvm-svn: 53519
2008-07-12 20:28:04 +00:00
Cedric Venet 71262487c3 Added two new files to VC++ project.
llvm-svn: 53518
2008-07-12 19:24:14 +00:00
Chris Lattner 477c4be1e9 expand casts to handle what isIntegerConstantExpr handles.
Casts from pointers remain a problem. :)

llvm-svn: 53501
2008-07-12 01:15:53 +00:00
Chris Lattner 7174bf3722 Add support for __builtin_type_compatible_p, enums, etc.
llvm-svn: 53500
2008-07-12 00:38:25 +00:00
Chris Lattner 9941570ce9 start remembering diagnostics for various cases, add some missing
code.  Switch to Eli's getIntWidth method.

llvm-svn: 53499
2008-07-12 00:14:42 +00:00
Ted Kremenek 20704a0ce8 Updated latest checker build. This build includes the new check for type-compatibility of the return types of ObjC methods.
llvm-svn: 53496
2008-07-11 23:29:43 +00:00
Ted Kremenek e5b5953672 Tidy up error message.
llvm-svn: 53493
2008-07-11 23:17:01 +00:00
Ted Kremenek ba1196298a Add CSS for word wrapping of long message bubbles.
llvm-svn: 53492
2008-07-11 23:13:22 +00:00
Chris Lattner cdf34e7668 Provide a structure for passing down 'is evaluated' and passing up
diagnosic+loc info for i-c-e evaluation.

llvm-svn: 53490
2008-07-11 22:52:41 +00:00
Ted Kremenek dfc7b3d329 Update Xcode project.
llvm-svn: 53488
2008-07-11 22:48:58 +00:00
Ted Kremenek afe2c0be34 Run by default: -check-objc-methodsigs
llvm-svn: 53483
2008-07-11 22:41:43 +00:00
Ted Kremenek 3bfb314c25 Add new check: -check-objc-methodsigs. This check scans methods in
ObjCImplementationDecls and sees if a ancestor class defines a method with the
same selector but with a different type signature. Right now it just compares
return types, and mainly looks at differences in primitive values. The checking
will be expanded in the future.

llvm-svn: 53482
2008-07-11 22:40:47 +00:00
Chris Lattner f09ad16cfc simplify some code a bit.
llvm-svn: 53477
2008-07-11 22:15:16 +00:00
Chris Lattner f8d7f72956 share code between sizeof(expr) and sizeof(type)
llvm-svn: 53475
2008-07-11 21:24:13 +00:00
Ted Kremenek aced3ad4b8 Fix comment.
llvm-svn: 53473
2008-07-11 20:53:14 +00:00
Chris Lattner b062dcc17b implement support for __extension__, make sure the result of a
comparison has the right width.

llvm-svn: 53469
2008-07-11 19:29:32 +00:00
Chris Lattner ae8cc15977 add a new getIntTypeSizeInBits method.
llvm-svn: 53468
2008-07-11 19:24:49 +00:00
Chris Lattner 2bd2e028ca rename "SInt" methods to "Int" in APValue.
llvm-svn: 53467
2008-07-11 19:19:21 +00:00
Ted Kremenek 36f8212299 scan-build now also prints the HTML directory reports were emitted to at the end of the build.
llvm-svn: 53466
2008-07-11 19:15:05 +00:00
Chris Lattner e13042c04f make the new evaluator avoid conversions APValue<->APSInt in some cases.
Add some accessors to APValue.

llvm-svn: 53465
2008-07-11 19:10:17 +00:00
Ted Kremenek c50e1a196e Refactored auditor interface within GRExprEngine and GRCoreEngine to use a "batch auditor" to dispatch to specialized auditors instead of having a separate vector for each audited Expr*. This not only provides a much cleaner implementation, but also allows us to install auditors for any expression.
llvm-svn: 53464
2008-07-11 18:37:32 +00:00
Chris Lattner 05706e8859 rearrange some code, no functionality changes.
llvm-svn: 53463
2008-07-11 18:11:29 +00:00
Ted Kremenek 252d03c598 Patch by Csaba Hruska and Peter Neumark:
"adds support (de)serialization (from)to (in memory) buffer."

llvm-svn: 53425
2008-07-10 22:10:48 +00:00
Ted Kremenek c78ce1840a Updated Xcode project.
llvm-svn: 53424
2008-07-10 22:04:37 +00:00
Ted Kremenek a7b8ffb05b Refactored most of the "Store" piece of ValueState into a Store type. The
current store implementation is now encapsulated by BasicStore.

These changes prompted some long due constification of ValueState. Much of the
diffs in this patch include adding "const" qualifiers.

llvm-svn: 53423
2008-07-10 22:03:41 +00:00
Ted Kremenek 976d1e0ea8 Remove unused class AnnotatedPath.
llvm-svn: 53413
2008-07-10 17:25:03 +00:00
Ted Kremenek ad4a7e4a69 Move some environment methods from ValueState/ValueStateManager to Environment/EnvironmentManager.
llvm-svn: 53412
2008-07-10 17:19:18 +00:00
Chris Lattner cfba0fade8 Add a new distcc status page, which is currently empty and not
linked from anywhere. It will be linked when content is filled in.

Page by Csaba Hruska!

llvm-svn: 53392
2008-07-10 05:32:43 +00:00
Chris Lattner a580a92508 Add an accessor, patch by Csaba Hruska.
llvm-svn: 53391
2008-07-10 05:26:30 +00:00
Argyrios Kyrtzidis 832e898803 Simplify the parser a bit by looking at the next token without consuming it (by Preprocessor::LookNext):
-Remove ParseExpressionWithLeadingIdentifier and ParseAssignmentExprWithLeadingIdentifier.
-Separate ParseLabeledStatement from ParseIdentifierStatement.

llvm-svn: 53376
2008-07-09 22:53:07 +00:00
Argyrios Kyrtzidis 80b77ac394 Add Preprocessor::LookNext method, which implements an efficient way to 'take a peek' at the next token without consuming it.
llvm-svn: 53375
2008-07-09 22:46:46 +00:00
Ted Kremenek a3f878dcab More information on filing bug reports.
llvm-svn: 53373
2008-07-09 22:20:56 +00:00
Ted Kremenek 5f996d5a06 Remove getParentMap() from GRExprEngine.
llvm-svn: 53343
2008-07-09 19:46:42 +00:00
Ted Kremenek bf98eed4ef Updated checker build.
llvm-svn: 53339
2008-07-09 18:26:32 +00:00
Ted Kremenek 1aaa6d8c19 Add test case.
llvm-svn: 53335
2008-07-09 18:11:43 +00:00
Ted Kremenek ae529271e8 Fix PR2519: correctly handle CFDictionaryCreate.
llvm-svn: 53334
2008-07-09 18:11:16 +00:00
Ted Kremenek a174c5270f Extend va_start checking to include __builtin_stdarg_start.
llvm-svn: 53332
2008-07-09 17:58:53 +00:00
Chris Lattner 0bf679180c Codegen support for __builtin_stdarg_start
llvm-svn: 53329
2008-07-09 17:28:44 +00:00
Chris Lattner b218272778 Add parser support for __builtin_stdarg_start, PR2531
llvm-svn: 53328
2008-07-09 17:26:36 +00:00
Ted Kremenek 6357f05e19 Add Environment.cpp to the clangAnalysis Visual Studio project.
llvm-svn: 53258
2008-07-08 23:30:43 +00:00
Ted Kremenek 263054b5e1 Update Xcode project.
llvm-svn: 53257
2008-07-08 23:29:24 +00:00
Ted Kremenek 852ed373aa Initial work on splitting the ValueState into an Environment, Store, and
Constraints. These concepts are already present in the current ValueState, but
the implementation is monolothic. Making ValueState more modular opens up new
design choices for customizing the analysis engine.

In the context of the analysis engine, the "Environment" is the binding between
Expr* (expressions) and intermediate symbolic values (RValues).

llvm-svn: 53252
2008-07-08 21:46:56 +00:00
Ted Kremenek 891c737e39 More info on filing static analysis bug reports.
llvm-svn: 53250
2008-07-08 21:25:35 +00:00
Nuno Lopes e212c3ecc2 revert my bogus attempt to fix the comment. sorry for the noise.
llvm-svn: 53248
2008-07-08 21:13:06 +00:00
Anders Carlsson 0166481455 Fix small bug. The evaluator now works well enough to pass all tests
llvm-svn: 53238
2008-07-08 16:49:00 +00:00
Anders Carlsson 4a3585b7c0 More constant expression work.
llvm-svn: 53235
2008-07-08 15:34:11 +00:00
Anders Carlsson 9c18165448 Move out some methods.
llvm-svn: 53234
2008-07-08 14:35:21 +00:00
Anders Carlsson b5ad021cd7 More work.
llvm-svn: 53233
2008-07-08 14:30:00 +00:00
Seo Sanghyeon 1904f44757 Compilation fix
llvm-svn: 53222
2008-07-08 07:23:12 +00:00
Anders Carlsson 374b93df76 Port more of Eli's evaluator over. This makes the int evaluator handle binary and unary operators.
llvm-svn: 53221
2008-07-08 05:49:43 +00:00
Anders Carlsson 0a1707c6ba Commit beginnings of int evaluator. Currently not used.
llvm-svn: 53219
2008-07-08 05:13:58 +00:00
Anders Carlsson ba123cdb9c Add LValue setters for APValue
llvm-svn: 53216
2008-07-08 04:35:19 +00:00
Ted Kremenek 8a3cb43fc0 Updated latest checker build.
llvm-svn: 53191
2008-07-07 18:43:43 +00:00
Ted Kremenek 79ab0fa913 In a report-XXXXX.html, make the title include the name of the file with the bug. Patch by Jean-Daniel Dupas!
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-July/002166.html

llvm-svn: 53184
2008-07-07 18:31:05 +00:00
Ted Kremenek 86b4249c97 Mark the "Bug Type" column as being initially sorted (display the sort ding) so that users can readily see that the table can be sorted.
llvm-svn: 53176
2008-07-07 17:23:32 +00:00
Ted Kremenek 9707a93f9d Output html should have 'class=' before "sorttable_nosort".
llvm-svn: 53175
2008-07-07 16:58:44 +00:00
Nuno Lopes 7bfa180056 fix CheckForConstantInitializer() for Compound Literals
also fix the correspondent test (it was expecting more errors than it should. please confirm my fix is correct (at least gcc agrees with me)

llvm-svn: 53174
2008-07-07 16:46:50 +00:00
Ted Kremenek 4963d1144f Updated clients of ImmutableMap::SlimFind to use ImmutableMap::lookup instead.
llvm-svn: 53172
2008-07-07 16:21:19 +00:00
Nuno Lopes d28ccad6fc add x86 EDI register alias
llvm-svn: 53170
2008-07-07 12:18:07 +00:00
Ted Kremenek 37a2c0d5d1 Do not emit a "missing -dealloc" warning if a class contains no ivars that are pointers.
This patch aims to address some of the concerns of PR 2517: http://llvm.org/bugs/show_bug.cgi?id=2517

llvm-svn: 53168
2008-07-07 06:36:08 +00:00
Cedric Venet 5e7d92e215 Add new file to VS projects.
llvm-svn: 53160
2008-07-06 14:45:13 +00:00
Nuno Lopes 3da38fd145 move the linux predefined macro definition to the TargetInfo, where it really belongs
llvm-svn: 53149
2008-07-05 19:32:25 +00:00
Nuno Lopes 9b6de71b7d predefine the macro linux when compiled on a linux system. this fixes the build of libtidy
llvm-svn: 53145
2008-07-05 17:58:44 +00:00
Nuno Lopes a7c7c6b011 llvm-ld doesnt support -O1, -O2, etc options, so dont pass them
llvm-svn: 53144
2008-07-05 17:31:10 +00:00
Nuno Lopes 88b1d0ee42 add gentoo stable gcc headers path so that all tests pass here (CPATH isnt enough..)
llvm-svn: 53143
2008-07-05 17:15:18 +00:00
Seo Sanghyeon d27410b580 Fix warnings
llvm-svn: 53141
2008-07-05 02:01:25 +00:00
Argyrios Kyrtzidis 04bfdd555e Remove unused diagnostic.
llvm-svn: 53140
2008-07-04 22:36:24 +00:00
Sanjiv Gupta 1e8b608751 Fixed bugzilla bug# 2489.
This was broken when the GenerateCode function was splitted to use GenerateFunction.

llvm-svn: 53136
2008-07-04 11:04:26 +00:00
Argyrios Kyrtzidis 5708a4661e '&&' commands together so that the test status reflects the results of all the commands, otherwise the test status will be the result of only the last command.
llvm-svn: 53135
2008-07-04 10:33:02 +00:00
Seo Sanghyeon be0e659da4 Fix warnings
llvm-svn: 53133
2008-07-04 09:32:15 +00:00
Ted Kremenek 4449ec09d6 '&&' clang commands together so that the test status reflects the results of all three clang executions.
llvm-svn: 53132
2008-07-04 04:38:48 +00:00
Ted Kremenek e83e69e795 Update latest checker build.
llvm-svn: 53129
2008-07-03 23:40:44 +00:00
Ted Kremenek 4d85146e6d Use conjured symbols for variables whose values are invalidated when
passed-by-reference to a function. This allows us to build up constraints for
their new values and restore some lost path-sensitivity. This addresses a few
false positives since in Adium.

llvm-svn: 53125
2008-07-03 23:26:32 +00:00
Bill Wendling e7264ec999 Remove removed header.
llvm-svn: 53121
2008-07-03 22:54:30 +00:00
Ted Kremenek 69ba008ea3 Updated latest checker build.
llvm-svn: 53118
2008-07-03 22:35:30 +00:00
Ted Kremenek 8044046efb Fix a bug in the dead stores checker reported in the following email:
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-July/002157.html

Essentially the observer mechanism in LiveVariables was observing block-level
expressions multiple times, leading to a case where the dead store checker could
see a value as dead when it was really live.

llvm-svn: 53115
2008-07-03 22:25:27 +00:00
Ted Kremenek 9c75ea62d7 Have ccc-analyzer skip any files with an unknown (or absent) extension.
llvm-svn: 53114
2008-07-03 22:24:10 +00:00
Chris Lattner 4cab581bc0 add c++ status to sidebar
llvm-svn: 53107
2008-07-03 17:43:22 +00:00
Ted Kremenek 38b1e57a4d Updated latest checker build.
llvm-svn: 53103
2008-07-03 16:26:26 +00:00
Ted Kremenek 68b117fca4 Skip the "-dealloc" check if a ObjC class contains no ivars.
llvm-svn: 53100
2008-07-03 15:37:02 +00:00
Ted Kremenek b23c3aaf7a Added an "ivar_empty" method to ObjCInterfaceDecl.
llvm-svn: 53099
2008-07-03 15:30:49 +00:00
Ted Kremenek e66ca6f35a For the -dealloc checker, check the LangOptions to determine whether or not the code is compiled with GC.
llvm-svn: 53098
2008-07-03 14:35:01 +00:00
Argyrios Kyrtzidis 5c48a70dad -Added bool feature.
-Set "Named Casts" feature to partial parser/sema support because reinterpret_cast is not properly implemented.
-Removed "Virtual functions" feature because it is already covered by "Class definitions".
-Removed "Templates" because we should either list *all* missing/supported features or just list the features with some support. Mentioning just a few missing features without listing all of them makes little sense.

llvm-svn: 53095
2008-07-03 08:32:59 +00:00
Argyrios Kyrtzidis f5bfb06b85 -Change slightly the link to cxx_status.html of the home page.
-Add a link to cxx_status.html from get_involved.html/"Open Projects".

llvm-svn: 53094
2008-07-03 08:21:51 +00:00
Ted Kremenek f39614bfd0 Updated latest checker build.
llvm-svn: 53084
2008-07-03 05:33:14 +00:00
Ted Kremenek 1d3c797c90 Have BugReporter::getCFG and BugReporter::getLiveVariables returns pointers instead of references, because they can both fail
on functions we cannot construct full CFGs for yet.

llvm-svn: 53081
2008-07-03 05:26:14 +00:00
Ted Kremenek 590afde872 Updated latest checker build.
llvm-svn: 53080
2008-07-03 04:47:54 +00:00
Ted Kremenek ff7f2e76bf Update Xcode project.
llvm-svn: 53076
2008-07-03 04:30:48 +00:00
Ted Kremenek 0e7d25233e Added static analysis check to see if a subclass of NSObject implements -dealloc, and whether or not that implementation calls [super dealloc].
llvm-svn: 53075
2008-07-03 04:29:21 +00:00
Anders Carlsson 7a241baf2f Shuffle things around in preparation for integrating Eli's constant evaluator.
llvm-svn: 53074
2008-07-03 04:20:39 +00:00
Anders Carlsson ac1d1d1c34 Make APValue an APSInt.
llvm-svn: 53072
2008-07-03 04:00:59 +00:00
Chris Lattner 3f26dc0bf6 new testcase
llvm-svn: 53071
2008-07-03 03:53:40 +00:00
Chris Lattner 1cb0e61e98 Fix PR2252: don't warn on negating an unsigned value ever, and don't emit
'integer constant is so large that it is unsigned' warning for hex literals.

llvm-svn: 53070
2008-07-03 03:47:30 +00:00
Chris Lattner 9ff58d7caf Fix PR2020 by recovering by defining an anonymous enum, instead of recovering
by filling in the body of a union with enum constants.

llvm-svn: 53069
2008-07-03 03:30:58 +00:00
Ted Kremenek 80025c257f Update test case with new clang arguments.
llvm-svn: 53056
2008-07-02 23:18:57 +00:00
Ted Kremenek e6b2fa5029 Update test case: simply running "clang -checker-simple" doesn't invoke the dead store checker anymore. We need "-warn-dead-stores" as well.
llvm-svn: 53055
2008-07-02 23:18:22 +00:00
Ted Kremenek c7efb536d5 Unify the code path for the Dead Stores checker to always use the BugReporter interface.
llvm-svn: 53054
2008-07-02 23:16:33 +00:00
Ted Kremenek f1f17555bd ccc-analyzer now dispatches the options "-checker-cfref" and "-warn-dead-stores" to clang instead of just "-checker-cfref".
llvm-svn: 53053
2008-07-02 23:16:10 +00:00
Ted Kremenek b1d0118a1a Refactored some of the BugReporter interface so that data such as the ASTContext&, PathDiagnosticClient*, can be provided by an external source.
Split BugReporter into BugReporter and GRBugReporter so checkers not based on GRExprEngine can still use the BugReporter mechanism.

llvm-svn: 53048
2008-07-02 21:24:01 +00:00
Ted Kremenek 125d4a3b2d GRExprEngine now expects the LiveVariables information to be provided by its creator.
This allows an optimization in AnalysisConsumer where the same LiveVariables information is used between multiple analyses.

llvm-svn: 53046
2008-07-02 20:13:38 +00:00
Ted Kremenek d8ca1f6dd9 Added version of CheckDeadStores that accepts a client-provided LiveVariables object.
Modified the DeadStores logic in AnalysisConsumer.cpp to use the LiveVariables object created by the AnalysisManager.

llvm-svn: 53043
2008-07-02 18:39:20 +00:00
Ted Kremenek c3b30340d9 Added method "HandleTranslationUnit" to ASTConsumer. This is called by ParseAST when all of the ASTs in a translation unit have been built.
llvm-svn: 53042
2008-07-02 18:32:45 +00:00
Ted Kremenek f992cfb4ab Moved logic for -dump-cfg and -view-cfg into AnalysisConsumer.
Renamed -dump-cfg to -cfg-dump, and -view-cfg to -cfg-view.  This naming better matches the same options for asts (e.g. -ast-dump).

llvm-svn: 53041
2008-07-02 18:23:21 +00:00
Ted Kremenek bdbe6130f4 Move -dump-live-variables logic to AnalysisConsumer.
llvm-svn: 53039
2008-07-02 18:11:29 +00:00
Ted Kremenek 71ac83246f Migrate CheckerConsumer diagnostics to the new AnalysisConsumer interface.
Remove CheckerConsumer.

llvm-svn: 53029
2008-07-02 16:49:11 +00:00
Ted Kremenek becec2cbbc Move logic for "-checker-simple" to the new AnalysisConsumer interface.
llvm-svn: 53028
2008-07-02 16:35:50 +00:00
Chris Lattner 5cc931d409 add a description of what sema and parser mean, add C++ style casts.
llvm-svn: 53027
2008-07-02 16:28:43 +00:00
Ted Kremenek 494e98d0e5 Fix typo in test case.
llvm-svn: 53024
2008-07-02 15:28:06 +00:00
Argyrios Kyrtzidis 1b1a711eb3 Add note that most of C++ is not supported.
llvm-svn: 53023
2008-07-02 15:10:46 +00:00
Argyrios Kyrtzidis c8619b5b15 Set CSS defaults for tables.
llvm-svn: 53022
2008-07-02 14:42:28 +00:00
Argyrios Kyrtzidis fd2012b04d Drop 'C++' from the features; suggestion by Holger Schurig.
llvm-svn: 53020
2008-07-02 14:16:29 +00:00
Argyrios Kyrtzidis d2082befe5 Fix the page title.
llvm-svn: 53017
2008-07-02 13:44:11 +00:00
Gabor Greif dedda503cb minor tweaks, escape < and >
llvm-svn: 53016
2008-07-02 12:34:47 +00:00
Gabor Greif a5cb073c5c add two popular c++ features
llvm-svn: 53015
2008-07-02 12:31:13 +00:00
Gabor Greif 731d70b2d6 add c++ status link
llvm-svn: 53014
2008-07-02 12:18:17 +00:00
Argyrios Kyrtzidis ac1c5f925e Add a C++ status report page.
llvm-svn: 53013
2008-07-02 11:38:59 +00:00
Ted Kremenek 410d32bfec Add DeclCXX.[h.cpp] to clangAST.vcproj
llvm-svn: 53004
2008-07-02 00:57:42 +00:00
Ted Kremenek 8e631a0267 Migrated driver logic for running the CF retain/release checker over to the new AnalysisConsumer interface.
llvm-svn: 53002
2008-07-02 00:44:58 +00:00
Ted Kremenek 0a7fd7d56c Added AnalysisConsumer.[cpp,h] to clangDriver.vcproj.
Added CXXFieldCollector.h to clangSema.vcproj.

llvm-svn: 52999
2008-07-02 00:16:24 +00:00
Ted Kremenek e6cc6bb5b3 Updated Xcode project with new files in the Driver: AnalysisConsumer.[h,cpp]
llvm-svn: 52997
2008-07-02 00:03:52 +00:00
Ted Kremenek f0413bfcda Added AnalysisConsumer, a meta-level ASTConsumer class to drive various
analyses. This potentially is the primordial origins of a Clang-equivalent
"PassManager".

The new AnalysisConsumer interface allows multiple analyses to be run from a
single invocation of Clang.

Migrated the logic of "-warn-dead-stores" and "-warn-uninit-values" to use the
new AnalysisConsumer interface. The new interface results in a significant code
reduction to incorporate an analysis into the Driver.

Updated a test case to (correctly) acknowledge that it contains a dead store
(this check wasn't being performed because it was previously masked by
-warn-uninit-values).

llvm-svn: 52996
2008-07-02 00:03:09 +00:00
Ted Kremenek 5f06a935a3 Added reference count checker test case.
llvm-svn: 52993
2008-07-01 23:29:51 +00:00
Ted Kremenek 3b5ea90dc1 Updated latest checker build.
llvm-svn: 52991
2008-07-01 23:15:51 +00:00
Ted Kremenek ab54e51b38 Unlike NSWindow objects, NSPanel objects initially do not have self-ownership.
llvm-svn: 52963
2008-07-01 17:21:27 +00:00
Argyrios Kyrtzidis 2a40249b65 Update some comments.
llvm-svn: 52957
2008-07-01 11:22:40 +00:00
Argyrios Kyrtzidis ed9834272f Add Sema support for C++ classes.
llvm-svn: 52956
2008-07-01 10:37:29 +00:00
Ted Kremenek 5e08668882 Updated checker build to checker-51
llvm-svn: 52949
2008-07-01 01:56:05 +00:00
Ted Kremenek bc6d850088 Temporarily treat "Autorelease" as "StopTracking". This is the original behavior.
llvm-svn: 52940
2008-07-01 00:01:02 +00:00
Chris Lattner 9a8d1d9e56 Make a few related changes:
1) add a new ASTContext::getFloatTypeSemantics method.
2) Use it from SemaExpr.cpp, CodeGenTypes.cpp and other places.
3) Change the TargetInfo.h get*Format methods to return their 
   fltSemantics byref instead of by pointer.
4) Change CodeGenFunction::EmitBuiltinExpr to allow builtins which
   sometimes expand specially and othertimes fall back to libm.
5) Add support for __builtin_nan("") to codegen, cases that don't pass
   in an empty string are currently lowered to libm calls.
6) Fix codegen of __builtin_infl.

llvm-svn: 52914
2008-06-30 18:32:54 +00:00
Ted Kremenek 51a685cf27 When inspecting the build command, strip off the preceding path to the build command.
llvm-svn: 52913
2008-06-30 18:18:16 +00:00
Ted Kremenek a0e071c861 Added "Autorelease" ArgEffect to better simulate "autorelease" messages. Right
now this does the same thing as "MayEscape", but more functionality will go in
here shortly.

llvm-svn: 52904
2008-06-30 16:57:41 +00:00
Ted Kremenek 54dd81ced9 Updated checker build to checker-48
llvm-svn: 52902
2008-06-30 16:30:52 +00:00
Ted Kremenek fec817aa12 Bug fix: when copying prefix files using 'cp', don't split file names by spaces.
llvm-svn: 52899
2008-06-30 16:12:30 +00:00
Chris Lattner d68c04f162 Fix a bug reported by Kelly Wilson, where we incorrectly
rejected FP immediates like 08.123

llvm-svn: 52890
2008-06-30 06:44:49 +00:00