Anders Carlsson
21776b75ce
Make sure to diagnose use of declarations in the case where we create an implicit CXXThisExpr.
...
llvm-svn: 78474
2009-08-08 16:55:18 +00:00
Daniel Dunbar
d3a114fe2d
Update test case; I don't really understand why packed enums changed this, but
...
the new havior is better so...
llvm-svn: 78473
2009-08-08 15:47:00 +00:00
Edward O'Callaghan
c69169d175
Patch should implement packed enums - PR4098. Credit to Anders Johnsen.
...
llvm-svn: 78471
2009-08-08 14:36:57 +00:00
Anders Carlsson
c5c57c3b86
Get rid of Stmt::Clone now that we can reference count statements instead.
...
llvm-svn: 78452
2009-08-08 02:50:17 +00:00
Douglas Gregor
2c742024ff
Introduce reference counting for statements and expressions, using it
...
to allow sharing of nodes. Simplifies some aspects of template
instantiation, and fixes both PR3444 and <rdar://problem/6757457>.
llvm-svn: 78450
2009-08-08 01:41:12 +00:00
Fariborz Jahanian
7c3d7f6c59
Remove use of uninitized variable.
...
llvm-svn: 78448
2009-08-08 00:59:58 +00:00
Fariborz Jahanian
59b3259284
Synthesize copying of non-static data members with
...
non-trivial copy constructors.
llvm-svn: 78445
2009-08-08 00:15:41 +00:00
Fariborz Jahanian
b68df0bc42
Synthesized copy constructor now generates code for
...
copying non-virtual base classes which have non-trivial
constructor. Work in progress.
llvm-svn: 78436
2009-08-07 23:51:33 +00:00
Anders Carlsson
8fc489da2a
Add a CK_ArrayToPointerDecay cast kind.
...
llvm-svn: 78434
2009-08-07 23:48:20 +00:00
Anders Carlsson
ec143777ba
Add CK_ToUnion and use it for aggregate expression codegen.
...
llvm-svn: 78429
2009-08-07 23:22:37 +00:00
Anders Carlsson
f10e414e4e
More CastKind work.
...
llvm-svn: 78415
2009-08-07 22:21:05 +00:00
John McCall
c7e8e795fa
Just add global scope to the associated namespaces set instead of tracking it
...
separately. Add the framework (currently unfed) for finding friend declarations
during argument-dependent lookup.
llvm-svn: 78414
2009-08-07 22:18:02 +00:00
Mike Stump
16644668cd
Add vbase offsets to the vtable. Wow, having an rbegin was so
...
fortuitous. WIP.
llvm-svn: 78413
2009-08-07 21:54:03 +00:00
Mike Stump
d9687fded6
Add rbegin and rend for virtual bases, might come in handy some day.
...
llvm-svn: 78412
2009-08-07 21:44:39 +00:00
Ted Kremenek
0e8e1fde25
Fix: <rdar://problem/7075531> static analyzer wrongly detects unused ivars used in blocks
...
llvm-svn: 78409
2009-08-07 21:13:23 +00:00
Ted Kremenek
d99f2866ac
Constify some pointers. No functionality change.
...
llvm-svn: 78407
2009-08-07 20:55:20 +00:00
Fariborz Jahanian
40134e71be
More synthesis of copy constructors. Work in progress.
...
llvm-svn: 78402
2009-08-07 20:22:40 +00:00
Mike Stump
a4d94b1a95
Fix typo.
...
llvm-svn: 78401
2009-08-07 20:14:05 +00:00
Mike Stump
c266c6d797
Add ability to generate vcall offsets for primary virtual base.
...
llvm-svn: 78396
2009-08-07 19:00:50 +00:00
Anders Carlsson
4f4aab2aeb
Use the correct cast kind as suggested by Doug.
...
llvm-svn: 78395
2009-08-07 18:45:49 +00:00
Mike Stump
b93185d05a
Fix some const_cast issues. This is the beginning of the rabbit hole.
...
llvm-svn: 78393
2009-08-07 18:05:12 +00:00
Ryan Flynn
f53fab87d8
PR3333: warn when shifting by invalid amount
...
llvm-svn: 78385
2009-08-07 16:20:20 +00:00
Douglas Gregor
e26a285c8f
Separate Stmt::Destroy into the entrypoint for destroying a statement
...
or expression (Destroy) from the virtual function used to actually
destroy a given expression (DoDestroy).
llvm-svn: 78375
2009-08-07 06:08:38 +00:00
Chris Lattner
b57430d698
add support for opensuse 11.1/11.2 search paths, patch by Stefan Reinauer
...
and Carl-Daniel Hailfinger!
llvm-svn: 78368
2009-08-07 05:28:24 +00:00
Mike Stump
7c32eab164
Add support for vcall generation for vtables for virtual bases. WIP.
...
llvm-svn: 78357
2009-08-06 23:48:32 +00:00
Fariborz Jahanian
9301b24c0a
Patch toward synthesizing copy constructors.
...
Work in progress.
llvm-svn: 78355
2009-08-06 23:38:16 +00:00
Ted Kremenek
040e3b91da
Fix a few more false positives involving RegionStore and unions, but this time
...
with array accesses. In the process, refactor some common logic in
RetrieveElement() and RetrieveField() into RetrieveFieldOrElementCommon().
llvm-svn: 78349
2009-08-06 22:33:36 +00:00
Douglas Gregor
766b0bbe61
Minor refactoring to introduce a new transformation function,
...
TransformStmt, into the tree transformer.
llvm-svn: 78347
2009-08-06 22:17:10 +00:00
Mike Stump
e6b39f5ca3
Almost forgot to turn on 32-bit test.
...
llvm-svn: 78346
2009-08-06 22:02:55 +00:00
Mike Stump
52aee0f3d9
Testcase for recent checkin.
...
llvm-svn: 78344
2009-08-06 21:53:24 +00:00
Mike Stump
3e62d00271
Also generate the rtti field for virtual bases for vtables. Turn on
...
rtti so we can properly test it. Refactor code a little. Still a
work in progress.
llvm-svn: 78343
2009-08-06 21:49:36 +00:00
Ted Kremenek
2f6eb14af4
Fix a couple false positive "uninitialized value" warnings with RegionStore
...
involving reasoning about unions (which we don't handle yet).
llvm-svn: 78342
2009-08-06 21:43:54 +00:00
John McCall
2c5206d22e
Drop the friend-inner-class diagnostic from an extwarn to an ext and don't
...
guard its report on GNUMode.
llvm-svn: 78338
2009-08-06 21:21:21 +00:00
Daniel Dunbar
1a9db99932
Add a simple tool for comparing two static analyzer runs, primarily for use from
...
buildbot.
llvm-svn: 78336
2009-08-06 21:15:33 +00:00
John McCall
93343b9466
Permit a class to friend its members in C++0x, without restriction.
...
Permit a class to friend its class members in C++ 98, as long as extensions
are enabled (and even when they aren't, only give an extwarn about it).
llvm-svn: 78332
2009-08-06 20:49:32 +00:00
Fariborz Jahanian
001309371e
Set and use Elidable in elimination of copy ctors.
...
llvm-svn: 78331
2009-08-06 19:12:38 +00:00
Mike Stump
2d8d655922
Layout the primary base first in the vtable.
...
llvm-svn: 78327
2009-08-06 18:05:22 +00:00
Fariborz Jahanian
11a8e95a1a
After reporting ill-formed copy constructor(12.8.p3)
...
don't recurs and crash.
llvm-svn: 78323
2009-08-06 17:22:51 +00:00
Daniel Dunbar
0c4a959b28
s/ccc/clang/
...
llvm-svn: 78320
2009-08-06 16:47:53 +00:00
Douglas Gregor
15acfb9f50
When we encounter a dependent type that was parsed before we know that
...
we were going to enter into the scope of a class template or class
template partial specialization, rebuild that type so that it can
refer to members of the current instantiation, as in code like
template<typename T>
struct X {
typedef T* pointer;
pointer data();
};
template<typename T>
typename X<T>::pointer X<T>::data() { ... }
Without rebuilding the return type of this out-of-line definition, the
canonical return type of the out-of-line definition (a TypenameType)
will not match the canonical return type of the declaration (the
canonical type of T*).
llvm-svn: 78316
2009-08-06 16:20:37 +00:00
Mike Stump
c255f3581a
More layout for virtual tables for virtual bases. Still in progress.
...
llvm-svn: 78314
2009-08-06 15:50:11 +00:00
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