]> granicus.if.org Git - clang/log
clang
15 years agoRemove use of uninitized variable.
Fariborz Jahanian [Sat, 8 Aug 2009 00:59:58 +0000 (00:59 +0000)]
Remove use of uninitized variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78448 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSynthesize copying of non-static data members with
Fariborz Jahanian [Sat, 8 Aug 2009 00:15:41 +0000 (00:15 +0000)]
Synthesize copying of non-static data members with
non-trivial copy constructors.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78445 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSynthesized copy constructor now generates code for
Fariborz Jahanian [Fri, 7 Aug 2009 23:51:33 +0000 (23:51 +0000)]
Synthesized copy constructor now generates code for
copying non-virtual base classes which have non-trivial
constructor. Work in progress.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78436 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a CK_ArrayToPointerDecay cast kind.
Anders Carlsson [Fri, 7 Aug 2009 23:48:20 +0000 (23:48 +0000)]
Add a CK_ArrayToPointerDecay cast kind.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78434 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd CK_ToUnion and use it for aggregate expression codegen.
Anders Carlsson [Fri, 7 Aug 2009 23:22:37 +0000 (23:22 +0000)]
Add CK_ToUnion and use it for aggregate expression codegen.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78429 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMore CastKind work.
Anders Carlsson [Fri, 7 Aug 2009 22:21:05 +0000 (22:21 +0000)]
More CastKind work.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78415 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoJust add global scope to the associated namespaces set instead of tracking it
John McCall [Fri, 7 Aug 2009 22:18:02 +0000 (22:18 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78414 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd vbase offsets to the vtable. Wow, having an rbegin was so
Mike Stump [Fri, 7 Aug 2009 21:54:03 +0000 (21:54 +0000)]
Add vbase offsets to the vtable.  Wow, having an rbegin was so
fortuitous.  WIP.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78413 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd rbegin and rend for virtual bases, might come in handy some day.
Mike Stump [Fri, 7 Aug 2009 21:44:39 +0000 (21:44 +0000)]
Add rbegin and rend for virtual bases, might come in handy some day.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78412 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix: <rdar://problem/7075531> static analyzer wrongly detects unused ivars used in...
Ted Kremenek [Fri, 7 Aug 2009 21:13:23 +0000 (21:13 +0000)]
Fix: <rdar://problem/7075531> static analyzer wrongly detects unused ivars used in blocks

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78409 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoConstify some pointers. No functionality change.
Ted Kremenek [Fri, 7 Aug 2009 20:55:20 +0000 (20:55 +0000)]
Constify some pointers.  No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78407 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMore synthesis of copy constructors. Work in progress.
Fariborz Jahanian [Fri, 7 Aug 2009 20:22:40 +0000 (20:22 +0000)]
More synthesis of copy constructors. Work in progress.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78402 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix typo.
Mike Stump [Fri, 7 Aug 2009 20:14:05 +0000 (20:14 +0000)]
Fix typo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78401 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd ability to generate vcall offsets for primary virtual base.
Mike Stump [Fri, 7 Aug 2009 19:00:50 +0000 (19:00 +0000)]
Add ability to generate vcall offsets for primary virtual base.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78396 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUse the correct cast kind as suggested by Doug.
Anders Carlsson [Fri, 7 Aug 2009 18:45:49 +0000 (18:45 +0000)]
Use the correct cast kind as suggested by Doug.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78395 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix some const_cast issues. This is the beginning of the rabbit hole.
Mike Stump [Fri, 7 Aug 2009 18:05:12 +0000 (18:05 +0000)]
Fix some const_cast issues.  This is the beginning of the rabbit hole.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78393 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPR3333: warn when shifting by invalid amount
Ryan Flynn [Fri, 7 Aug 2009 16:20:20 +0000 (16:20 +0000)]
PR3333: warn when shifting by invalid amount

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78385 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSeparate Stmt::Destroy into the entrypoint for destroying a statement
Douglas Gregor [Fri, 7 Aug 2009 06:08:38 +0000 (06:08 +0000)]
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).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78375 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoadd support for opensuse 11.1/11.2 search paths, patch by Stefan Reinauer
Chris Lattner [Fri, 7 Aug 2009 05:28:24 +0000 (05:28 +0000)]
add support for opensuse 11.1/11.2 search paths, patch by Stefan Reinauer
and Carl-Daniel Hailfinger!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78368 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd support for vcall generation for vtables for virtual bases. WIP.
Mike Stump [Thu, 6 Aug 2009 23:48:32 +0000 (23:48 +0000)]
Add support for vcall generation for vtables for virtual bases.  WIP.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78357 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPatch toward synthesizing copy constructors.
Fariborz Jahanian [Thu, 6 Aug 2009 23:38:16 +0000 (23:38 +0000)]
Patch toward synthesizing copy constructors.
Work in progress.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78355 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a few more false positives involving RegionStore and unions, but this time
Ted Kremenek [Thu, 6 Aug 2009 22:33:36 +0000 (22:33 +0000)]
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().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78349 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMinor refactoring to introduce a new transformation function,
Douglas Gregor [Thu, 6 Aug 2009 22:17:10 +0000 (22:17 +0000)]
Minor refactoring to introduce a new transformation function,
TransformStmt, into the tree transformer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78347 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAlmost forgot to turn on 32-bit test.
Mike Stump [Thu, 6 Aug 2009 22:02:55 +0000 (22:02 +0000)]
Almost forgot to turn on 32-bit test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78346 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTestcase for recent checkin.
Mike Stump [Thu, 6 Aug 2009 21:53:24 +0000 (21:53 +0000)]
Testcase for recent checkin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78344 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAlso generate the rtti field for virtual bases for vtables. Turn on
Mike Stump [Thu, 6 Aug 2009 21:49:36 +0000 (21:49 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78343 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a couple false positive "uninitialized value" warnings with RegionStore
Ted Kremenek [Thu, 6 Aug 2009 21:43:54 +0000 (21:43 +0000)]
Fix a couple false positive "uninitialized value" warnings with RegionStore
involving reasoning about unions (which we don't handle yet).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78342 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDrop the friend-inner-class diagnostic from an extwarn to an ext and don't
John McCall [Thu, 6 Aug 2009 21:21:21 +0000 (21:21 +0000)]
Drop the friend-inner-class diagnostic from an extwarn to an ext and don't
guard its report on GNUMode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78338 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a simple tool for comparing two static analyzer runs, primarily for use from
Daniel Dunbar [Thu, 6 Aug 2009 21:15:33 +0000 (21:15 +0000)]
Add a simple tool for comparing two static analyzer runs, primarily for use from
buildbot.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78336 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPermit a class to friend its members in C++0x, without restriction.
John McCall [Thu, 6 Aug 2009 20:49:32 +0000 (20:49 +0000)]
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).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78332 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSet and use Elidable in elimination of copy ctors.
Fariborz Jahanian [Thu, 6 Aug 2009 19:12:38 +0000 (19:12 +0000)]
Set and use Elidable in elimination of copy ctors.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78331 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoLayout the primary base first in the vtable.
Mike Stump [Thu, 6 Aug 2009 18:05:22 +0000 (18:05 +0000)]
Layout the primary base first in the vtable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78327 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAfter reporting ill-formed copy constructor(12.8.p3)
Fariborz Jahanian [Thu, 6 Aug 2009 17:22:51 +0000 (17:22 +0000)]
After reporting ill-formed copy constructor(12.8.p3)
don't recurs and crash.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78323 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agos/ccc/clang/
Daniel Dunbar [Thu, 6 Aug 2009 16:47:53 +0000 (16:47 +0000)]
s/ccc/clang/

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78320 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoWhen we encounter a dependent type that was parsed before we know that
Douglas Gregor [Thu, 6 Aug 2009 16:20:37 +0000 (16:20 +0000)]
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*).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78316 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMore layout for virtual tables for virtual bases. Still in progress.
Mike Stump [Thu, 6 Aug 2009 15:50:11 +0000 (15:50 +0000)]
More layout for virtual tables for virtual bases.  Still in progress.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78314 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoLet's remember we want better codegen for these.
Mike Stump [Thu, 6 Aug 2009 14:16:19 +0000 (14:16 +0000)]
Let's remember we want better codegen for these.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78310 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTestcase for a recent checkin for vbase layout ordering. I hate to
Mike Stump [Thu, 6 Aug 2009 14:12:47 +0000 (14:12 +0000)]
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...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78309 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoLayout virtual bases. Work in progress.
Mike Stump [Thu, 6 Aug 2009 13:41:24 +0000 (13:41 +0000)]
Layout virtual bases.  Work in progress.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78308 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd link to LLVM's Getting Started page.
Anton Korobeynikov [Thu, 6 Aug 2009 13:00:08 +0000 (13:00 +0000)]
Add link to LLVM's Getting Started page.
Patch by John Thompson!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78307 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSilence gcc warning about non-virtual destructors.
Benjamin Kramer [Thu, 6 Aug 2009 12:59:58 +0000 (12:59 +0000)]
Silence gcc warning about non-virtual destructors.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78306 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoI have a dream, one day, we won't need to do this.
Mike Stump [Thu, 6 Aug 2009 12:56:50 +0000 (12:56 +0000)]
I have a dream, one day, we won't need to do this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78305 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix spell-o.
Mike Stump [Thu, 6 Aug 2009 12:52:13 +0000 (12:52 +0000)]
Fix spell-o.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78303 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoI forgot adding this header for r78298.
Zhongxing Xu [Thu, 6 Aug 2009 12:49:15 +0000 (12:49 +0000)]
I forgot adding this header for r78298.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78302 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoLast step of template cleanup: merge *BuilderImpl to *Builder.
Zhongxing Xu [Thu, 6 Aug 2009 12:48:26 +0000 (12:48 +0000)]
Last step of template cleanup: merge *BuilderImpl to *Builder.
Some Builders need further cleanup.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78301 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCore analysis engine template cleanup step 2:
Zhongxing Xu [Thu, 6 Aug 2009 10:00:15 +0000 (10:00 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78298 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix comment.
Zhongxing Xu [Thu, 6 Aug 2009 09:22:08 +0000 (09:22 +0000)]
Fix comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78296 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement transformation of template names within the generic tree
Douglas Gregor [Thu, 6 Aug 2009 06:41:21 +0000 (06:41 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78292 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCore analysis engine template cleanup step 2:
Zhongxing Xu [Thu, 6 Aug 2009 06:28:40 +0000 (06:28 +0000)]
Core analysis engine template cleanup step 2:
  merge ExplodedGraphImpl and ExplodedGraph.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78291 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate test case.
Ted Kremenek [Thu, 6 Aug 2009 06:26:40 +0000 (06:26 +0000)]
Update test case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78290 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement transformation of nested-name-specifiers within the general
Douglas Gregor [Thu, 6 Aug 2009 05:28:30 +0000 (05:28 +0000)]
Implement transformation of nested-name-specifiers within the general
tree transformation. Template instantiation uses this general
transformation rather than implementing its own transformation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78286 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix typo reported in <rdar://problem/7121409>.
Ted Kremenek [Thu, 6 Aug 2009 05:01:36 +0000 (05:01 +0000)]
Fix typo reported in <rdar://problem/7121409>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78285 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRefactor RegionStoreManager::RemoveDeadBindings to also scan the bindings of LazyComp...
Ted Kremenek [Thu, 6 Aug 2009 04:50:20 +0000 (04:50 +0000)]
Refactor RegionStoreManager::RemoveDeadBindings to also scan the bindings of LazyCompoundSVals.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78284 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPredefine __cplusplus to the right value (199711L), except when in GNU mode.
Douglas Gregor [Thu, 6 Aug 2009 04:09:28 +0000 (04:09 +0000)]
Predefine __cplusplus to the right value (199711L), except when in GNU mode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78283 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove unimplemented methods 'AddRegionView' and 'RemoveRegionView'. They are no...
Ted Kremenek [Thu, 6 Aug 2009 03:41:56 +0000 (03:41 +0000)]
Remove unimplemented methods 'AddRegionView' and 'RemoveRegionView'.  They are no longer needed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78280 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoWhen profiling an ExplodedNode, don't re-profile the state: they have
Ted Kremenek [Thu, 6 Aug 2009 03:39:20 +0000 (03:39 +0000)]
When profiling an ExplodedNode, don't re-profile the state: they have
already been uniqued.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78279 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSupport nested-name-specifiers for C++ member access expressions, e.g.,
Douglas Gregor [Thu, 6 Aug 2009 03:17:00 +0000 (03:17 +0000)]
Support nested-name-specifiers for C++ member access expressions, e.g.,

  this->Base::foo

from James Porter!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78278 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoadd support for FreeBSD's format(printf0,x,y) attribute; allows null format string.
Ryan Flynn [Thu, 6 Aug 2009 03:00:50 +0000 (03:00 +0000)]
add support for FreeBSD's format(printf0,x,y) attribute; allows null format string.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78276 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFirst pass at friend semantics.
John McCall [Thu, 6 Aug 2009 02:15:43 +0000 (02:15 +0000)]
First pass at friend semantics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78274 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCompletely remove the code using region cast.
Zhongxing Xu [Thu, 6 Aug 2009 02:14:29 +0000 (02:14 +0000)]
Completely remove the code using region cast.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78273 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd additional library paths for Linux distros on mixed 32/64-bit systems.
Daniel Dunbar [Thu, 6 Aug 2009 01:47:11 +0000 (01:47 +0000)]
Add additional library paths for Linux distros on mixed 32/64-bit systems.
 - Patch by Carl-Daniel Hailfinger.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78272 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix locating the 'lit.cfg' file when running on only a single file in the
Daniel Dunbar [Thu, 6 Aug 2009 01:41:03 +0000 (01:41 +0000)]
Fix locating the 'lit.cfg' file when running on only a single file in the
current directory.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78271 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAs GRState seems general enough, it is time to merge some template classes
Zhongxing Xu [Thu, 6 Aug 2009 01:32:16 +0000 (01:32 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78270 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix clang breakage, CGF can be null in this context.
Daniel Dunbar [Thu, 6 Aug 2009 01:24:27 +0000 (01:24 +0000)]
Fix clang breakage, CGF can be null in this context.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78269 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement lazy "copying" of structures and arrays in RegionStore. While
Ted Kremenek [Thu, 6 Aug 2009 01:20:57 +0000 (01:20 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78268 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPatch to optimize away copy constructor call when
Fariborz Jahanian [Thu, 6 Aug 2009 01:02:49 +0000 (01:02 +0000)]
Patch to optimize away copy constructor call when
appropriate.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78267 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAlisdairM pointed out that this will likely be relaxed in C++0x, so let's
John McCall [Thu, 6 Aug 2009 00:50:46 +0000 (00:50 +0000)]
AlisdairM pointed out that this will likely be relaxed in C++0x, so let's
make a note of it in the test case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78266 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFixup object layout when we have a primary base (it goes first). Start preping for
Mike Stump [Thu, 6 Aug 2009 00:38:46 +0000 (00:38 +0000)]
Fixup object layout when we have a primary base (it goes first).  Start preping for
virtual base layout.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78265 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a test for invalid uses of non-static members from nested classes, just
John McCall [Wed, 5 Aug 2009 23:56:26 +0000 (23:56 +0000)]
Add a test for invalid uses of non-static members from nested classes, just
because I was thinking about it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78262 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate for LLVM API change.
Owen Anderson [Wed, 5 Aug 2009 23:18:46 +0000 (23:18 +0000)]
Update for LLVM API change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78259 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRefactor some bits.
Mike Stump [Wed, 5 Aug 2009 22:59:44 +0000 (22:59 +0000)]
Refactor some bits.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78254 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd another test for a recent checkin.
Mike Stump [Wed, 5 Aug 2009 22:48:36 +0000 (22:48 +0000)]
Add another test for a recent checkin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78253 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCalculate the primary base class better and use that when laying down
Mike Stump [Wed, 5 Aug 2009 22:37:18 +0000 (22:37 +0000)]
Calculate the primary base class better and use that when laying down
the vtable.  Still a work in progress.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78252 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoA blank line to separate the two blocks(per Mike comment).
Fariborz Jahanian [Wed, 5 Aug 2009 21:52:02 +0000 (21:52 +0000)]
A blank line to separate the two blocks(per Mike comment).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78248 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix -fno-omit-frame-pointer bug Eli noticed.
Benjamin Kramer [Wed, 5 Aug 2009 19:47:38 +0000 (19:47 +0000)]
Fix -fno-omit-frame-pointer bug Eli noticed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78233 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoModified test case to use FileCheck.
Fariborz Jahanian [Wed, 5 Aug 2009 19:24:33 +0000 (19:24 +0000)]
Modified test case to use FileCheck.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78231 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoGet rid of "smart" quotes. Per report on cfe-dev.
Eli Friedman [Wed, 5 Aug 2009 19:21:58 +0000 (19:21 +0000)]
Get rid of "smart" quotes.  Per report on cfe-dev.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78230 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUse feedback from RegionStoreSubRegionMap::add() to prune off adding a super
Ted Kremenek [Wed, 5 Aug 2009 19:09:24 +0000 (19:09 +0000)]
Use feedback from RegionStoreSubRegionMap::add() to prune off adding a super
region to the worklist used to create the subregion map.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78228 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix canonical type construction for function types with the noreturn
Douglas Gregor [Wed, 5 Aug 2009 19:03:35 +0000 (19:03 +0000)]
Fix canonical type construction for function types with the noreturn
attribute. Fixes PR4865.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78224 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoHandle destruction of temporaries used in default argument
Fariborz Jahanian [Wed, 5 Aug 2009 18:17:32 +0000 (18:17 +0000)]
Handle destruction of temporaries used in default argument
construction of constructor calls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78222 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPatch to improve ir-gen for constructors with default argument
Fariborz Jahanian [Wed, 5 Aug 2009 17:03:54 +0000 (17:03 +0000)]
Patch to improve ir-gen for constructors with default argument
expressions and a test case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78213 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTranslate -mcmodel=X to -code-model X and pass it to clang-cc. Patch by Pawel Worach!
Benjamin Kramer [Wed, 5 Aug 2009 14:30:52 +0000 (14:30 +0000)]
Translate -mcmodel=X to -code-model X and pass it to clang-cc. Patch by Pawel Worach!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78190 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd support for the -fno-omit-frame-pointer option. Patch by Roman Divacky!
Benjamin Kramer [Wed, 5 Aug 2009 12:11:11 +0000 (12:11 +0000)]
Add support for the -fno-omit-frame-pointer option. Patch by Roman Divacky!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78188 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a comment that trailed off
Douglas Gregor [Wed, 5 Aug 2009 05:39:53 +0000 (05:39 +0000)]
Fix a comment that trailed off

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78167 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIntroduce the canonical type smart pointers, and use them in a few places to
Douglas Gregor [Wed, 5 Aug 2009 05:36:45 +0000 (05:36 +0000)]
Introduce the canonical type smart pointers, and use them in a few places to
tighten up the static type system.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78164 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a bug in RegionStoreSubRegionManager::add() where multiple subregions wouldn...
Ted Kremenek [Wed, 5 Aug 2009 05:31:02 +0000 (05:31 +0000)]
Fix a bug in RegionStoreSubRegionManager::add() where multiple subregions wouldn't correctly get registered in the SubRegion map.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78162 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agocgobjcgnu was making invalid common globals.
Chris Lattner [Wed, 5 Aug 2009 05:25:18 +0000 (05:25 +0000)]
cgobjcgnu was making invalid common globals.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78161 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoweak globals that are const should get weak_odr linkage.
Chris Lattner [Wed, 5 Aug 2009 05:20:29 +0000 (05:20 +0000)]
weak globals that are const should get weak_odr linkage.

add a fixme about C++ const.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78159 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agordar://7119244 - globals with an explicit section specified don't get
Chris Lattner [Wed, 5 Aug 2009 04:56:58 +0000 (04:56 +0000)]
rdar://7119244 - globals with an explicit section specified don't get
common linkage.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78158 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd test case.
Zhongxing Xu [Wed, 5 Aug 2009 03:45:09 +0000 (03:45 +0000)]
Add test case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78150 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIf the UnaryOperator has non-location type, use its type to create the
Zhongxing Xu [Wed, 5 Aug 2009 02:51:59 +0000 (02:51 +0000)]
If the UnaryOperator has non-location type, use its type to create the
constant value. If the UnaryOperator has location type, create the
constant with int type and pointer width.

This fixes the bug that all pointer increments 'p++' evaluated to Unknown.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78147 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove an unused header.
Mike Stump [Wed, 5 Aug 2009 01:22:47 +0000 (01:22 +0000)]
Remove an unused header.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78140 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSupport for use of default argument in constructors.
Fariborz Jahanian [Wed, 5 Aug 2009 00:26:10 +0000 (00:26 +0000)]
Support for use of default argument in constructors.
work in progress.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78132 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMove the template instantiation logic for template arguments into the
Douglas Gregor [Tue, 4 Aug 2009 22:27:00 +0000 (22:27 +0000)]
Move the template instantiation logic for template arguments into the
general tree transformation. Also, implement template instantiation
for parameter packs.

In addition, introduce logic to enter the appropriate context for
subexpressions that are not potentially evaluated.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78114 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agovtable building for simple inheritance. Still in progress.
Mike Stump [Tue, 4 Aug 2009 21:58:42 +0000 (21:58 +0000)]
vtable building for simple inheritance.  Still in progress.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78110 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCanonicalize else.
Mike Stump [Tue, 4 Aug 2009 21:02:39 +0000 (21:02 +0000)]
Canonicalize else.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78102 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTest cases for some recent work.
Mike Stump [Tue, 4 Aug 2009 20:37:29 +0000 (20:37 +0000)]
Test cases for some recent work.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78100 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoWill I ever get used to CamelCase? Will I ever like capitols for
Mike Stump [Tue, 4 Aug 2009 20:06:48 +0000 (20:06 +0000)]
Will I ever get used to CamelCase?  Will I ever like capitols for
random variables?
  --This line, and those below, will be ignored--

M    lib/CodeGen/CGCXX.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78094 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd armv7 support.
Mike Stump [Tue, 4 Aug 2009 19:48:52 +0000 (19:48 +0000)]
Add armv7 support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78092 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRevert the fix for PR3800, it broke things.
Anders Carlsson [Tue, 4 Aug 2009 18:18:36 +0000 (18:18 +0000)]
Revert the fix for PR3800, it broke things.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78084 91177308-0d34-0410-b5e6-96231b3b80d8