Detect and give error on second occurrence of #version.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24347 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
// okay
|
||||
#version 100
|
||||
int a[3] = { 2, 3, 4, }; // ERROR
|
||||
|
||||
#version 100
|
||||
int uint;
|
||||
|
||||
attribute vec4 v[3]; // ERROR
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#version 420 core
|
||||
|
||||
#version 420 core
|
||||
varying vec2 v2; // ERROR, varying reserved
|
||||
in vec4 bad[10];
|
||||
highp in vec4 badorder;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
ERROR: 0:3: '{ } style initializers' : not supported with this profile: es
|
||||
ERROR: 0:3: 'initializer' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:3: 'array initializer' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:4: '#version' : must occur first in shader
|
||||
ERROR: 0:7: 'attribute' : not supported in this stage: fragment
|
||||
ERROR: 0:7: 'float' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:9: '=' : cannot convert from 'const int' to 'mediump float'
|
||||
@@ -66,7 +67,7 @@ ERROR: 0:167: 'highp' : overloaded functions must have the same parameter precis
|
||||
ERROR: 0:170: 'multiple prototypes for same function' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:177: 'multiple prototypes for same function' : not supported for this version or the enabled extensions
|
||||
ERROR: 0:179: '' : syntax error
|
||||
ERROR: 60 compilation errors. No code generated.
|
||||
ERROR: 61 compilation errors. No code generated.
|
||||
|
||||
|
||||
ERROR: node is still EOpNull!
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
420.vert
|
||||
Warning, version 420 is not yet complete; some version-specific features are present, but many are missing.
|
||||
ERROR: 0:2: '#version' : must occur first in shader
|
||||
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
|
||||
ERROR: 0:3: 'varying' : no longer supported in core profile; removed in version 420
|
||||
ERROR: 0:7: '' : vertex input cannot be further qualified
|
||||
@@ -27,7 +28,7 @@ ERROR: 0:70: 'binding' : requires uniform or buffer storage qualifier
|
||||
ERROR: 0:71: 'binding' : binding is too large
|
||||
ERROR: 0:74: 'binding' : sampler binding not less than gl_MaxCombinedTextureImageUnits
|
||||
ERROR: 0:76: 'binding' : sampler binding not less than gl_MaxCombinedTextureImageUnits (using array)
|
||||
ERROR: 26 compilation errors. No code generated.
|
||||
ERROR: 27 compilation errors. No code generated.
|
||||
|
||||
|
||||
ERROR: node is still EOpNull!
|
||||
|
||||
@@ -9,5 +9,5 @@
|
||||
// source have to figure out how to create revision.h just to get a build
|
||||
// going. However, if it is not updated, it can be a version behind.
|
||||
|
||||
#define GLSLANG_REVISION "24342"
|
||||
#define GLSLANG_DATE "2013/12/04 12:43:05"
|
||||
#define GLSLANG_REVISION "24343"
|
||||
#define GLSLANG_DATE "2013/12/04 12:46:19"
|
||||
|
||||
@@ -694,8 +694,9 @@ int TPpContext::CPPversion(TPpToken* ppToken)
|
||||
{
|
||||
int token = currentInput->scan(this, currentInput, ppToken);
|
||||
|
||||
if (errorOnVersion)
|
||||
if (errorOnVersion || versionSeen)
|
||||
parseContext.error(ppToken->loc, "must occur first in shader", "#version", "");
|
||||
versionSeen = true;
|
||||
|
||||
if (token == '\n') {
|
||||
parseContext.error(ppToken->loc, "must be followed by version number", "#version", "");
|
||||
|
||||
@@ -155,6 +155,7 @@ void TPpContext::setInput(TInputScanner& input, bool versionWillBeError)
|
||||
in->prev = currentInput;
|
||||
currentInput = in;
|
||||
errorOnVersion = versionWillBeError;
|
||||
versionSeen = false;
|
||||
}
|
||||
|
||||
} // end namespace glslang
|
||||
|
||||
@@ -208,6 +208,7 @@ protected:
|
||||
|
||||
InputSrc *currentInput;
|
||||
bool errorOnVersion;
|
||||
bool versionSeen;
|
||||
|
||||
//
|
||||
// from Pp.cpp
|
||||
|
||||
Reference in New Issue
Block a user