/* for a given tree (structure), generate all neighbours according to moveset */ void move_it (void) { int i; GSV.currE = energy_of_struct_pt(GAV.farbe, pairList, typeList, aliasList)/100.; if ( GTV.noLP ) { /* canonical neighbours only */ inb_nolp(wurzl); for (i = 0; i < GSV.len; i++) { if (pairList[i+1]>i+1) { inb_nolp(rl+i); /* insert pair neighbours */ dnb_nolp(rl+i); /* delete pair neighbour */ } } } else { /* all neighbours */ inb(wurzl); for (i = 0; i < GSV.len; i++) { if (pairList[i+1]>i+1) { inb(rl+i); /* insert pair neighbours */ dnb(rl+i); /* delete pair neighbour */ if ( GTV.noShift == 0 ) fnb(rl+i); } } } }
void makesplitpalette(RGB (*fna)(float),RGB (*fnb)(float)) { #ifdef ALLEGRO for (int i=0;i<=127;i++) set_color(i,&(fna((float)i/127.0))); for (int i=128;i<=255;i++) set_color(i,&(fnb((float)(i-128)/127.0))); #endif }
int foo () { void (*fna) (void) = (void (*) (void)) a; void (*fnb) (void) = (void (*) (void)) b; fna (); fnb (); return a[1] == b[1]; }
void check(E *e) { int caught; // try with whole object caught = 0; try { fne(e); } catch(A *p) { abort(); } // A is ambiguous catch(D *p) { caught = 1; if (p != e) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fne(e); } catch(A *p) { abort(); } // A is ambiguous catch(B *p) { caught = 1; if (p != e) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fne(e); } catch(A *p) { abort(); } // A is ambiguous catch(C *p) { caught = 1; if (p != e) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fne(e); } catch(A *p) { abort(); } // A is ambiguous catch(AA *p) { caught = 1; if (p != e) abort();} catch(...) { abort(); } if (!caught) abort(); // try with D oject caught = 0; try { fnd((D *)e); } catch(A *p) { abort(); } // A is ambiguous catch(D *p) { caught = 1; if (p != e) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnd((D *)e); } catch(A *p) { abort(); } // A is ambiguous catch(B *p) { caught = 1; if (p != e) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnd((D *)e); } catch(A *p) { abort(); } // A is ambiguous catch(C *p) { caught = 1; if (p != e) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnd((D *)e); } catch(A *p) { abort(); } // A is ambiguous catch(AA *p) { caught = 1; if (p != e) abort();} catch(...) { abort(); } if (!caught) abort(); // try with an A object caught = 0; try { fna((B *)e); } catch(B *p) { abort(); } // throw type is static type catch(A *p) { caught = 1; if (p != (B *)e) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fna((C *)e); } catch(C *p) { abort(); } // throw type is static type catch(A *p) { caught = 1; if (p != (C *)e) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fna((AA *)e); } catch(AA *p) { abort(); } // throw type is static type catch(A *p) { caught = 1; if (p != (AA *)e) abort();} catch(...) { abort(); } if (!caught) abort(); // try with B object caught = 0; try { fnb((B *)e); } catch(A *p) { caught = 1; if (p != (B *)e) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnb((B *)e); } catch(B *p) { caught = 1; if (p != e) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnb((B *)e); } catch(C *p) { abort(); } catch(D *p) { abort(); } catch(...) { caught =1; } if (!caught) abort(); // try with C object caught = 0; try { fnc((C *)e); } catch(A *p) { caught = 1; if (p != (C *)e) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnc((C *)e); } catch(C *p) { caught = 1; if (p != e) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnc((C *)e); } catch(B *p) { abort(); } catch(D *p) { abort(); } catch(...) { caught =1; } if (!caught) abort(); // try with AA object caught = 0; try { fnaa((AA *)e); } catch(A *p) { caught = 1; if (p != (AA *)e) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnaa((AA *)e); } catch(AA *p) { caught = 1; if (p != e) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnaa((AA *)e); } catch(C *p) { abort(); } catch(B *p) { abort(); } catch(D *p) { abort(); } catch(...) { caught =1; } if (!caught) abort(); return; }
void check(F *f) { int caught; // try with whole object caught = 0; try { fnf(f); } catch(A *p) { abort(); } // A is ambiguous catch(F *p) { caught = 1; if (p != f) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnf(f); } catch(A *p) { abort(); } // A is ambiguous catch(E *p) { caught = 1; if (p != f) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnf(f); } catch(A *p) { abort(); } // A is ambiguous catch(D *p) { caught = 1; if (p != f) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnf(f); } catch(A *p) { abort(); } // A is ambiguous catch(B *p) { caught = 1; if (p != f) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnf(f); } catch(A *p) { abort(); } // A is ambiguous catch(C *p) { caught = 1; if (p != f) abort();} catch(...) { abort(); } if (!caught) abort(); // try with D object caught = 0; try { fnd(f); } catch(A *p) { abort(); } // A is ambiguous catch(D *p) { caught = 1; if (p != f) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnd(f); } catch(A *p) { abort(); } // A is ambiguous catch(B *p) { caught = 1; if (p != f) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnd(f); } catch(A *p) { abort(); } // A is ambiguous catch(C *p) { caught = 1; if (p != f) abort();} catch(...) { abort(); } if (!caught) abort(); // try with E object caught = 0; try { fne(f); } catch(A *p) { caught = 1; if (p != (E *)f) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fne(f); } catch(E *p) { caught = 1; if (p != f) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fne(f); } catch(F *p) { abort(); } catch(...) { caught = 1; } if (!caught) abort(); // try with an A object caught = 0; try { fna((B *)f); } catch(B *p) { abort(); } // throw type is static type catch(A *p) { caught = 1; if (p != (B *)f) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fna((C *)f); } catch(C *p) { abort(); } // throw type is static type catch(A *p) { caught = 1; if (p != (C *)f) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fna((E *)f); } catch(E *p) { abort(); } // throw type is static type catch(A *p) { caught = 1; if (p != (E *)f) abort();} catch(...) { abort(); } if (!caught) abort(); // try with B object caught = 0; try { fnb((B *)f); } catch(A *p) { caught = 1; if (p != (B *)f) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnb((B *)f); } catch(B *p) { caught = 1; if (p != f) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnb((B *)f); } catch(C *p) { abort(); } catch(D *p) { abort(); } catch(...) { caught =1; } if (!caught) abort(); // try with C object caught = 0; try { fnc((C *)f); } catch(A *p) { caught = 1; if (p != (C *)f) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnc((C *)f); } catch(C *p) { caught = 1; if (p != f) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnc((C *)f); } catch(B *p) { abort(); } catch(D *p) { abort(); } catch(...) { caught =1; } if (!caught) abort(); return; }
void foo (int a, int b, int n, int p, int *ptr, struct s *sptr, int *ap, int *bp, int **cp, char *ans, int (*fnp[8])(int)) { int len; a = a++; /* { dg-warning "undefined" "sequence point warning" } */ a = --a; /* { dg-warning "undefined" "sequence point warning" } */ a = ++a + b; /* { dg-warning "undefined" "sequence point warning" } */ a = a-- + b; /* { dg-warning "undefined" "sequence point warning" } */ ap[n] = bp[n++]; /* { dg-warning "undefined" "sequence point warning" } */ ap[--n] = bp[n]; /* { dg-warning "undefined" "sequence point warning" } */ ap[++n] = bp[--n]; /* { dg-warning "undefined" "sequence point warning" } */ cp[n][n] = cp[n][n]++; /* { dg-warning "undefined" "sequence point warning" } */ cp[n][p] = cp[n][n++]; /* { dg-warning "undefined" "sequence point warning" } */ *ptr++ = (uintptr_t)ptr++; /* { dg-warning "undefined" "sequence point warning" } */ sptr->a = sptr->a++; /* { dg-warning "undefined" "sequence point warning" } */ sptr->a = (uintptr_t)(sptr++); /* { dg-warning "undefined" "sequence point warning" } */ *ptr++ = fn (*ptr); /* { dg-warning "undefined" "sequence point warning" } */ a = b = a++; /* { dg-warning "undefined" "sequence point warning" } */ b = a = --b; /* { dg-warning "undefined" "sequence point warning" } */ a = 1 + (a = 1); /* { dg-warning "undefined" "sequence point warning" } */ a = (a = b); /* { dg-warning "undefined" "sequence point warning" } */ a = (a = b) + 1; /* { dg-warning "undefined" "sequence point warning" } */ a = (bp[a++] = b) + 1; /* { dg-warning "undefined" "sequence point warning" } */ a = b++ * b++; /* { dg-warning "undefined" "sequence point warning" } */ a = fnb (b++, b++); /* { dg-warning "undefined" "sequence point warning" } */ a = (*fnp[b++]) (b++); /* { dg-warning "undefined" "sequence point warning" } */ a = (*fnp[b]) (b++); /* { dg-warning "undefined" "sequence point warning" } */ a = (*fnp[b++]) (b); /* { dg-warning "undefined" "sequence point warning" } */ *ap = fnc (ap++); /* { dg-warning "undefined" "sequence point warning" } */ (a += b) + (a += n); /* { dg-warning "undefined" "sequence point warning" } */ a = (b, b++) + (b++, b); /* { dg-warning "undefined" "sequence point warning" } */ ap[a++] += a; /* { dg-warning "undefined" "sequence point warning" } */ ap[a+=1] += a; /* { dg-warning "undefined" "sequence point warning" } */ ap[a++] += a++; /* { dg-warning "undefined" "sequence point warning" } */ ap[a+=1] += a++; /* { dg-warning "undefined" "sequence point warning" } */ a = a++, b = a; /* { dg-warning "undefined" "sequence point warning" } */ b = a, a = a++; /* { dg-warning "undefined" "sequence point warning" } */ a = (b++ ? n : a) + b; /* { dg-warning "undefined" "sequence point warning" } */ b ? a = a++ : a; /* { dg-warning "undefined" "sequence point warning" } */ b && (a = a++); /* { dg-warning "undefined" "sequence point warning" } */ (a = a++) && b; /* { dg-warning "undefined" "sequence point warning" } */ b, (a = a++); /* { dg-warning "undefined" "sequence point warning" } */ (a = a++), b; /* { dg-warning "undefined" "sequence point warning" } */ a ^= b ^= a ^= b; /* { dg-warning "undefined" "sequence point warning" } */ a = a; /* { dg-bogus "undefined" "bogus sequence point warning" } */ a = (a++ && 4); /* { dg-bogus "undefined" "bogus sequence point warning" } */ a = ! (a++ && 4); /* { dg-bogus "undefined" "bogus sequence point warning" } */ a = - (a++ && 4); /* { dg-bogus "undefined" "bogus sequence point warning" } */ a = (double) (a++ && 4); /* { dg-bogus "undefined" "bogus sequence point warning" } */ len = sprintf (ans, "%d", len++); /* { dg-bogus "undefined" "bogus sequence point warning" } */ a = fn (a++); /* { dg-bogus "undefined" "bogus sequence point warning" } */ b++, (b + b); /* { dg-bogus "undefined" "bogus sequence point warning" } */ (a = b++), (a = b++); /* { dg-bogus "undefined" "bogus sequence point warning" } */ a = (b++, b++); /* { dg-bogus "undefined" "bogus sequence point warning" } */ a = b++ && b++; /* { dg-bogus "undefined" "bogus sequence point warning" } */ a = b++ || b++; /* { dg-bogus "undefined" "bogus sequence point warning" } */ a = (b++ ? b++ : a); /* { dg-bogus "undefined" "bogus sequence point warning" } */ a = (b++ ? a : b++); /* { dg-bogus "undefined" "bogus sequence point warning" } */ ap[a++] += bp[b]; /* { dg-bogus "undefined" "bogus sequence point warning" } */ ap[a += 1] += 1; /* { dg-bogus "undefined" "bogus sequence point warning" } */ *ptr < 128 ? *ptr++ : *(ptr += 2); /* { dg-bogus "undefined" "bogus sequence point warning" } */ /* The following will be represented internally with a tree consisting of many duplicated SAVE_EXPRs. This caused the previous version of the sequence point warning code to fail by running out of virtual memory. */ a = ((b & 1 ? 21 : 0) | (b & 2 ? 22 : 0) | (b & 3 ? 23 : 0) | (b & 4 ? 24 : 0) | (b & 5 ? 25 : 0) | (b & 6 ? 26 : 0) | (b & 7 ? 27 : 0) | (b & 8 ? 28 : 0) | (b & 9 ? 29 : 0) | (b & 10 ? 30 : 0) | (b & 11 ? 31 : 0) | (b & 12 ? 32 : 0) | (b & 13 ? 1 : 0) | (b & 14 ? 2 : 0) | (b & 15 ? 3 : 0) | (b & 16 ? 4 : 0) | (b & 17 ? 5 : 0) | (b & 18 ? 6 : 0) | (b & 19 ? 7 : 0) | (b & 20 ? 8 : 0) | (b & 21 ? 9 : 0)); }
void check(D *d) { int caught; // try with whole object caught = 0; try { fnd(d); } catch(A *p) { abort(); } // A is ambiguous catch(D *p) { caught = 1; if (p != d) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnd(d); } catch(A *p) { abort(); } // A is ambiguous catch(B *p) { caught = 1; if (p != d) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnd(d); } catch(A *p) { abort(); } // A is ambiguous catch(C *p) { caught = 1; if (p != d) abort();} catch(...) { abort(); } if (!caught) abort(); // try with an A object caught = 0; try { fna((B *)d); } catch(B *p) { abort(); } // throw type is static type catch(A *p) { caught = 1; if (p != (B *)d) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fna((A *)(C *)d); } catch(C *p) { abort(); } // throw type is static type catch(A *p) { caught = 1; if (p != (A *)(C *)d) abort();} catch(...) { abort(); } if (!caught) abort(); // try with B object caught = 0; try { fnb((B *)d); } catch(A *p) { caught = 1; if (p != (B *)d) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnb((B *)d); } catch(B *p) { caught = 1; if (p != d) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnb((B *)d); } catch(C *p) { abort(); } catch(D *p) { abort(); } catch(...) { caught =1; } if (!caught) abort(); caught = 0; try { fnc((C *)d); } catch(A *p) { abort();} catch(C *p) { caught = 1; if (p != d) abort();} catch(...) { abort(); } if (!caught) abort(); caught = 0; try { fnc((C *)d); } catch(B *p) { abort(); } catch(D *p) { abort(); } catch(...) { caught =1; } if (!caught) abort(); return; }