gcc 8.x fails claiming that __throw_runtime_error, defined in __locale and
stdexcept, are both defined in the std namespace if -Wredundant-decls
is passed on the command line; this is the case with FreeBSD when
${WARNS} == 6.
Doing some closer inspection, it seems that it was declared in both
headers, but only implemented in locale.cpp. As such, the appropriate
location for the definition is further up in __locale [1].
- Just removing the stdexcept definition didn't work; it needed to be moved up so earlier uses of the definition wouldn't cause the compiler to error out.
Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>