On Fri, 15 Jan 1999, Daniel Jacobowitz wrote: > OK, it's not schedule-insns2 then. Try a few others if you can find > them in the docs.
yep, you were right. it's -O -fschedule-insns that causes the bug to appear. > 62 lines is great. But, can you grab the bare minimum of the necessary > definitions from glib.h and remove the #include? Then it will be self > contained. Ok, did so. I even preprocessed the file with gcc -E, tidied it up a little, and removed lots of unnecessary code. it's now 61 lines without any includes. Konstantinos Margaritis [EMAIL PROTECTED]
typedef unsigned int guint32; __extension__ typedef unsigned long long guint64; typedef struct __va_list_tag { char gpr; char fpr; char *overflow_arg_area; char *reg_save_area; } __va_list[1], __gnuc_va_list[1]; typedef char gchar; typedef int gint; typedef unsigned int guint; void g_log (); void g_free (gchar * mem); int main (int argc, char *argv[]) { gchar *string; gchar *mem[10000]; gint i; guint n_dirname_checks = 1; //NOTE I changed this into 1 myself and it had no effect on the bug. guint64 gu64t1 = (__extension__ (0x1d636b02300a7aa7ULL)), gu64t2 = (__extension__ (0xa77a0a30026b631dULL)); for (i = 0; i < n_dirname_checks; i++) { gchar *dirname =""; g_free (dirname); } (void)({ if (!((((guint64) ((((guint64) (gu64t1) & (guint64) (__extension__ (0x00000000000000ffULL))) << 56) | (((guint64) (gu64t1) & (guint64) (__extension__ (0x000000000000ff00ULL))) << 40) | (((guint64) (gu64t1) & (guint64) (__extension__ (0x0000000000ff0000ULL))) << 24) | (((guint64) (gu64t1) & (guint64) (__extension__ (0x00000000ff000000ULL))) << 8) | (((guint64) (gu64t1) & (guint64) (__extension__ (0x000000ff00000000ULL))) >> 8) | (((guint64) (gu64t1) & (guint64) (__extension__ (0x0000ff0000000000ULL))) >> 24) | (((guint64) (gu64t1) & (guint64) (__extension__ (0x00ff000000000000ULL))) >> 40) | (((guint64) (gu64t1) & (guint64) (__extension__ (0xff00000000000000ULL))) >> 56)))) == gu64t2)) g_log (); } ); string = __builtin_alloca (80); return 0; }