1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
/* run.config*
STDOPT: +"-val-warn-copy-indeterminate=-@all -print -then -val-warn-copy-indeterminate @all -no-print"
STDOPT: #"-val-warn-copy-indeterminate=-g,-fl1,-fl2 -print -no-collapse-call-cast"
*/
extern int i;
int f () {
return i;
}
volatile int c;
int g() {
int x;
if (c) x = 1;
return x;
}
char h() {
return 1;
}
void main1 () {
if(c) {float f_ = f();}
if(c) {long long v = g();}
if(c) {
int* x = 0;;
int **p = &x;
**p = h();
}
}
float fl1 () {
float v;
*(char*)&v = 1;
return v;
}
float fl2 () {
float v;
if (c) v = 1;
return v;
}
void main2() {
double d1;
double d2;
if (c) { d1 = fl1(); }
d2 = fl2();
}
//@ assigns \result \from \nothing;
float ret_float();
void main3() {
float f1 = ret_float ();
float f2 = f1 + 1;
}
void main() {
main1();
main2();
main3();
}
|