GCC fail's to compile a number of <valarray> tests because three valarray member functions cannot be inlined at various points throughout the header. This is an error because these functions are marked always_inline. Moving the definition of these member functions to directly before the extern template declaration solves the problem.
An example failure can be found here: http://ds2.efcs.ca:8080/builders/gcc-builder/builds/36/steps/test.libcxx-cxx11/logs/FAIL%3A%20libc%2B%2B%3A%3Amultiply.pass.cpp
@rsmith Would you be able to weigh in here. I'm concerned that we might be in "ill formed: no diagnostic required" territory. Do you think GCC's behavior is reasonable?