From 69aa9c1b84af6d103ea9f5d69db5c28cc7c0ecce Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Tue, 12 Nov 2013 03:31:24 +0000 Subject: [PATCH] Fixes to scanning: - do version checking for the line-continuation character - check for built-in names in #undef - bug fix for #elif after #else - do version checking for use of floating point suffixes (f, LF, etc.) git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24011 e7fa87d3-cd2b-0410-9028-fcbf551c1848 --- Install/Windows/glslangValidator.exe | Bin 392192 -> 393216 bytes Test/100.frag | 3 + Test/120.frag | 4 +- Test/300.vert | 2 +- Test/baseResults/100.frag.out | 18 +++++- Test/baseResults/cppNest.vert.out | 18 ++++++ Test/baseResults/cppSimple.vert.out | 16 ++--- Test/baseResults/lineContinuation100.vert.out | 21 +++++++ Test/baseResults/versionsErrors.frag.out | 3 +- Test/cppNest.vert | 49 +++++++++++++++ Test/cppSimple.vert | 3 + Test/lineContinuation100.vert | 20 ++++++ Test/precision.frag | 2 +- Test/sample.frag | 2 +- Test/testlist | 1 + glslang/MachineIndependent/ParseHelper.cpp | 29 +++++++++ glslang/MachineIndependent/ParseHelper.h | 2 + .../MachineIndependent/preprocessor/Pp.cpp | 57 ++++++------------ .../preprocessor/PpContext.cpp | 2 +- .../preprocessor/PpContext.h | 7 +-- .../preprocessor/PpScanner.cpp | 10 ++- 21 files changed, 210 insertions(+), 59 deletions(-) create mode 100644 Test/baseResults/lineContinuation100.vert.out create mode 100644 Test/lineContinuation100.vert diff --git a/Install/Windows/glslangValidator.exe b/Install/Windows/glslangValidator.exe index b64716382f8e0a2032fd5bfb4a1bbd6cb5431b5a..ebdec87673b2f987aa4bcf9481a721388cf353c9 100644 GIT binary patch delta 114419 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 UKWjuo%F?t=TSwgq8(rrA0YyJNH~;_u delta 113641 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

