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

--- Comment #2 from Sergei Trofimovich <slyfox at gcc dot gnu.org> ---
Reduced ira-build.cc down to the following:

// $ cat pp.cc.cc
typedef struct ira_object *ira_object_t;
struct ira_object {
  void *conflicts_array;
  int min, max;
};
void *ira_allocate(int);
int ira_conflict_vector_profitable_p_nbytes;
void ira_conflict_vector_profitable_p(ira_object_t obj) {
  int max(obj->max);
  if (max < obj->min)
    ira_conflict_vector_profitable_p_nbytes = max - obj->min;
}
void ira_allocate_object_conflicts(ira_object_t obj) {
  ira_conflict_vector_profitable_p(obj);
  int size((obj->max - obj->min) * sizeof 0);
  obj->conflicts_array = ira_allocate(size);
}

Reproducer:

# cat trigger.bash
#!/usr/bin/env bash

f() {
    stage3-gcc/xg++ -Bstage3-gcc -nostdinc++  -fno-PIE -g -O2 -fchecking=1
-DIN_GCC    -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -fno-PIE -c
pp.cc.cc -o pp.o -Wall "$@"
    strip --strip-debug pp.o
    sha1sum pp.o
}

[[ "$(f)" == "$(f -gtoggle)" ]] && echo EQUAL || echo DIFF

Running:

$ ./trigger.bash
DIFF

Reply via email to