https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88074
Bug ID: 88074
Summary: g++ hangs on math expression
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: coillol at yandex dot ru
Target Milestone: ---
Piece of program that causes the problem:
#include <complex>
#include <vector>
using ValType = std::complex<double>;
void getValue(std::vector<ValType> &V) {
static auto Fn = [](ValType Pt) -> ValType {
return tan(sinh(acosh(Pt) + (Pt)));
};
for (int i = -500; i < 500; ++i) {
double X = static_cast<double>(i) / 20.0;
for (int j = -500; j < 500; ++j) {
double Y = static_cast<double>(j) / 20.0;
ValType Pt {X, Y};
V.push_back(Fn(Pt));
}
}
}
Compilation with "-std=c++11 -O1 -ftree-pre" and g++ 7.2.0 never ends. Problem
also seems to be reproducible with any version of gcc starting from 5.1.