https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78029

            Bug ID: 78029
           Summary: ICE in maybe_record_trace_start, at dwarf2cfi.c:2285
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pthaugen at gcc dot gnu.org
                CC: dje at gcc dot gnu.org, segher at gcc dot gnu.org,
                    wschmidt at gcc dot gnu.org
  Target Milestone: ---
              Host: powerpc64*-unknown-linux-gnu
            Target: powerpc64*-unknown-linux-gnu
             Build: powerpc64*-unknown-linux-gnu

The following reduced testcase shows an ICE that occurs when building
483.xalancbmk from cpu2006.

class A {
public:
  static unsigned short fgXMLString[];
};
class B {
  bool hasFeature() const;
};
class XMLString {
public:
  static int compareIString(const unsigned short *);
  static bool equals(const unsigned short *, const unsigned short *);
};
const short chDigit_1 = 1;
const unsigned short g1_0[]{chDigit_1};
const unsigned short g2_0[]{2};
const unsigned short g3_0[]{3, 4};
const unsigned short gRange[]{};
unsigned short *hasFeature_version;
inline bool XMLString::equals(const unsigned short *p1,
                              const unsigned short *p2) {
  if (p1 == 0)
    return false;
  while (*p1 == *p2) {
    if (!*p1)
      return true;
    p1++;
    p2++;
  }
  return false;
}
bool B::hasFeature() const {
  bool anyVersion = hasFeature_version == 0 || !*hasFeature_version,
       version1_0 = XMLString::equals(hasFeature_version, g1_0);
  bool version2_0 = XMLString::equals(hasFeature_version, g2_0);
  bool version3_0 = XMLString::equals(hasFeature_version, g3_0);
  if (XMLString::compareIString(A::fgXMLString) && version2_0)
    return true;
  if (anyVersion || version1_0 || version2_0 || version3_0)
    return true;
  XMLString::compareIString(gRange);
}


$ /home/pthaugen/install/gcc/trunk/bin/g++ -s -m64 -O2 -mcpu=power6
DOMImplementationImpl.ii
DOMImplementationImpl.ii: In member function ‘bool B::hasFeature() const’:
DOMImplementationImpl.ii:41:1: internal compiler error: in
maybe_record_trace_start, at dwarf2cfi.c:2285
 }
 ^
0x10665753 maybe_record_trace_start
        /home/pthaugen/src/gcc/trunk/gcc/gcc/dwarf2cfi.c:2285
0x10665c27 create_trace_edges
        /home/pthaugen/src/gcc/trunk/gcc/gcc/dwarf2cfi.c:2379
0x10665e07 scan_trace
        /home/pthaugen/src/gcc/trunk/gcc/gcc/dwarf2cfi.c:2593
0x10666aa3 create_cfi_notes
        /home/pthaugen/src/gcc/trunk/gcc/gcc/dwarf2cfi.c:2619
0x10666aa3 execute_dwarf2_frame
        /home/pthaugen/src/gcc/trunk/gcc/gcc/dwarf2cfi.c:2977
0x10666aa3 execute
        /home/pthaugen/src/gcc/trunk/gcc/gcc/dwarf2cfi.c:3457
Please submit a full bug report,
with preprocessed source if appropriate.

Reply via email to