I#W-He9 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 diff --git a/Test/100.frag b/Test/100.frag index cb78f8bf0..9daa0267e 100644 --- a/Test/100.frag +++ b/Test/100.frag @@ -146,4 +146,7 @@ int foo203940(int a, float b, float a) // ERROR, a redefined return a; } +float f123 = 4.0f; // ERROR +float f124 = 5e10F; // ERROR + uniform samplerExternalOES badExt; // syntax ERROR diff --git a/Test/120.frag b/Test/120.frag index e6ed62a64..ac70c20a6 100644 --- a/Test/120.frag +++ b/Test/120.frag @@ -36,7 +36,7 @@ void main() f += a; f = a - f; v3 *= iv3; - v3 = iv3 / 2.0; + v3 = iv3 / 2.0f; v3 = 3.0 * iv3; v3 = 2 * v3; v3 = v3 - 2; @@ -102,7 +102,7 @@ int foo(out float a) // ERROR bool gen(vec3 v) { - if (abs(v[0]) < 1e-4 && abs(v[1]) < 1e-4) + if (abs(v[0]) < 1e-4F && abs(v[1]) < 1e-4) return true; } diff --git a/Test/300.vert b/Test/300.vert index 1d9d63167..cdbfa8eea 100644 --- a/Test/300.vert +++ b/Test/300.vert @@ -65,7 +65,7 @@ uniform ub { int a[]; // ERROR } ubInst[]; // ERROR void foo(int a[]); // ERROR -float okayA[] = float[](3.0, 4.0); // Okay +float okayA[] = float[](3.0f, 4.0F); // Okay out vec3 newV; void newVFun() diff --git a/Test/baseResults/100.frag.out b/Test/baseResults/100.frag.out index 2507e06fd..1c08f355f 100644 --- a/Test/baseResults/100.frag.out +++ b/Test/baseResults/100.frag.out @@ -57,8 +57,10 @@ ERROR: 0:137: 'bitwise not' : not supported for this version or the enabled exte ERROR: 0:138: 'bitwise inclusive or' : not supported for this version or the enabled extensions ERROR: 0:139: 'bitwise and' : not supported for this version or the enabled extensions ERROR: 0:144: 'a' : redefinition -ERROR: 0:149: '' : syntax error -ERROR: 53 compilation errors. No code generated. +ERROR: 0:149: 'floating-point suffix' : not supported for this version or the enabled extensions +ERROR: 0:150: 'floating-point suffix' : not supported for this version or the enabled extensions +ERROR: 0:152: '' : syntax error +ERROR: 55 compilation errors. No code generated. ERROR: node is still EOpNull! 0:3 Sequence @@ -245,6 +247,16 @@ ERROR: node is still EOpNull! 0:146 Sequence 0:146 Branch: Return with expression 0:146 'a' (in mediump int) +0:149 Sequence +0:149 move second child to first child (mediump float) +0:149 'f123' (mediump float) +0:149 Constant: +0:149 4.000000 +0:150 Sequence +0:150 move second child to first child (mediump float) +0:150 'f124' (mediump float) +0:150 Constant: +0:150 50000000000.000000 0:? Linker Objects 0:? 'a' (3-element array of mediump int) 0:? 'uint' (mediump int) @@ -264,4 +276,6 @@ ERROR: node is still EOpNull! 0:? 'sExt' (uniform lowp samplerExternalOES) 0:? 'mediumExt' (uniform mediump samplerExternalOES) 0:? 'highExt' (uniform highp samplerExternalOES) +0:? 'f123' (mediump float) +0:? 'f124' (mediump float) diff --git a/Test/baseResults/cppNest.vert.out b/Test/baseResults/cppNest.vert.out index 918f832e0..95f28f4b0 100644 --- a/Test/baseResults/cppNest.vert.out +++ b/Test/baseResults/cppNest.vert.out @@ -35,6 +35,24 @@ 0:86 'gl_Position' (gl_Position 4-component vector of float) 0:86 Construct vec4 (4-component vector of float) 0:86 'sum' (float) +0:103 Sequence +0:103 move second child to first child (int) +0:103 'selected4' (int) +0:103 Constant: +0:103 4 (const int) +0:115 Sequence +0:115 move second child to first child (int) +0:115 'selected2' (int) +0:115 Constant: +0:115 2 (const int) +0:133 Sequence +0:133 move second child to first child (int) +0:133 'selected3' (int) +0:133 Constant: +0:133 3 (const int) 0:? Linker Objects 0:? 'sum' (float) +0:? 'selected4' (int) +0:? 'selected2' (int) +0:? 'selected3' (int) diff --git a/Test/baseResults/cppSimple.vert.out b/Test/baseResults/cppSimple.vert.out index a0c313cff..a5d18f22d 100644 --- a/Test/baseResults/cppSimple.vert.out +++ b/Test/baseResults/cppSimple.vert.out @@ -24,11 +24,11 @@ ERROR: 0:136: 'length' : no matching overloaded function found ERROR: 0:136: '=' : cannot convert from 'const float' to 'int' ERROR: 0:138: ''' : character literals not supported ERROR: 0:138: ''' : character literals not supported -ERROR: 0:141: '#define' : reserved built-in name prefix: GL_ -ERROR: 0:142: '#define' : reserved built-in name prefix: GL_ -ERROR: 0:143: '#define' : names containing consecutive underscores are reserved -ERROR: 0:144: '#define' : names containing consecutive underscores are reserved -ERROR: 0:145: '#define' : names containing consecutive underscores are reserved +ERROR: 0:141: '#define' : can't use with built-in names ("GL_" prefix) +ERROR: 0:142: '#define' : can't use with built-in names ("GL_" prefix) +ERROR: 0:143: '#define' : can't use with built-in names (containing consecutive underscores) +ERROR: 0:144: '#define' : can't use with built-in names (containing consecutive underscores) +ERROR: 0:145: '#define' : can't use with built-in names (containing consecutive underscores) ERROR: 0:148: '#else' : unexpected tokens following directive ERROR: 0:149: '#else' : #elif after #else ERROR: 0:155: '#else' : unexpected tokens following directive @@ -41,8 +41,10 @@ ERROR: 0:182: '#define' : Macro redefined; different number of arguments: m6 ERROR: 0:185: '#define' : Macro redefined; different substitutions: m7 ERROR: 0:192: '#define' : Macro redefined; different substitutions: m8 ERROR: 0:196: '#define' : Macro redefined; different argument names: m9 -ERROR: 0:206: '' : missing #endif -ERROR: 43 compilation errors. No code generated. +ERROR: 0:204: '#undef' : can't use with built-in names (containing consecutive underscores) +ERROR: 0:205: '#undef' : can't use with built-in names ("GL_" prefix) +ERROR: 0:209: '' : missing #endif +ERROR: 45 compilation errors. No code generated. ERROR: node is still EOpNull! 0:5 Sequence diff --git a/Test/baseResults/lineContinuation100.vert.out b/Test/baseResults/lineContinuation100.vert.out new file mode 100644 index 000000000..640dbee09 --- /dev/null +++ b/Test/baseResults/lineContinuation100.vert.out @@ -0,0 +1,21 @@ +ERROR: 0:3: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 0:6: '#error' : e1 +ERROR: 0:8: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 0:11: '#error' : e2 +ERROR: 0:13: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 0:14: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 0:15: 'line continuation' : not supported for this version or the enabled extensions +ERROR: 0:18: '#error' : e3 +ERROR: 8 compilation errors. No code generated. + +ERROR: node is still EOpNull! +0:20 Function Definition: main( (void) +0:20 Function Parameters: +0:20 Sequence +0:20 move second child to first child (highp 4-component vector of float) +0:20 'gl_Position' (gl_Position highp 4-component vector of float) +0:20 Construct vec4 (highp 4-component vector of float) +0:20 'foo' (highp float) +0:? Linker Objects +0:? 'foo' (highp float) + diff --git a/Test/baseResults/versionsErrors.frag.out b/Test/baseResults/versionsErrors.frag.out index b339567bb..cde4e2808 100644 --- a/Test/baseResults/versionsErrors.frag.out +++ b/Test/baseResults/versionsErrors.frag.out @@ -2,7 +2,8 @@ ERROR: #version: versions before 150 do not allow a profile token ERROR: 0:38: 'attribute' : not supported in this stage: fragment ERROR: 0:40: 'sampler2DRect' : Reserved word. ERROR: 0:40: 'rectangle texture' : not supported for this version or the enabled extensions -ERROR: 4 compilation errors. No code generated. +ERROR: 0:44: 'floating-point suffix' : not supported for this version or the enabled extensions +ERROR: 5 compilation errors. No code generated. ERROR: node is still EOpNull! 0:42 Function Definition: main( (void) diff --git a/Test/cppNest.vert b/Test/cppNest.vert index 41c5a6a45..a3dc5fa56 100644 --- a/Test/cppNest.vert +++ b/Test/cppNest.vert @@ -85,3 +85,52 @@ sum += 600000.0; // sum should be 987600301.0 gl_Position = vec4(sum); } + +#define A 1 +#define C 0 +#define E 0 +#define F 1 +#if A + #if C + #if E + int selected4 = 1; + #elif F + int selected4 = 2; + #else + int selected4 = 3; + #endif + #endif + int selected4 = 4; +#endif + +#define ZA 1 +#define ZC 1 +#define ZE 0 +#define ZF 1 +#if ZA + #if ZC + #if ZE + int selected2 = 1; + #elif ZF + int selected2 = 2; + #else + int selected2 = 3; + #endif + #endif +#endif + +#define AZA 1 +#define AZC 1 +#define AZE 0 +#define AZF 0 +#if AZA + #if AZC + #if AZE + int selected3 = 1; + #elif AZF + int selected3 = 2; + #else + int selected3 = 3; + #endif + #endif +#endif diff --git a/Test/cppSimple.vert b/Test/cppSimple.vert index f200fbe87..59854fd26 100644 --- a/Test/cppSimple.vert +++ b/Test/cppSimple.vert @@ -201,6 +201,9 @@ int n = n1; #define f1 .08e-2Lf double f = f1; +#undef __VERSION__ +#undef GL_ARB_texture_rectangle + #if 1 #else // ERROR, missing #endif \ No newline at end of file diff --git a/Test/lineContinuation100.vert b/Test/lineContinuation100.vert new file mode 100644 index 000000000..0b0cc30af --- /dev/null +++ b/Test/lineContinuation100.vert @@ -0,0 +1,20 @@ +#version 100 + +// this file cont\ +ains no errors other than the #error which are there to see if line numbering for errors is correct + +#error e1 + +float f\ +oo; // same as 'float foo;' + +#error e2 + +#define MAIN void main() \ +{ \ +gl_Position = vec4(foo); \ +} + +#error e3 + +MAIN diff --git a/Test/precision.frag b/Test/precision.frag index 0531322e0..e24fa52cc 100644 --- a/Test/precision.frag +++ b/Test/precision.frag @@ -26,7 +26,7 @@ void main() { lowp int sum = global_medium + global_high; - gl_FragColor = vec4(color, 1.0f); + gl_FragColor = vec4(color, 1.0); int level1_high; sum += level1_high; diff --git a/Test/sample.frag b/Test/sample.frag index 540b4a74e..d9b9f5cc4 100644 --- a/Test/sample.frag +++ b/Test/sample.frag @@ -37,5 +37,5 @@ varying vec3 color; void main() { - gl_FragColor = vec4(color, 1.0f); + gl_FragColor = vec4(color, 1.0); } diff --git a/Test/testlist b/Test/testlist index 74d5d84b7..f79b11830 100644 --- a/Test/testlist +++ b/Test/testlist @@ -50,6 +50,7 @@ tokenLength.vert 420.vert 420.geom 430scope.vert +lineContinuation100.vert lineContinuation.vert numeral.frag 400.geom diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 12fb3eb49..f23b37e9f 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -1370,6 +1370,35 @@ bool TParseContext::reservedErrorCheck(TSourceLoc loc, const TString& identifier return false; } +// +// Reserved errors for the preprocessor. +// +void TParseContext::reservedPpErrorCheck(TSourceLoc loc, const char* identifier, const char* op) +{ + // "All macro names containing two consecutive underscores ( __ ) are reserved for future use as predefined + // macro names. All macro names prefixed with "GL_" ("GL" followed by a single underscore) are also + // reserved." + if (strncmp(identifier, "GL_", 3) == 0) + error(loc, "can't use with built-in names (\"GL_\" prefix)", op, ""); + else if (strstr(identifier, "__") != 0) + error(loc, "can't use with built-in names (containing consecutive underscores)", op, ""); +} + +// +// See if this version/profile allows use of the line-continuation character '\'. +// +void TParseContext::lineContinuationCheck(TSourceLoc loc) +{ + const char* message = "line continuation"; + if (messages & EShMsgRelaxedErrors) { + warn(loc, "not allowed in this version", message, ""); + } else { + requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, message); + profileRequires(loc, EEsProfile, 300, 0, message); + profileRequires(loc, ECoreProfile | ECompatibilityProfile, 420, 0, message); + } +} + bool TParseContext::builtInName(const TString& identifier) { return identifier.compare(0, 3, "gl_") == 0; diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index c7680ba33..81426be46 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -75,6 +75,8 @@ public: void C_DECL warn(TSourceLoc, const char *szReason, const char *szToken, const char *szExtraInfoFormat, ...); bool reservedErrorCheck(TSourceLoc, const TString&); + void reservedPpErrorCheck(TSourceLoc, const char* name, const char* op); + void lineContinuationCheck(TSourceLoc); bool builtInName(const TString&); void handlePragma(const char **tokens, int numTokens); diff --git a/glslang/MachineIndependent/preprocessor/Pp.cpp b/glslang/MachineIndependent/preprocessor/Pp.cpp index dd2b68a66..af6231811 100644 --- a/glslang/MachineIndependent/preprocessor/Pp.cpp +++ b/glslang/MachineIndependent/preprocessor/Pp.cpp @@ -151,13 +151,7 @@ int TPpContext::CPPdefine(TPpToken* ppToken) const char* definedName = GetAtomString(atom); if (ppToken->loc.string >= 0) { // We are in user code; check for reserved name use: - // "All macro names containing two consecutive underscores ( __ ) are reserved for future use as predefined - // macro names. All macro names prefixed with "GL_" ("GL" followed by a single underscore) are also - // reserved." - if (strncmp(definedName, "GL_", 3) == 0) - parseContext.error(ppToken->loc, "reserved built-in name prefix:", "#define", "GL_"); - else if (strstr(definedName, "__") != 0) - parseContext.error(ppToken->loc, "names containing consecutive underscores are reserved", "#define", ""); + parseContext.reservedPpErrorCheck(ppToken->loc, definedName, "#define"); } token = currentInput->scan(this, currentInput, ppToken); if (token == '(' && !ppToken->ival) { @@ -203,6 +197,7 @@ int TPpContext::CPPdefine(TPpToken* ppToken) mac.body = NewTokenStream(pool); while (token != '\n') { if (token == '\\') { + parseContext.lineContinuationCheck(ppToken->loc); token = currentInput->scan(this, currentInput, ppToken); if (token == '\n') token = currentInput->scan(this, currentInput, ppToken); @@ -253,21 +248,19 @@ int TPpContext::CPPdefine(TPpToken* ppToken) return '\n'; } -int TPpContext::CPPundef(TPpToken * ppToken) +int TPpContext::CPPundef(TPpToken* ppToken) { int token = currentInput->scan(this, currentInput, ppToken); Symbol *symb; - if (token == '\n') { - parseContext.error(ppToken->loc, "must be followed by macro name", "#undef", ""); - - return token; - } if (token != CPP_IDENTIFIER) { parseContext.error(ppToken->loc, "must be followed by macro name", "#undef", ""); return token; } + const char* name = GetAtomString(ppToken->atom); // TODO preprocessor simplification: the token text should have been built into the ppToken during currentInput->scan() + parseContext.reservedPpErrorCheck(ppToken->loc, name, "#undef"); + symb = LookUpSymbol(ppToken->atom); if (symb) { symb->mac.undef = 1; @@ -311,7 +304,7 @@ int TPpContext::CPPelse(int matchelse, TPpToken* ppToken) elsetracker++; } else if (atom == endifAtom) { token = extraTokenCheck(atom, ppToken, currentInput->scan(this, currentInput, ppToken)); - elsedepth[elsetracker] = 0; + elseSeen[elsetracker] = false; --elsetracker; if (depth == 0) { // found the #endif we are looking for @@ -331,21 +324,21 @@ int TPpContext::CPPelse(int matchelse, TPpToken* ppToken) * it and we really want to leave it alone */ if (ifdepth) { --ifdepth; - elsedepth[elsetracker] = 0; + elseSeen[elsetracker] = false; --elsetracker; } return CPPif(ppToken); } - } else if (atom == elseAtom || atom == elifAtom) { - if (! ChkCorrectElseNesting()) { - if (atom == elseAtom) - parseContext.error(ppToken->loc, "#else after #else", "#else", ""); - else - parseContext.error(ppToken->loc, "#elif after #else", "#else", ""); - } - if (atom == elseAtom) - token = extraTokenCheck(atom, ppToken, currentInput->scan(this, currentInput, ppToken)); + } else if (atom == elseAtom) { + if (elseSeen[elsetracker]) + parseContext.error(ppToken->loc, "#else after #else", "#else", ""); + else + elseSeen[elsetracker] = true; + token = extraTokenCheck(atom, ppToken, currentInput->scan(this, currentInput, ppToken)); + } else if (atom == elifAtom) { + if (elseSeen[elsetracker]) + parseContext.error(ppToken->loc, "#elif after #else", "#else", ""); } } @@ -807,7 +800,8 @@ int TPpContext::readCPPline(TPpToken * ppToken) if (ppToken->atom == defineAtom) { token = CPPdefine(ppToken); } else if (ppToken->atom == elseAtom) { - if (ChkCorrectElseNesting()) { + if (! elsetracker[elseSeen]) { + elsetracker[elseSeen] = true; if (! ifdepth) parseContext.error(ppToken->loc, "mismatched statements", "#else", ""); token = extraTokenCheck(elseAtom, ppToken, currentInput->scan(this, currentInput, ppToken)); @@ -826,7 +820,7 @@ int TPpContext::readCPPline(TPpToken * ppToken) token = currentInput->scan(this, currentInput, ppToken); token = CPPelse(0, ppToken); } else if (ppToken->atom == endifAtom) { - elsedepth[elsetracker] = 0; + elseSeen[elsetracker] = false; --elsetracker; if (! ifdepth) parseContext.error(ppToken->loc, "mismatched statements", "#endif", ""); @@ -1106,15 +1100,4 @@ int TPpContext::MacroExpand(int atom, TPpToken* ppToken, int expandUndef) return 1; } -int TPpContext::ChkCorrectElseNesting() -{ - if (elsedepth[elsetracker] == 0) { - elsedepth[elsetracker] = 1; - - return 1; - } - - return 0; -} - } // end namespace glslang \ No newline at end of file diff --git a/glslang/MachineIndependent/preprocessor/PpContext.cpp b/glslang/MachineIndependent/preprocessor/PpContext.cpp index 29af6bb17..21af119ea 100644 --- a/glslang/MachineIndependent/preprocessor/PpContext.cpp +++ b/glslang/MachineIndependent/preprocessor/PpContext.cpp @@ -91,7 +91,7 @@ TPpContext::TPpContext(TParseContext& pc) : ifdepth = 0; for (elsetracker = 0; elsetracker < maxIfNesting; elsetracker++) - elsedepth[elsetracker] = 0; + elseSeen[elsetracker] = false; elsetracker = 0; } diff --git a/glslang/MachineIndependent/preprocessor/PpContext.h b/glslang/MachineIndependent/preprocessor/PpContext.h index 22b35bed0..5982ce063 100644 --- a/glslang/MachineIndependent/preprocessor/PpContext.h +++ b/glslang/MachineIndependent/preprocessor/PpContext.h @@ -196,9 +196,9 @@ protected: static const int maxMacroArgs = 64; static const int maxIfNesting = 64; - int ifdepth; // current #if-#else-#endif nesting in the cpp.c file (pre-processor) - int elsedepth[maxIfNesting]; // Keep a track of #if depth..Max allowed is 64. - int elsetracker; // #if-#else and #endif constructs...Counter. + int ifdepth; // current #if-#else-#endif nesting in the cpp.c file (pre-processor) + bool elseSeen[maxIfNesting]; // Keep a track of whether an else has been seen at a particular depth + int elsetracker; // #if-#else and #endif constructs...Counter. const char *ErrMsg; struct MacroInputSrc { @@ -262,7 +262,6 @@ protected: static int macro_scan(TPpContext* pp, InputSrc *inInput, TPpToken * ppToken); static int zero_scan(TPpContext* pp, InputSrc *inInput, TPpToken * ppToken); int MacroExpand(int atom, TPpToken* ppToken, int expandUndef); - int ChkCorrectElseNesting(); // // from PpSymbols.cpp diff --git a/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/glslang/MachineIndependent/preprocessor/PpScanner.cpp index 57cc502a5..aed147cc4 100644 --- a/glslang/MachineIndependent/preprocessor/PpScanner.cpp +++ b/glslang/MachineIndependent/preprocessor/PpScanner.cpp @@ -202,6 +202,7 @@ int TPpContext::lFloatConst(char* str, int len, int ch, TPpToken* ppToken) strcpy(str, "0.0"); } else { if (ch == 'l' || ch == 'L') { + parseContext.doubleCheck(ppToken->loc, "double floating-point suffix"); if (! HasDecimalOrExponent) parseContext.error(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); int ch2 = currentInput->getch(this, currentInput, ppToken); @@ -219,6 +220,8 @@ int TPpContext::lFloatConst(char* str, int len, int ch, TPpToken* ppToken) } } } else if (ch == 'f' || ch == 'F') { + parseContext.profileRequires(ppToken->loc, EEsProfile, 300, 0, "floating-point suffix"); + parseContext.profileRequires(ppToken->loc, ~EEsProfile, 120, 0, "floating-point suffix"); if (! HasDecimalOrExponent) parseContext.error(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); if (len < TPpToken::maxTokenLength) @@ -230,7 +233,7 @@ int TPpContext::lFloatConst(char* str, int len, int ch, TPpToken* ppToken) } else currentInput->ungetch(this, currentInput, ch, ppToken); - str[len]='\0'; + str[len]='\0'; ppToken->dval = strtod(str, 0); } @@ -282,6 +285,7 @@ int TPpContext::sourceScan(TPpContext* pp, InputSrc*, TPpToken* ppToken) do { if (ch == '\\') { // escaped character + pp->parseContext.lineContinuationCheck(ppToken->loc); ch = pp->currentInput->getch(pp, pp->currentInput, ppToken); if (ch == '\r' || ch == '\n') { int nextch = pp->currentInput->getch(pp, pp->currentInput, ppToken); @@ -631,6 +635,7 @@ int TPpContext::sourceScan(TPpContext* pp, InputSrc*, TPpToken* ppToken) ch = pp->currentInput->getch(pp, pp->currentInput, ppToken); if (ch == '\\') { // allow an escaped newline, otherwise escapes in comments are meaningless + pp->parseContext.lineContinuationCheck(ppToken->loc); ch = pp->currentInput->getch(pp, pp->currentInput, ppToken); if (ch == '\r' || ch == '\n') { int nextch = pp->currentInput->getch(pp, pp->currentInput, ppToken); @@ -678,7 +683,8 @@ int TPpContext::sourceScan(TPpContext* pp, InputSrc*, TPpToken* ppToken) case '"': ch = pp->currentInput->getch(pp, pp->currentInput, ppToken); while (ch != '"' && ch != '\n' && ch != EOF) { - if (ch == '\\') { + if (ch == '\\') { + pp->parseContext.lineContinuationCheck(ppToken->loc); ch = pp->currentInput->getch(pp, pp->currentInput, ppToken); if (ch == '\n' || ch == EOF) { break;