Zhongxing Xu
4c23963de8
Added LLVM comment header.
...
llvm-svn: 55537
2008-08-29 15:09:12 +00:00
Zhongxing Xu
c1bd3a5f8b
Migrate the rest symbolic analysis stuff to BasicConstraintManager.
...
llvm-svn: 55536
2008-08-29 14:52:36 +00:00
Daniel Dunbar
9e22c0d317
Add special "property reference" CodeGen::LValue type for emitting
...
Objective-C property references.
- This handles property references "more correctly" but setters still
don't work.
llvm-svn: 55534
2008-08-29 08:11:39 +00:00
Ted Kremenek
5043680da4
Remove dead method.
...
llvm-svn: 55526
2008-08-29 03:55:31 +00:00
Daniel Dunbar
9a0ea046db
Add newline to end of file.
...
llvm-svn: 55525
2008-08-29 03:45:59 +00:00
Daniel Dunbar
a545f466e8
Add utils/FindSpecRefs, Python script for generating specification
...
references HTML page.
llvm-svn: 55524
2008-08-29 01:07:08 +00:00
Ted Kremenek
c83e755d78
Added "getBindings" and "BindingAsString" to GRStateManager and StoreManager.
...
Migrated CFRefCount.cpp to use getBindings and BindingsAsString instead of
making assumptions about the Store (removed dependence on GRState::vb_iterator).
llvm-svn: 55522
2008-08-29 00:47:32 +00:00
Ted Kremenek
f011e10d6a
Remove BasicStore.h from Xcode project.
...
llvm-svn: 55520
2008-08-28 23:40:08 +00:00
Ted Kremenek
5909059524
Remove BasicStore.h (migrated function prototype for CreateBasicStore() to Store.h)
...
llvm-svn: 55519
2008-08-28 23:39:42 +00:00
Ted Kremenek
4360f3b553
Remove Regions.cpp from VS project file.
...
llvm-svn: 55517
2008-08-28 23:34:54 +00:00
Ted Kremenek
85a401ea15
Removed Regions.[h,cpp] from the Xcode project.
...
llvm-svn: 55516
2008-08-28 23:33:36 +00:00
Ted Kremenek
75d2ac956f
Remove Regions.h and Regions.cpp, since we are now using an even more abstract representation of "memory regions" in the static analyzer.
...
llvm-svn: 55515
2008-08-28 23:32:43 +00:00
Ted Kremenek
e91874f71f
Make store "Regions" and "Bindings" more abstract instead of concrete variants.
...
Their precise semantics will be implemented by a specific StoreManager.
Use function pointer to create the StoreManager in GRStateManager. This matches how we create ConstraintsManager.
llvm-svn: 55514
2008-08-28 23:31:31 +00:00
Daniel Dunbar
5888e603c3
Allow 'make TESTDIRS=Sema' in test/ directory for only running a
...
subset of tests.
llvm-svn: 55513
2008-08-28 23:28:16 +00:00
Ted Kremenek
c400511a55
Updated analyzer build.
...
llvm-svn: 55505
2008-08-28 22:15:34 +00:00
Ted Kremenek
1bb387e056
Use explicit variable instead of $?
...
llvm-svn: 55501
2008-08-28 21:28:55 +00:00
Steve Naroff
0ac012835f
Add parser/action support for block literal expressions.
...
Parser support for blocks is almost complete...just need to add support for the __block() storage class qualifier.
llvm-svn: 55495
2008-08-28 19:20:44 +00:00
Ted Kremenek
f1b9209a34
Fixed analyzer caching bug involving the transfer function for loads.
...
llvm-svn: 55494
2008-08-28 18:43:46 +00:00
Daniel Dunbar
8c8616377d
Fix isIntegerConstantExpr eval of __builtin_offsetof to return result
...
with correct width.
- PR2728.
Also, fix PR2727 test case.
llvm-svn: 55493
2008-08-28 18:42:20 +00:00
Ted Kremenek
2eb49f295d
Always print out the function we're analyzing.
...
llvm-svn: 55488
2008-08-28 18:34:41 +00:00
Ted Kremenek
b45e6b91c6
Fixed analyzer caching bug in DeclStmt.
...
llvm-svn: 55487
2008-08-28 18:34:26 +00:00
Daniel Dunbar
3e1888e8bd
Fix double-free error with sizeof applied to VLA types.
...
- PR2727.
Also, fix warning in CodeGenTypes for new BlockPointer type.
llvm-svn: 55479
2008-08-28 18:02:04 +00:00
Steve Naroff
94e3ab20b7
Fix Parser::ParseDeclaratorInternal(): add langopts test when recognizing blocks.
...
llvm-svn: 55468
2008-08-28 10:07:06 +00:00
Argyrios Kyrtzidis
41f1dbc66d
Fix compilation error on MSVC.
...
llvm-svn: 55465
2008-08-28 07:45:57 +00:00
Ted Kremenek
803e7e1e47
Ubigraph visualization: represent cached nodes with a different style.
...
llvm-svn: 55463
2008-08-28 05:02:09 +00:00
Ted Kremenek
de8008a130
Enhance ubiviz to support vertex styles.
...
llvm-svn: 55462
2008-08-28 05:01:37 +00:00
Daniel Dunbar
4932b36f54
NeXT: Emit mostly-correct property type encoding.
...
- Added ASTContext::getObjCEncodingForPropertyDecl.
llvm-svn: 55461
2008-08-28 04:38:10 +00:00
Ted Kremenek
266ec3fb4e
Automatically execute ubiviz.
...
Cleanup ubigraph files when don't drawing the graphs.
llvm-svn: 55459
2008-08-28 03:54:51 +00:00
Ted Kremenek
c1cf430051
Update checker build.
...
llvm-svn: 55455
2008-08-28 01:42:51 +00:00
Ted Kremenek
1a42278a19
Fix regression: immediately terminate ccc-analyzer when gcc reports an error.
...
llvm-svn: 55452
2008-08-28 01:18:44 +00:00
Ted Kremenek
3a01c1eb8e
Update Xcode project.
...
llvm-svn: 55449
2008-08-27 23:13:22 +00:00
Ted Kremenek
b5ef37f28e
Make the destructor of ConstraintManager virtual.
...
llvm-svn: 55448
2008-08-27 23:13:01 +00:00
Ted Kremenek
5bc033b934
Update checker build.
...
llvm-svn: 55447
2008-08-27 22:49:55 +00:00
Ted Kremenek
c8288b408a
Ubigraph-rendered ExplodedGraphs now have arrows and are oriented downward.
...
llvm-svn: 55446
2008-08-27 22:46:55 +00:00
Ted Kremenek
d461d7ad7e
Added Ubigraph visualization for the static analyzer (this is pretty alpha quality).
...
llvm-svn: 55442
2008-08-27 22:31:43 +00:00
Ted Kremenek
5cc989dad1
Update Xcode project.
...
llvm-svn: 55441
2008-08-27 22:31:20 +00:00
Ted Kremenek
7b62806272
Remove regression where the analyzer was not called.
...
llvm-svn: 55440
2008-08-27 22:30:34 +00:00
Steve Naroff
ec33ed9ced
First wave of changes to support "blocks" (an extension to C).
...
This commit adds the declaration syntax (and associated type).
llvm-svn: 55417
2008-08-27 16:04:49 +00:00
Zhongxing Xu
f71b5f39bb
Refactor Assume logic into a separate class ConstraintManager.
...
llvm-svn: 55412
2008-08-27 14:03:33 +00:00
Daniel Dunbar
55310df79c
Initial support for Obj-C dot-syntax for getters.
...
llvm-svn: 55410
2008-08-27 06:57:25 +00:00
Daniel Dunbar
e0a673e60f
Update test case (we were missing a warning here)
...
llvm-svn: 55408
2008-08-27 05:41:04 +00:00
Daniel Dunbar
4684f37333
Add synthesized property methods to protocols and categories in Sema.
...
- It is not clear that this is the right approach, but this is at
least consistent with how interfaces are handled.
- This means NeXT now emits the correct metadata for properties in
protocols.
- This currently introduces a spurious warning involving inherited
properties in protocols or categories; however, it also fixes some
situations where we were failing to emit a warning. I will scrub
this code tomorrow and fix this issue as well as number of other
missed warnings / error situations that appear to exist.
llvm-svn: 55407
2008-08-27 05:40:03 +00:00
Daniel Dunbar
c4adb70968
Fix "possibly uninitialized" warning.
...
llvm-svn: 55406
2008-08-27 05:13:46 +00:00
Daniel Dunbar
eb1f9a2566
NeXT: Refactor protocol method metadata emission.
...
Also, fix category protocol list metadata.
llvm-svn: 55405
2008-08-27 02:31:56 +00:00
Daniel Dunbar
e7ecbc539e
Add addPropertyMethods implementations for
...
ObjC{Category,Protocol}Decl.
- No functionality change.
llvm-svn: 55404
2008-08-27 02:09:39 +00:00
Ted Kremenek
912c28444f
Added "Auditor" interface for auditing the construction of ExplodedGraphs.
...
llvm-svn: 55403
2008-08-27 01:56:11 +00:00
Ted Kremenek
6f7c419308
Make implementation of ExplodedNodeImpl::addPredecessor out-of-line.
...
llvm-svn: 55402
2008-08-27 01:27:52 +00:00
Daniel Dunbar
28e76caea1
NeXT: Emit correct properties for category.
...
- Was emitting duplicates of class properties instead of the category
properties.
llvm-svn: 55395
2008-08-26 23:03:11 +00:00
Ted Kremenek
af665820e4
Remove default value for 'Pred' argument to GRCoreEngineImpl::GenerateNode().
...
llvm-svn: 55392
2008-08-26 22:34:23 +00:00
Daniel Dunbar
3c76cb5cad
NeXT: Emit metadata for synthetsized properties.
...
Also, fix method lookup to not use LLVM module symbol table.
llvm-svn: 55390
2008-08-26 21:51:14 +00:00
Nico Weber
9f0f805bf9
make www less outdated
...
llvm-svn: 55388
2008-08-26 21:36:37 +00:00
Nico Weber
677a021665
update documentation
...
llvm-svn: 55386
2008-08-26 21:23:32 +00:00
Cedric Venet
6e7a7d339a
Update VS project.
...
llvm-svn: 55379
2008-08-26 19:46:30 +00:00
Daniel Dunbar
89654eef3a
Objective-C @synthesize support.
...
- Only supports simple assignment and atomic semantics are ignored.
- Not quite usable yet because the methods do not actually get added
to the class metadata.
- Added ObjCPropertyDecl::getSetterKind (one of Assign, Copy, Retain).
- Rearrange CodeGenFunction so synthesis can reuse function prolog /
epilog code.
llvm-svn: 55365
2008-08-26 08:29:31 +00:00
Daniel Dunbar
5e558bcf26
Add ObjCPropertyDecl::isReadOnly.
...
Respect isReadOnly when generating synthesized method decls.
llvm-svn: 55364
2008-08-26 07:16:44 +00:00
Daniel Dunbar
6962f5a73b
constify ObjC*::getClassMethod,getInstanceMethod
...
No (intended) functionality change.
llvm-svn: 55362
2008-08-26 06:53:45 +00:00
Daniel Dunbar
e36c39f3bf
Missed a file; part of:
...
Move implicit Obj-C param creation into ObjCMethodDecl.
- Add ObjCMethodDecl::createImplicitParams.
- Remove ObjCMethodDecl::set{Self,Cmd}Decl
- Remove Sema::CreateImplicitParameter
No (intended) functionality change.
llvm-svn: 55357
2008-08-26 06:08:30 +00:00
Daniel Dunbar
279d1ccc57
Move implicit Obj-C param creation into ObjCMethodDecl.
...
- Add ObjCMethodDecl::createImplicitParams.
- Remove ObjCMethodDecl::set{Self,Cmd}Decl
- Remove Sema::CreateImplicitParameter
No (intended) functionality change.
llvm-svn: 55356
2008-08-26 06:07:48 +00:00
Daniel Dunbar
3b4fdb0951
Rename ObjCPropertyImplDecl::PropertyImplKind (consistency)
...
- Change enum name to Kind.
- Change enum constants to English strings.
Also, fix getPropertyImplementation (which probably should be renamed)
llvm-svn: 55354
2008-08-26 04:47:31 +00:00
Daniel Dunbar
222ab49928
Fix return type for setter method.
...
llvm-svn: 55353
2008-08-26 02:53:23 +00:00
Daniel Dunbar
ad3cdc2ba7
Synthesize property setter method as we do for getter.
...
- Also, fix Parser to construct proper SetterName selector (should be
lifted out of parser though).
llvm-svn: 55352
2008-08-26 02:32:45 +00:00
Daniel Dunbar
40bf7fe20e
In incompatible pointer-typed ?: expressions, add implicit conversion
...
of RHSs to id type instead of void* if either has Objective-C object
type.
- This ensures the result can still be used in normal places an
object can be used, like a message send.
Add implicit conversions for ?: applied to qualified id types to
ensure that the RHSs are compatible.
- This prevents a codegen crash (creating invalid PHI nodes).
- Again, this relates to the fact that qualified id types have no
canonical types.
- Note that the implicit type casted to is incorrect, however this
doesn't currently cause problems because of the flexibility of the
id type.
Test cases for above.
llvm-svn: 55346
2008-08-26 00:41:39 +00:00
Eli Friedman
3d421e190a
Do typechecking and codegen for K&R-style function declarations
...
correctly. Not a regression, but made more obvious by my recent fix
which made function type compatibility checking a bit more strict.
llvm-svn: 55339
2008-08-25 21:31:01 +00:00
Ted Kremenek
92adb8d605
Update checker build.
...
llvm-svn: 55337
2008-08-25 21:27:06 +00:00
Eli Friedman
0a2ba3f10b
Fix for PR2720; be a little bit more permissive in initializers for
...
casting pointers to integers.
Eventually, we should check whether we can evaluate an expression
using Expr::tryEvaluate, and this codepath should be tightened to only
handle standard-compliant cases.
llvm-svn: 55331
2008-08-25 20:46:57 +00:00
Daniel Dunbar
f2e69888c5
Support __PRETTY_FUNCTION__ and friends in Obj-C methods.
...
Add CodeGenFunction::EmitUnsupportedLValue
- Gives error and returns undef value.
Swap some asserts() over to using EmitUnsupportedLValue
- Rumor has it users (and even some developers) prefer carat
diagnostics to backtraces.
- Works better in Release-Asserts to boot.
llvm-svn: 55328
2008-08-25 20:45:57 +00:00
Ted Kremenek
715ac7c51e
Use path information from .info files when computing common prefix information.
...
This partially implements PR 2705: http://llvm.org/bugs/show_bug.cgi?id=2705
llvm-svn: 55327
2008-08-25 20:45:07 +00:00
Ted Kremenek
6aa1ad0a7b
Use the same 'cc' for generated preprocessed crash files as we do for compilation.
...
llvm-svn: 55326
2008-08-25 20:44:31 +00:00
Ted Kremenek
a3b3c86a47
ccc-analyzer now correctly reports the exit code from 'cc'.
...
scan-build now correctly reports the exit code from the build command.
Fixes: <rdar://problem/6172224>
llvm-svn: 55324
2008-08-25 20:10:45 +00:00
Daniel Dunbar
8d57244601
Add test case for function-pointer-cast-of-global as constant
...
expression.
llvm-svn: 55323
2008-08-25 20:08:27 +00:00
Ted Kremenek
a968d42be0
Update Xcode project.
...
llvm-svn: 55322
2008-08-25 19:33:19 +00:00
Ted Kremenek
2a2c875b9c
Added 'extents' for Regions.
...
Added 'getExtent()' to StoreManager.
Implemented 'getExtent()' for BasicStoreManager.
llvm-svn: 55321
2008-08-25 19:33:03 +00:00
Anders Carlsson
1ec2ccd8ee
Objective-C foreach selector elements must be lvalues.
...
llvm-svn: 55316
2008-08-25 18:16:36 +00:00
Daniel Dunbar
ef957f3489
Change another is-a-pointer check to check in terms of LLVM type.
...
llvm-svn: 55312
2008-08-25 10:38:11 +00:00
Daniel Dunbar
427f873196
Do is-a-pointer checks in terms of LLVM types in
...
EmitScalarConversion().
- Important for allowing Obj-C void * to id<X> casts and so on.
- Not sure about this fix however, perhaps Type should understand
that id is effectively a pointer type.
llvm-svn: 55311
2008-08-25 09:51:32 +00:00
Daniel Dunbar
81128e04e7
Stop asserting in TargetInfo::validateInputConstraint
...
- Sema gives a perfectively nice error message on invalid constraints.
llvm-svn: 55310
2008-08-25 09:46:27 +00:00
Daniel Dunbar
ca8531a2d7
Fix Obj-C super sends inside class methods.
...
- NeXT loads the super class at runtime; this required changing the
runtime interface to pass more information down.
llvm-svn: 55307
2008-08-25 08:19:24 +00:00
Daniel Dunbar
236e02c62c
Name struct types generated for Obj-C classes.
...
llvm-svn: 55304
2008-08-25 06:28:15 +00:00
Daniel Dunbar
eb99810502
Use DenseMap on IdentifierInfo instead of StringMap.
...
llvm-svn: 55303
2008-08-25 06:18:57 +00:00
Daniel Dunbar
c61d0e9ee9
NeXT: Emit symbols used to manage linking of Obj-C classes.
...
- This ensures that references to undefined classes cause link
errors.
- NOTE: This relies on platform specific asm directives currently,
this should be factored out.
Also, don't emit a SYMBOLS metadata entry if there are no symbols.
llvm-svn: 55302
2008-08-25 06:02:07 +00:00
Anders Carlsson
ab55d9cd74
Handle emitting __builtin_huge_valf as a constant expr.
...
llvm-svn: 55299
2008-08-25 03:27:15 +00:00
Anders Carlsson
c13b85a6b8
Make code generation of ivar ref exprs more like member exprs.
...
llvm-svn: 55298
2008-08-25 01:53:23 +00:00
Anders Carlsson
4c03d98e45
Handle static variables inside obj-c methods.
...
llvm-svn: 55297
2008-08-25 01:38:19 +00:00
Anders Carlsson
88e89a5a5d
Convert qualified interface types correctly.
...
llvm-svn: 55287
2008-08-24 18:05:19 +00:00
Anders Carlsson
c7c20702b1
Fix silly bug in objc_gc attribute parsing and add test case
...
llvm-svn: 55286
2008-08-24 16:33:25 +00:00
Argyrios Kyrtzidis
bf667e23d1
Pass SourceRanges by reference to the various Diag methods.
...
llvm-svn: 55284
2008-08-24 13:14:02 +00:00
Argyrios Kyrtzidis
26da1f46e4
Add a Parser::Diag overload that can receive a custom string along with a SourceRange.
...
llvm-svn: 55283
2008-08-24 12:51:04 +00:00
Argyrios Kyrtzidis
75b34536d0
Rename Preprocessor::DisableBacktrack -> Preprocessor::CommitBacktrackedTokens.
...
llvm-svn: 55281
2008-08-24 12:29:43 +00:00
Cedric Venet
0a854b5308
Update VS projects.
...
llvm-svn: 55280
2008-08-24 11:59:26 +00:00
Chris Lattner
ab18099c98
other updates
...
llvm-svn: 55278
2008-08-24 05:56:54 +00:00
Chris Lattner
8659651a12
link to c++ status page
...
llvm-svn: 55277
2008-08-24 05:44:37 +00:00
Chris Lattner
d0449107d6
codegen is still not 'finished', but in a better state than before.
...
llvm-svn: 55276
2008-08-24 05:42:07 +00:00
Zhongxing Xu
9470a96b18
Moved HTMLDiagnostics to lib/Driver.
...
llvm-svn: 55274
2008-08-24 02:33:36 +00:00
Chris Lattner
909d0881ff
Comment tweak.
...
llvm-svn: 55272
2008-08-24 00:12:08 +00:00
Anders Carlsson
6305c5f437
Add support for parsing the objc_gc attribute. Tests will come shortly.
...
llvm-svn: 55269
2008-08-23 23:22:21 +00:00
Chris Lattner
a2e25e5e72
adjust to changes in various APIs from LLVM. We can't print
...
an APInt directly to an ostream now, so add some hacks. It would
be better to switch all of the bugreport (and friends) stuff over
to raw_ostream.
llvm-svn: 55264
2008-08-23 22:23:37 +00:00
Anders Carlsson
d059d5bba0
Add carbon.cpp and cocoa.mm tests
...
llvm-svn: 55262
2008-08-23 22:21:00 +00:00
Anders Carlsson
fbcd85137b
Make sure to create CXX record decls for the implicit Obj-C type declarations. This lets us compile Cocoa.h as Objective-C++
...
llvm-svn: 55261
2008-08-23 22:20:38 +00:00
Daniel Dunbar
eacf1d2c0f
Update ccc driver
...
- Use CCC_ECHO to control echoing behavior (default is on, set to ''
or unset to disable)
- Get 'clang','llc','as','cc','ld' executables from environment. 'cc'
and 'ld' are fetched through CCC_CC and CCC_LD respectively -- to
support make CC=ccc -- the others are through their upcased
versions.
- Add CCC_NATIVE mode.
o This uses llc and as to generate native object files; allowing
more drop-in replacement of gcc.
o Disabled by default, but should eventually be default.
o Allow --emit-llvm in CCC_NATIVE mode to override. Essentially
this makes ccc more like a drop in replacement for llvm-gcc.
- Prevent explicit -x <language> options from annoying clang.
llvm-svn: 55260
2008-08-23 22:15:15 +00:00
Anders Carlsson
4f177f803a
treat bool literals as constatnt expressions.
...
llvm-svn: 55255
2008-08-23 21:12:35 +00:00