Commit 66cdf365 by John Kessenich

Detect and give error on second occurrence of #version.

parent ef9c8ab2
// okay
#version 100
int a[3] = { 2, 3, 4, }; // ERROR
#version 100
int uint;
attribute vec4 v[3]; // ERROR
......
#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!
......
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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment