From 7cdc24c06c9303b73f7c6ca3fc34a1f60263cbd3 Mon Sep 17 00:00:00 2001 From: John Kessenich <cepheus@frii.com> Date: Fri, 27 Jul 2018 13:08:05 -0600 Subject: [PATCH] PP: Address #1456: Strip float suffixes before using platform library. --- .../MachineIndependent/preprocessor/PpScanner.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/glslang/MachineIndependent/preprocessor/PpScanner.cpp index 025e39a92..1faa01803 100755 --- a/glslang/MachineIndependent/preprocessor/PpScanner.cpp +++ b/glslang/MachineIndependent/preprocessor/PpScanner.cpp @@ -317,8 +317,19 @@ int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken) } else { // slow path ppToken->dval = 0.0; + + // remove suffix + TString numstr(ppToken->name); + if (numstr.back() == 'f' || numstr.back() == 'F') + numstr.pop_back(); + if (numstr.back() == 'h' || numstr.back() == 'H') + numstr.pop_back(); + if (numstr.back() == 'l' || numstr.back() == 'L') + numstr.pop_back(); + + // use platform library strtodStream.clear(); - strtodStream.str(ppToken->name); + strtodStream.str(numstr.c_str()); strtodStream >> ppToken->dval; if (strtodStream.fail()) { // Assume failure combined with a large exponent was overflow, in -- GitLab