disable escape sequences for #line and #error
This commit is contained in:
parent
f333272eb5
commit
13444545a9
@ -9,8 +9,8 @@ hlsl.pp.line4.frag
|
||||
EntryPoint Fragment 5 "MainPs" 70 74
|
||||
ExecutionMode 5 OriginUpperLeft
|
||||
1: String "hlsl.pp.line4.frag"
|
||||
17: String "C:\Users\Greg\shaders\line\foo4.frag"
|
||||
32: String "C:\Users\Greg\shaders\line\u1.h"
|
||||
17: String "C:\\Users\\Greg\\shaders\\line\\foo4.frag"
|
||||
32: String "C:\\Users\\Greg\\shaders\\line\\u1.h"
|
||||
Source HLSL 500 1 "// OpModuleProcessed auto-map-locations
|
||||
// OpModuleProcessed auto-map-bindings
|
||||
// OpModuleProcessed entry-point MainPs
|
||||
|
@ -722,7 +722,9 @@ int TPpContext::CPPline(TPpToken* ppToken)
|
||||
const char* sourceName = nullptr; // Optional source file name.
|
||||
bool lineErr = false;
|
||||
bool fileErr = false;
|
||||
disableEscapeSequences = true;
|
||||
token = eval(token, MIN_PRECEDENCE, false, lineRes, lineErr, ppToken);
|
||||
disableEscapeSequences = false;
|
||||
if (! lineErr) {
|
||||
lineToken = lineRes;
|
||||
if (token == '\n')
|
||||
@ -765,7 +767,9 @@ int TPpContext::CPPline(TPpToken* ppToken)
|
||||
// Handle #error
|
||||
int TPpContext::CPPerror(TPpToken* ppToken)
|
||||
{
|
||||
disableEscapeSequences = true;
|
||||
int token = scanToken(ppToken);
|
||||
disableEscapeSequences = false;
|
||||
std::string message;
|
||||
TSourceLoc loc = ppToken->loc;
|
||||
|
||||
|
3
glslang/MachineIndependent/preprocessor/PpContext.cpp
Executable file → Normal file
3
glslang/MachineIndependent/preprocessor/PpContext.cpp
Executable file → Normal file
@ -87,7 +87,8 @@ namespace glslang {
|
||||
TPpContext::TPpContext(TParseContextBase& pc, const std::string& rootFileName, TShader::Includer& inclr) :
|
||||
preamble(0), strings(0), previous_token('\n'), parseContext(pc), includer(inclr), inComment(false),
|
||||
rootFileName(rootFileName),
|
||||
currentSourceFile(rootFileName)
|
||||
currentSourceFile(rootFileName),
|
||||
disableEscapeSequences(false)
|
||||
{
|
||||
ifdepth = 0;
|
||||
for (elsetracker = 0; elsetracker < maxIfNesting; elsetracker++)
|
||||
|
@ -695,6 +695,7 @@ protected:
|
||||
std::string currentSourceFile;
|
||||
|
||||
std::istringstream strtodStream;
|
||||
bool disableEscapeSequences;
|
||||
};
|
||||
|
||||
} // end namespace glslang
|
||||
|
@ -1030,7 +1030,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken)
|
||||
ch = getch();
|
||||
while (ch != '"' && ch != '\n' && ch != EndOfInput) {
|
||||
if (len < MaxTokenLength) {
|
||||
if (ch == '\\') {
|
||||
if (ch == '\\' && !pp->disableEscapeSequences) {
|
||||
int nextCh = getch();
|
||||
switch (nextCh) {
|
||||
case '\'': ch = 0x27; break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user