зеркало из https://github.com/stride3d/xkslang.git
PP: Fix #783: Catch end-of-argument expansion in token pasting.
This commit is contained in:
Родитель
82460b5e21
Коммит
97cb85c7d6
|
@ -8,7 +8,8 @@ ERROR: 0:69: '##' : combined token is invalid
|
|||
ERROR: 0:82: 'macro expansion' : Too few args in Macro rec
|
||||
ERROR: 0:82: '##' : unexpected location
|
||||
ERROR: 0:82: '##' : unexpected location
|
||||
ERROR: 8 compilation errors. No code generated.
|
||||
ERROR: 0:86: '##' : unexpected location; end of argument
|
||||
ERROR: 9 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 450
|
||||
|
|
|
@ -79,4 +79,8 @@ uniform M_OUTER(argPaste);
|
|||
uniform M_OUTER2(argPaste);
|
||||
|
||||
#define rec(x)##
|
||||
rec(rec())
|
||||
rec(rec())
|
||||
|
||||
#define bax(bay)
|
||||
#define baz bax(/##)
|
||||
baz
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
// For the version, it uses the latest git tag followed by the number of commits.
|
||||
// For the date, it uses the current date (when then script is run).
|
||||
|
||||
#define GLSLANG_REVISION "Overload400-PrecQual.1971"
|
||||
#define GLSLANG_REVISION "Overload400-PrecQual.1974"
|
||||
#define GLSLANG_DATE "04-Apr-2017"
|
||||
|
|
|
@ -799,6 +799,7 @@ int TPpContext::tokenPaste(int token, TPpToken& ppToken)
|
|||
token = scanToken(&pastedPpToken);
|
||||
assert(token == PpAtomPaste);
|
||||
|
||||
// This covers end of macro expansion
|
||||
if (endOfReplacementList()) {
|
||||
parseContext.ppError(ppToken.loc, "unexpected location; end of replacement list", "##", "");
|
||||
break;
|
||||
|
@ -807,6 +808,12 @@ int TPpContext::tokenPaste(int token, TPpToken& ppToken)
|
|||
// get the token after the ##
|
||||
token = scanToken(&pastedPpToken);
|
||||
|
||||
// This covers end of argument expansion
|
||||
if (token == tMarkerInput::marker) {
|
||||
parseContext.ppError(ppToken.loc, "unexpected location; end of argument", "##", "");
|
||||
break;
|
||||
}
|
||||
|
||||
// get the token text
|
||||
switch (resultToken) {
|
||||
case PpAtomIdentifier:
|
||||
|
|
Загрузка…
Ссылка в новой задаче