Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/g++.dg/warn/Waddress-of-packed-member1.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/g++.dg/warn/Waddress-of-packed-member1.C Thu Feb 13 11:34:05 2020 +0900 @@ -0,0 +1,42 @@ +// PR c++/88612 +// { dg-do compile { target c++11 } } +// { dg-options "-fpack-struct -Waddress-of-packed-member" } +// { dg-prune-output "taking address of packed member" } + +template<class F, class... T> +auto indirect_call(F f, T... t) -> decltype(f(t...)) +{ + return f(t...); +} + +template<class F, class T> +struct VariadicBind +{ + F f; + T t; + + template<class... A> + auto operator()(A... a) -> decltype(indirect_call(f, t, a...)) + { + return indirect_call(f, t, a...); + } +}; + +template<class F> +void apply(F f) +{ + f(); +} + +template<class F, class V1, class... V> +void apply(F f, V1 v1, V... v) +{ + apply(VariadicBind<F, int>{f, v1}, v...); +} + +void func(int, int) { } + +int main() +{ + apply(func, 0, 0); +}