This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/29254] New: [4.2 Regression] verify_cgraph_node failed (inlined_to pointer is set but no predecessors found)


I get the following ICE:

tbm@coconut0:~$ /usr/lib/gcc-snapshot/bin/gcc -c -O3 -Werror qof-jvp_frame.c
cc1: warnings being treated as errors
qof-jvp_frame.c: In function 'kvp_frame_compare':
qof-jvp_frame.c:60: warning: passing argument 1 of 'kvp_frame_for_each_slot'
discards qualifiers from pointer target type
qof-jvp_frame.c: At top level:
qof-jvp_frame.c:62: error: inlined_to pointer is set but no predecessors found
kvp_value_compare/6: (inline copy in kvp_glist_compare/0)
availability:available(2) 19 insns (39 after inlining) tree externally_visible
finalized inlinable
  called by:
  calls: kvp_glist_compare/11 (inlined)
qof-jvp_frame.c:62: internal compiler error: verify_cgraph_node failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
For Debian GNU/Linux specific bug reporting instructions,
see <URL:file:///usr/share/doc/gcc-4.1/README.Bugs>.
tbm@coconut0:~$ /usr/lib/gcc-snapshot/bin/gcc -c -O3 qof-jvp_frame.c
qof-jvp_frame.c: In function 'kvp_frame_compare':
qof-jvp_frame.c:60: warning: passing argument 1 of 'kvp_frame_for_each_slot'
discards qualifiers from pointer target type
tbm@coconut0:~$ gcc-4.1 -c -O3 -Werror qof-jvp_frame.c
tbm@coconut0:~$

Testcase:

typedef int gint;
typedef void *gpointer;
typedef struct _GList GList;
struct _GList
{
  gpointer data;
}
__fsid_t;
typedef struct _KvpFrame KvpFrame;
typedef struct _KvpValue KvpValue;
typedef enum
{
    KVP_TYPE_GLIST,
}
KvpValueType;
struct _KvpValue
{
  KvpValueType type;
  union
  {
    GList *list;
  }
  value;
};
kvp_glist_compare (const GList * list1, const GList * list2)
{
  const GList *lp1;
  const GList *lp2;
  while (lp1 && lp2)
    {
      KvpValue *v1 = (KvpValue *) lp1->data;
      KvpValue *v2 = (KvpValue *) lp2->data;
      gint vcmp = kvp_value_compare (v1, v2);
    }
}
kvp_frame_for_each_slot (KvpFrame * f,
                         void (*proc) (const char *key, KvpValue * value,
                                       gpointer data), gpointer data)
{
}
kvp_value_compare (const KvpValue * kva, const KvpValue * kvb)
{
  switch (kva->type)
    {
    case KVP_TYPE_GLIST:
      return kvp_glist_compare (kva->value.list, kvb->value.list);
    }
}
typedef struct
{
}
kvp_frame_cmp_status;
static void
kvp_frame_compare_helper (const char *key, KvpValue * val, gpointer data)
{
}
kvp_frame_compare (const KvpFrame * fa, const KvpFrame * fb)
{
  kvp_frame_cmp_status status;
  kvp_frame_for_each_slot ((KvpFrame *) fb, kvp_frame_compare_helper,
                           &status);
}


-- 
           Summary: [4.2 Regression] verify_cgraph_node failed (inlined_to
                    pointer is set but no predecessors found)
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tbm at cyrius dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29254


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]