summaryrefslogtreecommitdiff
path: root/src/libs/glsl/glslsemantic.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-11-26 12:30:12 +0100
committerRoberto Raggi <roberto.raggi@nokia.com>2010-11-26 12:55:54 +0100
commitd0e7e7462be6d3cff03e4c6b7997b2777bd6e3cb (patch)
tree30e1cb22294411737e12b961e341b5bc596629b0 /src/libs/glsl/glslsemantic.cpp
parenta8b3c0e2cef4565809c5a68173af185d9a46c525 (diff)
downloadqt-creator-d0e7e7462be6d3cff03e4c6b7997b2777bd6e3cb.tar.gz
Check for undefined symbols.
Diffstat (limited to 'src/libs/glsl/glslsemantic.cpp')
-rw-r--r--src/libs/glsl/glslsemantic.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/libs/glsl/glslsemantic.cpp b/src/libs/glsl/glslsemantic.cpp
index 1729151a12..e533a1ba06 100644
--- a/src/libs/glsl/glslsemantic.cpp
+++ b/src/libs/glsl/glslsemantic.cpp
@@ -144,7 +144,17 @@ bool Semantic::visit(StructTypeAST::Field *ast)
// expressions
bool Semantic::visit(IdentifierExpressionAST *ast)
{
- Q_UNUSED(ast);
+ if (ast->name) {
+ if (Symbol *s = _scope->lookup(*ast->name)) {
+ _expr.type = s->type();
+ } else {
+ if (ast->name->startsWith(QLatin1String("gl_")) || ast->name->startsWith(QLatin1String("qgl_"))) {
+ // ### well, at least for now.
+ } else {
+ _engine->error(ast->lineno, QString("Undefined symbol `%1'").arg(*ast->name));
+ }
+ }
+ }
return false;
}