1 // PR c++/85963
2 // { dg-additional-options -Wall }
3
4 template<typename T>
5 struct foo {
6 T val, alpha;
foofoo7 foo() : val(0), alpha(0) {}
8 };
9
10 template<typename T>
bar(const foo<T> & A,const foo<T> & B,foo<T> & C)11 inline void bar(const foo<T>& A, const foo<T>& B, foo<T>& C) {
12 const bool use_alpha = true;
13 const T alpha = use_alpha ? (A.alpha * B.alpha) : T(0);
14
15 C.val = A.val * B.val;
16 C.alpha = alpha;
17 }
18
19
main()20 int main() {
21 foo<double> A,B,C;
22
23 bar(A,B,C);
24
25 return 0;
26 }
27
28