Divisão pelo complexo <double> no clang ++ versus g ++

Ao compilar o código a seguir com g ++ (4.8.1 ou 4.9.0) ou clang ++ (3.4), recebo diferentes saídas.

#include <iostream>
#include <complex>

int main() {
  std::complex<double> c = {1.e-162,0};
  std::cout << 1.0/c << std::endl;
  return 0;
}

g ++:

(1e+162,0)

clang ++:

(inf,-nan)

Isso é um bug no clang?

Atualizar:

Obrigado por suas respostas! Eu relatei o bug:http://llvm.org/bugs/show_bug.cgi?id=19820

questionAnswers(4)

yourAnswerToTheQuestion