tree-ssa.c (verify_ssa): Verify phi arguments only contain renamed names.
authorDaniel Berlin <dberlin@dberlin.org>
Tue, 5 Oct 2004 13:57:06 +0000 (13:57 +0000)
committerDaniel Berlin <dberlin@gcc.gnu.org>
Tue, 5 Oct 2004 13:57:06 +0000 (13:57 +0000)
2004-10-05  Daniel Berlin  <dberlin@dberlin.org>

* tree-ssa.c (verify_ssa): Verify phi arguments only
contain renamed names.

From-SVN: r88554

gcc/ChangeLog
gcc/tree-ssa.c

index 0887fe276e914dab9a9b5d0fc2140585631f0c56..63c93cedd23fb5061d4be3c7cb7d507a312981db 100644 (file)
@@ -1,3 +1,8 @@
+2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa.c (verify_ssa): Verify phi arguments only
+       contain renamed names.
+
 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
 
        * config/rs6000/linux.h: Formatting, whitespace.
index 1ddaf7d3e660a3b640aa6e4e1c75d8d6027cec1b..4b79989d50201f95960ebab03d1031a59386d2ce 100644 (file)
@@ -541,9 +541,22 @@ verify_ssa (void)
       block_stmt_iterator bsi;
 
       for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
-       if (verify_def (bb, definition_block, PHI_RESULT (phi), phi,
+       {
+         int i;
+         if (verify_def (bb, definition_block, PHI_RESULT (phi), phi,
                        !is_gimple_reg (PHI_RESULT (phi))))
          goto err;
+         for (i = 0; i < PHI_NUM_ARGS (phi); i++)
+           {
+             tree def = PHI_ARG_DEF (phi, i);
+             if (TREE_CODE (def) != SSA_NAME && !is_gimple_min_invariant (def))
+               {
+                 error ("PHI argument is not SSA_NAME, or invariant");
+                 print_generic_stmt (stderr, phi, TDF_VOPS);
+                 goto err;
+               }
+           }
+       }
 
       for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
        {