8212043: Request for help with Submit Failure

Pengfei Li (Arm Technology China) Pengfei.Li at arm.com
Fri Dec 14 07:43:02 UTC 2018

Hi Andrew Dinn,

Hope this is the last trial.

> I don't know for sure what the actual errors are but I suspect that the
> relevant compilers will not bite on the expression (1.0/0.0). It seems that
> defining +/-INFINITY in a portable way is going to require some work.

Actually, the expression (1.0/0.0) is good but (1.0d/0.0d) is not.
I've reproduced the failure by building jdk on MacBook. I got below error messages.
src/hotspot/share/opto/type.cpp:453:35: error: invalid suffix 'd' on floating constant
  TypeD::POS_INF = TypeD::make(1.0d/0.0d);  // Double positive infinity
ISO/IEC 9899:1999[1] Chapter Paragraph 4 said: "An unsuffixed floating constant has type double. If suffixed by the letter f or F, it has type float. If suffixed by the letter l or L, it has type long double." And there's no definition for floating constant suffixed by letter d or D. So this is probably a feature only in GCC but not supported by other compilers in solaris/macOS/Windows. I've also tried to compile a simple C program with 1.0D by AArch64 LLVM and it fails.

In the new webrev, the suffix letter d is removed. And to be consistent with other definitions above like "TypeF::ONE", the suffix letter f is removed as well. This patch passed build test on Intel/Arm servers and MacBook.

[1] ISO/IEC 9899:1999  http://www.dii.uchile.cl/~daespino/files/Iso_C_1999_definition.pdf


More information about the hotspot-compiler-dev mailing list