David Mebane writes: > > Having a problem with "+=" operator (and the addition / assignment operation in > general) in g++. > > I have a protected function that looks like: > > double LSMbdnew::norm(double *vec1, long num) { > long i; > double a, ret; > ret = 0.0; > for (i=0; i<num; i++) { > a = *(vec1 + i); > ret = ret + a*a; > } > return ret; > } > > Problem is, the variable ret becomes zero after the second iteration in the test > I'm running. How does this happen? I have checked the variable ret -- there is > no conflict in this scope. In fact, if I change the last line in the loop to a > straight assignment, there's no problem. But when I try to use assign/add, > problem. If you turn this into a test case people can actually run, then people will help you. A naked function isn't a program that people can test. Andrew.