blob: 111b33ed54892b6a1fa6a798efcbd98285f9d1f4 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-require-effective-target pthread } */
/* { dg-options "-Og --coverage -pthread -fdump-tree-optimized -std=c++17" } */
using uint16_t = unsigned short;
struct a {
uint16_t b = 0;
};
struct c {
short d;
};
class e {
public:
void f();
void init_session(c);
};
auto htons = [](uint16_t s) {
if (__builtin_constant_p(s)) {
return uint16_t(uint16_t(s >> 8) | uint16_t(s << 8));
}
return uint16_t(uint16_t(s >> 8) | uint16_t(s << 8));
};
struct g {
e h;
void i(a k) {
h.f();
auto j = c();
j.d = htons(k.b);
h.init_session(j);
}
};
void test() {
g().i({});
}
/* { dg-final { scan-tree-dump-not "builtin_unreachable" "optimized"} } */