Mike Stump
a60f1fc54b
Let's remember we want better codegen for these.
...
llvm-svn: 78310
2009-08-06 14:16:19 +00:00
Mike Stump
04df9b1d5e
Testcase for a recent checkin for vbase layout ordering. I hate to
...
optimize and check for non-optimal code, but until the frontend is as
powerful as fold...
llvm-svn: 78309
2009-08-06 14:12:47 +00:00
Mike Stump
6b2556f829
Layout virtual bases. Work in progress.
...
llvm-svn: 78308
2009-08-06 13:41:24 +00:00
Anton Korobeynikov
3ebc08b5bd
Add link to LLVM's Getting Started page.
...
Patch by John Thompson!
llvm-svn: 78307
2009-08-06 13:00:08 +00:00
Benjamin Kramer
bd7d13fb70
Silence gcc warning about non-virtual destructors.
...
llvm-svn: 78306
2009-08-06 12:59:58 +00:00
Mike Stump
c700b362c7
I have a dream, one day, we won't need to do this.
...
llvm-svn: 78305
2009-08-06 12:56:50 +00:00
Mike Stump
e9c85a7f58
Fix spell-o.
...
llvm-svn: 78303
2009-08-06 12:52:13 +00:00
Zhongxing Xu
99e49073bc
I forgot adding this header for r78298.
...
llvm-svn: 78302
2009-08-06 12:49:15 +00:00
Zhongxing Xu
107f75989c
Last step of template cleanup: merge *BuilderImpl to *Builder.
...
Some Builders need further cleanup.
llvm-svn: 78301
2009-08-06 12:48:26 +00:00
Zhongxing Xu
82003da8d3
Core analysis engine template cleanup step 2:
...
merge GRCoreEngineImpl and GRCoreEngine.
Introduce a new interface class GRSubEngine as the subengine of GRCoreEngine.
GRExprEngine subclasses GRSubEngine now.
llvm-svn: 78298
2009-08-06 10:00:15 +00:00
Zhongxing Xu
c5ce335f81
Fix comment.
...
llvm-svn: 78296
2009-08-06 09:22:08 +00:00
Douglas Gregor
71dc50915a
Implement transformation of template names within the generic tree
...
transform, then use the result for template instantiation. The generic
transformation fixes a few issues:
- It copes better with template template parameters and member
templates (when they're implemented).
- The logic used to replace template template parameters with their
arguments is now centralized in TransformDecl, so that it will apply
for other declaration-instantiation steps.
- The error-recovery strategy is normalized now, so that any error
results in a NULL TemplateName.
llvm-svn: 78292
2009-08-06 06:41:21 +00:00
Zhongxing Xu
c90a0c2e81
Core analysis engine template cleanup step 2:
...
merge ExplodedGraphImpl and ExplodedGraph.
llvm-svn: 78291
2009-08-06 06:28:40 +00:00
Ted Kremenek
f368fa6728
Update test case.
...
llvm-svn: 78290
2009-08-06 06:26:40 +00:00
Douglas Gregor
1135c35c7c
Implement transformation of nested-name-specifiers within the general
...
tree transformation. Template instantiation uses this general
transformation rather than implementing its own transformation.
llvm-svn: 78286
2009-08-06 05:28:30 +00:00
Ted Kremenek
54bd637f40
Fix typo reported in <rdar://problem/7121409>.
...
llvm-svn: 78285
2009-08-06 05:01:36 +00:00
Ted Kremenek
2c85f17922
Refactor RegionStoreManager::RemoveDeadBindings to also scan the bindings of LazyCompoundSVals.
...
llvm-svn: 78284
2009-08-06 04:50:20 +00:00
Douglas Gregor
3f4d51bb04
Predefine __cplusplus to the right value (199711L), except when in GNU mode.
...
llvm-svn: 78283
2009-08-06 04:09:28 +00:00
Ted Kremenek
e587ca6f25
Remove unimplemented methods 'AddRegionView' and 'RemoveRegionView'. They are no longer needed.
...
llvm-svn: 78280
2009-08-06 03:41:56 +00:00
Ted Kremenek
ed31f99efb
When profiling an ExplodedNode, don't re-profile the state: they have
...
already been uniqued.
llvm-svn: 78279
2009-08-06 03:39:20 +00:00
Douglas Gregor
d806156d54
Support nested-name-specifiers for C++ member access expressions, e.g.,
...
this->Base::foo
from James Porter!
llvm-svn: 78278
2009-08-06 03:17:00 +00:00
Ryan Flynn
aa5e5fd2f4
add support for FreeBSD's format(printf0,x,y) attribute; allows null format string.
...
llvm-svn: 78276
2009-08-06 03:00:50 +00:00
John McCall
07e91c04ba
First pass at friend semantics.
...
llvm-svn: 78274
2009-08-06 02:15:43 +00:00
Zhongxing Xu
51eeb36c8c
Completely remove the code using region cast.
...
llvm-svn: 78273
2009-08-06 02:14:29 +00:00
Daniel Dunbar
b46b5bbaa8
Add additional library paths for Linux distros on mixed 32/64-bit systems.
...
- Patch by Carl-Daniel Hailfinger.
llvm-svn: 78272
2009-08-06 01:47:11 +00:00
Daniel Dunbar
4728100e8d
Fix locating the 'lit.cfg' file when running on only a single file in the
...
current directory.
llvm-svn: 78271
2009-08-06 01:41:03 +00:00
Zhongxing Xu
20227f71d7
As GRState seems general enough, it is time to merge some template classes
...
and their impl base classes. This can greatly simply some code of the core
analysis engine. This patch merges ExplodedNodeImpl into ExplodedNode.
llvm-svn: 78270
2009-08-06 01:32:16 +00:00
Daniel Dunbar
f1ad6b7064
Fix clang breakage, CGF can be null in this context.
...
llvm-svn: 78269
2009-08-06 01:24:27 +00:00
Ted Kremenek
fa41714d8d
Implement lazy "copying" of structures and arrays in RegionStore. While
...
RegionStore already lazily abstracted the contents of arrays and structs, when
doing an assignment from one array/struct to another we did an explicit
element-wise copy, which resulted in a loss of laziness and huge performance
problem when analyzing many code bases.
Now RegionStoreManager handles such assignments using a new SVal could
'LazyCompoundSVal', which basically means the value of a given struct or array
(a MemRegion*) in a specific state (GRState). When we do a load from a field
whose encompassing struct binds to a LazyCompoundSVal, we essentially do a field
lookup in the original structure. This means we have essentially zero copying of
data for structs/arrays and everything stays lazy.
llvm-svn: 78268
2009-08-06 01:20:57 +00:00
Fariborz Jahanian
eb869768f9
Patch to optimize away copy constructor call when
...
appropriate.
llvm-svn: 78267
2009-08-06 01:02:49 +00:00
John McCall
9de556c8b6
AlisdairM pointed out that this will likely be relaxed in C++0x, so let's
...
make a note of it in the test case.
llvm-svn: 78266
2009-08-06 00:50:46 +00:00
Mike Stump
2509480813
Fixup object layout when we have a primary base (it goes first). Start preping for
...
virtual base layout.
llvm-svn: 78265
2009-08-06 00:38:46 +00:00
John McCall
13c5a27c9a
Add a test for invalid uses of non-static members from nested classes, just
...
because I was thinking about it.
llvm-svn: 78262
2009-08-05 23:56:26 +00:00
Owen Anderson
758428f4e3
Update for LLVM API change.
...
llvm-svn: 78259
2009-08-05 23:18:46 +00:00
Mike Stump
a19718af5a
Refactor some bits.
...
llvm-svn: 78254
2009-08-05 22:59:44 +00:00
Mike Stump
6d368129c5
Add another test for a recent checkin.
...
llvm-svn: 78253
2009-08-05 22:48:36 +00:00
Mike Stump
d8fe7b2792
Calculate the primary base class better and use that when laying down
...
the vtable. Still a work in progress.
llvm-svn: 78252
2009-08-05 22:37:18 +00:00
Fariborz Jahanian
01aabafee0
A blank line to separate the two blocks(per Mike comment).
...
llvm-svn: 78248
2009-08-05 21:52:02 +00:00
Benjamin Kramer
70231c99c4
Fix -fno-omit-frame-pointer bug Eli noticed.
...
llvm-svn: 78233
2009-08-05 19:47:38 +00:00
Fariborz Jahanian
daeb7d51d4
Modified test case to use FileCheck.
...
llvm-svn: 78231
2009-08-05 19:24:33 +00:00
Eli Friedman
44b83eea30
Get rid of "smart" quotes. Per report on cfe-dev.
...
llvm-svn: 78230
2009-08-05 19:21:58 +00:00
Ted Kremenek
844a729d97
Use feedback from RegionStoreSubRegionMap::add() to prune off adding a super
...
region to the worklist used to create the subregion map.
llvm-svn: 78228
2009-08-05 19:09:24 +00:00
Douglas Gregor
f9bd4ecea2
Fix canonical type construction for function types with the noreturn
...
attribute. Fixes PR4865.
llvm-svn: 78224
2009-08-05 19:03:35 +00:00
Fariborz Jahanian
d460cb4356
Handle destruction of temporaries used in default argument
...
construction of constructor calls.
llvm-svn: 78222
2009-08-05 18:17:32 +00:00
Fariborz Jahanian
aa890bf2f3
Patch to improve ir-gen for constructors with default argument
...
expressions and a test case.
llvm-svn: 78213
2009-08-05 17:03:54 +00:00
Benjamin Kramer
cf4371a689
Translate -mcmodel=X to -code-model X and pass it to clang-cc. Patch by Pawel Worach!
...
llvm-svn: 78190
2009-08-05 14:30:52 +00:00
Benjamin Kramer
72e211a47a
Add support for the -fno-omit-frame-pointer option. Patch by Roman Divacky!
...
llvm-svn: 78188
2009-08-05 12:11:11 +00:00
Douglas Gregor
99709de6ae
Fix a comment that trailed off
...
llvm-svn: 78167
2009-08-05 05:39:53 +00:00
Douglas Gregor
2211d345d2
Introduce the canonical type smart pointers, and use them in a few places to
...
tighten up the static type system.
llvm-svn: 78164
2009-08-05 05:36:45 +00:00
Ted Kremenek
68c1f010d2
Fix a bug in RegionStoreSubRegionManager::add() where multiple subregions wouldn't correctly get registered in the SubRegion map.
...
llvm-svn: 78162
2009-08-05 05:31:02 +00:00