OSDN Git Service

PR debug/45673
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 8 Oct 2010 04:40:59 +0000 (04:40 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 8 Oct 2010 04:40:59 +0000 (04:40 +0000)
PR debug/45604
PR debug/45419
PR debug/45408
* tree-pretty-print.c (dump_generic_node): Explicitly dump the
type of MEM_REFs to INTEGER_CSTs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165149 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-pretty-print.c

index 403c825..3525466 100644 (file)
@@ -1,3 +1,12 @@
+2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/45673
+       PR debug/45604
+       PR debug/45419
+       PR debug/45408
+       * tree-pretty-print.c (dump_generic_node): Explicitly dump the
+       type of MEM_REFs to INTEGER_CSTs.
+
 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
 
        * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
index 6440f80..8ec2ded 100644 (file)
@@ -801,6 +801,10 @@ dump_generic_node (pretty_printer *buffer, tree node, int spc, int flags,
     case MEM_REF:
       {
        if (integer_zerop (TREE_OPERAND (node, 1))
+           /* Dump the types of INTEGER_CSTs explicitly, for we can't
+              infer them and MEM_ATTR caching will share MEM_REFs
+              with differently-typed op0s.  */
+           && TREE_CODE (TREE_OPERAND (node, 0)) != INTEGER_CST
            /* Same pointer types, but ignoring POINTER_TYPE vs.
               REFERENCE_TYPE.  */
            && (TREE_TYPE (TREE_TYPE (TREE_OPERAND (node, 0)))
@@ -1163,6 +1167,10 @@ dump_generic_node (pretty_printer *buffer, tree node, int spc, int flags,
              || (TREE_CODE (op0) == MEM_REF
                  && TREE_CODE (TREE_OPERAND (op0, 0)) != ADDR_EXPR
                  && integer_zerop (TREE_OPERAND (op0, 1))
+                 /* Dump the types of INTEGER_CSTs explicitly, for we
+                    can't infer them and MEM_ATTR caching will share
+                    MEM_REFs with differently-typed op0s.  */
+                 && TREE_CODE (TREE_OPERAND (op0, 0)) != INTEGER_CST
                  /* Same pointer types, but ignoring POINTER_TYPE vs.
                     REFERENCE_TYPE.  */
                  && (TREE_TYPE (TREE_TYPE (TREE_OPERAND (op0, 0)))