Minor preprocessor fix for error message line/string numbers coming from source line, not macro line.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23576 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich 2013-10-18 03:09:37 +00:00
parent e46b087760
commit 8d8f4cc408
5 changed files with 51 additions and 4 deletions

View File

@ -1,5 +1,9 @@
WARNING: #version: statement missing; use #version on first line of shader
0:? Sequence
ERROR: 0:46: 'xyxwx' : illegal vector field selection
ERROR: 0:46: 'xyxwx' : illegal vector field selection
ERROR: 2 compilation errors. No code generated.
ERROR: node is still EOpNull!
0:4 Sequence
0:4 move second child to first child (highp float)
0:4 'sum' (highp float)
@ -24,6 +28,41 @@ WARNING: #version: statement missing; use #version on first line of shader
0:39 'gl_Position' (gl_Position highp 4-component vector of float)
0:39 Construct vec4 (highp 4-component vector of float)
0:39 'sum' (highp float)
0:44 Function Definition: foo( (highp float)
0:44 Function Parameters:
0:46 Sequence
0:46 Branch: Return with expression
0:46 add (highp float)
0:46 add (highp float)
0:46 direct index (highp float)
0:46 'gl_Position' (gl_Position highp 4-component vector of float)
0:46 Constant:
0:46 0 (const int)
0:46 Constant:
0:46 3.000000
0:46 add (highp float)
0:46 direct index (highp float)
0:46 'gl_Position' (gl_Position highp 4-component vector of float)
0:46 Constant:
0:46 0 (const int)
0:46 Constant:
0:46 3.000000
0:47 Branch: Return with expression
0:47 add (highp float)
0:47 add (highp float)
0:47 direct index (highp float)
0:47 'gl_Position' (gl_Position highp 4-component vector of float)
0:47 Constant:
0:47 1 (const int)
0:47 Constant:
0:47 3.000000
0:47 add (highp float)
0:47 direct index (highp float)
0:47 'gl_Position' (gl_Position highp 4-component vector of float)
0:47 Constant:
0:47 1 (const int)
0:47 Constant:
0:47 3.000000
0:? Linker Objects
0:? 'sum' (highp float)

View File

@ -38,3 +38,11 @@ void main()
// sum should be 321.0
gl_Position = vec4(sum);
}
#define ADD(a, b) a + b + ((a) + ((b)));
float foo()
{
return ADD(gl_Position.xyxwx, 3.0) // ERROR, should be this line number
return ADD(gl_Position.y, 3.0)
}

View File

@ -54,6 +54,7 @@ Shader Functionality to Implement/Finish
+ Handle multiple compilation units per stage
+ Allow initializers on uniform declarations
- signature matching takes type conversions into account, ambiguity is an error
- all constructors to contain non-dereferenced arrays?
GLSL 1.3
. flat is for both user and predeclared built-in in/out variables
GLSL 1.3 (Non-ES)

View File

@ -84,6 +84,7 @@ namespace glslang {
class TPpToken {
public:
TPpToken() { loc.line = 0; loc.string = 0; name[0] = 0; }
static const int maxTokenLength = 1024;
TSourceLoc loc;

View File

@ -297,7 +297,7 @@ void TPpContext::RewindTokenStream(TokenStream *pTok)
*
*/
int TPpContext::ReadToken(TokenStream *pTok, TPpToken * yylvalpp)
int TPpContext::ReadToken(TokenStream *pTok, TPpToken *yylvalpp)
{
//TODO: PP: why is this different than byte_scan
@ -399,8 +399,6 @@ int TPpContext::scan_token(TPpContext* pp, TokenInputSrc *in, TPpToken * yylvalp
{
int token = pp->ReadToken(in->tokens, yylvalpp);
int (*final)(TPpContext *);
yylvalpp->loc.string = pp->currentInput->name;
yylvalpp->loc.line = pp->currentInput->line;
if (token == '\n') {
in->base.line++;
return token;