glsl: Update the #line behaviour on GLSL 3.30+ and GLSL ES+
From GLSL 3.30 and GLSL ES 1.00 on, after processing the line directive (including its new-line), the implementation should behave as if it is compiling at the line number passed as argument. In previous versions, it behaved as if compiling at the passed line number + 1. Partially fixes https://bugs.freedesktop.org/show_bug.cgi?id=88815 Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:

committed by
Iago Toral Quiroga

parent
c0a7014601
commit
490621f0f2
@@ -187,6 +187,15 @@ HASH ^{SPC}#{SPC}
|
||||
* one-based.
|
||||
*/
|
||||
yylineno = strtol(ptr, &ptr, 0) - 1;
|
||||
|
||||
/* From GLSL 3.30 and GLSL ES on, after processing the
|
||||
* line directive (including its new-line), the implementation
|
||||
* will behave as if it is compiling at the line number passed
|
||||
* as argument. It was line number + 1 in older specifications.
|
||||
*/
|
||||
if (yyextra->is_version(330, 100))
|
||||
yylineno--;
|
||||
|
||||
yylloc->source = strtol(ptr, NULL, 0);
|
||||
}
|
||||
{HASH}line{SPCP}{INT}{SPC}$ {
|
||||
@@ -202,6 +211,14 @@ HASH ^{SPC}#{SPC}
|
||||
* one-based.
|
||||
*/
|
||||
yylineno = strtol(ptr, &ptr, 0) - 1;
|
||||
|
||||
/* From GLSL 3.30 and GLSL ES on, after processing the
|
||||
* line directive (including its new-line), the implementation
|
||||
* will behave as if it is compiling at the line number passed
|
||||
* as argument. It was line number + 1 in older specifications.
|
||||
*/
|
||||
if (yyextra->is_version(330, 100))
|
||||
yylineno--;
|
||||
}
|
||||
^{SPC}#{SPC}pragma{SPCP}debug{SPC}\({SPC}on{SPC}\) {
|
||||
BEGIN PP;
|
||||
|
Reference in New Issue
Block a user