| // PR c++/85963 | |
| // { dg-additional-options -Wall } | |
| template<typename T> | |
| struct foo { | |
| T val, alpha; | |
| foo() : val(0), alpha(0) {} | |
| }; | |
| template<typename T> | |
| inline void bar(const foo<T>& A, const foo<T>& B, foo<T>& C) { | |
| const bool use_alpha = true; | |
| const T alpha = use_alpha ? (A.alpha * B.alpha) : T(0); | |
| C.val = A.val * B.val; | |
| C.alpha = alpha; | |
| } | |
| int main() { | |
| foo<double> A,B,C; | |
| bar(A,B,C); | |
| return 0; | |
| } | |