diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2010-11-26 12:30:12 +0100 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2010-11-26 12:55:54 +0100 |
commit | d0e7e7462be6d3cff03e4c6b7997b2777bd6e3cb (patch) | |
tree | 30e1cb22294411737e12b961e341b5bc596629b0 | |
parent | a8b3c0e2cef4565809c5a68173af185d9a46c525 (diff) | |
download | qt-creator-d0e7e7462be6d3cff03e4c6b7997b2777bd6e3cb.tar.gz |
Check for undefined symbols.
-rw-r--r-- | src/libs/glsl/glslsemantic.cpp | 12 |
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; } |