/* { dg-do run } */ | |
/* { dg-options "-O2" } */ | |
/* Execution test for converting VIEW_CONVERT_EXPR. */ | |
struct cpp_num { | |
bool f; | |
}; | |
extern cpp_num __attribute__((noinline)) | |
foo (cpp_num lhs, | |
cpp_num rhs) | |
{ | |
lhs.f = lhs.f || rhs.f; | |
return lhs; | |
} | |
cpp_num lhs, rhs, r; | |
int main () | |
{ | |
lhs.f = false; | |
rhs.f = false; | |
r = foo (lhs, rhs); | |
if (r.f) | |
__builtin_abort (); | |
lhs.f = false; | |
rhs.f = true; | |
r = foo (lhs, rhs); | |
if (!r.f) | |
__builtin_abort (); | |
} |