* Fix PR48484
@ 2011-04-08 22:08 Xinliang David Li
2011-04-09 15:42 ` Richard Guenther
0 siblings, 1 reply; 2+ messages in thread
From: Xinliang David Li @ 2011-04-08 22:08 UTC (permalink / raw)
To: GCC Patches; +Cc: Jakub Jelinek
[-- Attachment #1: Type: text/plain, Size: 381 bytes --]
Hi, this patch fixes the test failure. OK after bootstrap and regression test?
Thanks,
David
2011-04-08 Xinliang David Li <davidxl@google.com>
PR tree-optimization/PR48484
* tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
has_valid_pred lazily
2011-04-08 Xinliang David Li <davidxl@google.com>
PR tree-optimization/48484
* g++.dg/pr48484.C: New test.
[-- Attachment #2: uninit_pred_ice.p --]
[-- Type: text/x-pascal, Size: 2845 bytes --]
Index: tree-ssa-uninit.c
===================================================================
--- tree-ssa-uninit.c (revision 172211)
+++ tree-ssa-uninit.c (working copy)
@@ -349,9 +349,6 @@ convert_control_dep_chain_into_preds (VE
if (num_chains == 0 || num_chains >= MAX_NUM_CHAINS)
return false;
- /* Now convert CD chains into predicates */
- has_valid_pred = true;
-
/* Now convert the control dep chain into a set
of predicates. */
*preds = XCNEWVEC (VEC(use_pred_info_t, heap) *,
@@ -412,6 +409,7 @@ convert_control_dep_chain_into_preds (VE
one_pred->cond = cond_stmt;
one_pred->invert = !!(e->flags & EDGE_FALSE_VALUE);
VEC_safe_push (use_pred_info_t, heap, (*preds)[i], one_pred);
+ has_valid_pred = true;
}
if (!has_valid_pred)
Index: testsuite/g++.dg/pr48484.C
===================================================================
--- testsuite/g++.dg/pr48484.C (revision 0)
+++ testsuite/g++.dg/pr48484.C (revision 0)
@@ -0,0 +1,105 @@
+/* { dg-do compile } */
+/* { dg-options "-O -finline-functions -finline-small-functions -Wuninitialized" } */
+
+
+struct SQObjectPtr
+{
+ int _type;
+ SQObjectPtr operator = (long);
+};
+struct SQObjectPtrVec
+{
+ SQObjectPtr fff (unsigned);
+ SQObjectPtr *_vals;
+};
+
+struct SQInstruction
+{
+ int _arg1;
+ unsigned op;
+ unsigned _arg0;
+ unsigned _arg2;
+};
+struct SQVM
+{
+ struct CallInfo
+ {
+ SQInstruction *_ip;
+ };
+ bool
+ Execute (SQObjectPtr &, long, long, long, SQObjectPtr &, unsigned, int);
+ bool
+ FOREACH_OP
+ (SQObjectPtr
+ &, SQObjectPtr &, SQObjectPtr &, SQObjectPtr &, long, int, int &);
+ SQObjectPtrVec _stack;
+ CallInfo *ci;
+ long _nnativecalls;
+ bool ShouldSuspend ();
+};
+struct AutoDec
+{
+ AutoDec (long *);
+ ~AutoDec ();
+};
+bool
+ SQVM::FOREACH_OP
+ (SQObjectPtr
+ &
+ o1,
+ SQObjectPtr & o2, SQObjectPtr &, SQObjectPtr & o4, long, int, int &jump)
+{
+ long
+ nrefidx = 0;
+ switch (o1._type)
+ {
+ case 0x02000000:
+ o4 = nrefidx;
+ jump = 1;
+ return true;
+ case 0x00000080:
+ {
+ long
+ idx = 10;
+ o2 = idx;
+ jump = 0;
+ }
+ }
+}
+
+bool
+ SQVM::Execute
+ (SQObjectPtr &, long, long, long, SQObjectPtr &, unsigned, int)
+{
+ AutoDec
+ ad (&_nnativecalls);
+ for (;;)
+ {
+ if (ShouldSuspend ())
+ return true;
+ SQInstruction
+ _i_ = *ci->_ip;
+ switch (_i_.op)
+ {
+ case 0:
+ {
+ int
+ tojump;
+
+ FOREACH_OP
+ (_stack._vals
+ [_i_._arg0],
+ _stack._vals
+ [_i_._arg2],
+ _stack._vals
+ [_i_._arg2],
+ _stack._vals[_i_._arg2], _i_._arg2, _i_._arg1, tojump);
+
+ ci += tojump; /* { dg-warning "uninitialized" "warning" } */
+ }
+ case 1:
+ _stack.fff (_i_._arg1);
+ }
+ }
+
+}
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Fix PR48484
2011-04-08 22:08 Fix PR48484 Xinliang David Li
@ 2011-04-09 15:42 ` Richard Guenther
0 siblings, 0 replies; 2+ messages in thread
From: Richard Guenther @ 2011-04-09 15:42 UTC (permalink / raw)
To: Xinliang David Li; +Cc: GCC Patches, Jakub Jelinek
On Sat, Apr 9, 2011 at 12:08 AM, Xinliang David Li <davidxl@google.com> wrote:
> Hi, this patch fixes the test failure. OK after bootstrap and regression test?
Ok.
Thanks,
Richard.
> Thanks,
>
> David
>
>
> 2011-04-08 Xinliang David Li <davidxl@google.com>
>
> PR tree-optimization/PR48484
> * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
> has_valid_pred lazily
>
> 2011-04-08 Xinliang David Li <davidxl@google.com>
>
> PR tree-optimization/48484
> * g++.dg/pr48484.C: New test.
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-04-09 15:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-08 22:08 Fix PR48484 Xinliang David Li
2011-04-09 15:42 ` Richard Guenther
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).