From 359326b866f8505ac89a45bd2bc6579a54695c41 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 11 Nov 2013 04:59:32 +0000 Subject: [PATCH] Minor consistency fix: Define built-in functions to have bodies. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23985 e7fa87d3-cd2b-0410-9028-fcbf551c1848 --- Install/Windows/glslangValidator.exe | Bin 388096 -> 388096 bytes Test/baseResults/300scope.vert.out | 4 +++- glslang/MachineIndependent/ParseHelper.cpp | 22 +++++++++------------ glslang/MachineIndependent/ParseHelper.h | 2 +- glslang/MachineIndependent/glslang.y | 2 +- 5 files changed, 14 insertions(+), 16 deletions(-) diff --git a/Install/Windows/glslangValidator.exe b/Install/Windows/glslangValidator.exe index 7f095f44cad4eb6bf95f549ffcb882c444ec1562..792c066a197e623d26101c08e13faba247bee5d7 100644 GIT binary patch delta 43489 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 *@g#t!O6u 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 diff --git a/Test/baseResults/300scope.vert.out b/Test/baseResults/300scope.vert.out index 27e07047..455cd327 100644 --- a/Test/baseResults/300scope.vert.out +++ b/Test/baseResults/300scope.vert.out @@ -6,13 +6,15 @@ ERROR: 0:21: 'redefinition of built-in function' : not supported with this profi ERROR: 0:21: 'sin' : redeclaration of existing name ERROR: 0:22: 'redefinition of built-in function' : not supported with this profile: es ERROR: 0:22: 'cos' : redeclaration of existing name +ERROR: 0:22: 'cos' : function already has a body +ERROR: 0:24: 'return' : void function cannot return a value ERROR: 0:26: 'radians' : redeclaration of existing name ERROR: 0:26: 'radians' : can't find function ERROR: 0:28: 'return' : void function cannot return a value ERROR: 0:35: 'local function declaration' : not supported with this profile: es ERROR: 0:54: 'z' : undeclared identifier ERROR: 0:54: 'z' : redefinition -ERROR: 14 compilation errors. No code generated. +ERROR: 16 compilation errors. No code generated. ERROR: node is still EOpNull! 0:3 Function Definition: f(i1;i1;i1; (highp int) diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index a983c052..0af66b28 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -751,6 +751,9 @@ TFunction* TParseContext::handleFunctionDeclarator(TSourceLoc loc, TFunction& fu } } + // All built-in functions are defined, even though they don't have a body. + if (symbolTable.atBuiltInLevel()) + function.setDefined(); if (! symbolTable.insert(function)) error(loc, "redeclaration of existing name", function.getName().c_str(), ""); @@ -764,12 +767,10 @@ TFunction* TParseContext::handleFunctionDeclarator(TSourceLoc loc, TFunction& fu } // -// Handle seeing a function prototype in the grammar. This includes what may -// become a full definition, as a full definition looks like a prototype -// followed by a body. The body is handled after this function -// returns, when present. +// Handle seeing the function prototype in front of a function definition in the grammar. +// The body is handled after this function returns. // -TIntermAggregate* TParseContext::handleFunctionPrototype(TSourceLoc loc, TFunction& function) +TIntermAggregate* TParseContext::handleFunctionDefinition(TSourceLoc loc, TFunction& function) { currentCaller = function.getMangledName(); TSymbol* symbol = symbolTable.find(function.getMangledName()); @@ -777,23 +778,18 @@ TIntermAggregate* TParseContext::handleFunctionPrototype(TSourceLoc loc, TFuncti if (! prevDec) error(loc, "can't find function", function.getName().c_str(), ""); - - // // Note: 'prevDec' could be 'function' if this is the first time we've seen function // as it would have just been put in the symbol table. Otherwise, we're looking up // an earlier occurance. - // + if (prevDec && prevDec->isDefined()) { - // // Then this function already has a body. - // error(loc, "function already has a body", function.getName().c_str(), ""); } - if (prevDec) { + if (prevDec && ! prevDec->isDefined()) { prevDec->setDefined(); - // + // Remember the return type for later checking for RETURN statements. - // currentFunctionType = &(prevDec->getType()); } else currentFunctionType = new TType(EbtVoid); diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 2bade69e..8b310377 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -88,7 +88,7 @@ public: void checkInputArrayConsistency(TSourceLoc, TLayoutGeometry, TType&, const TString&); TIntermTyped* handleDotDereference(TSourceLoc, TIntermTyped* base, TString& field); TFunction* handleFunctionDeclarator(TSourceLoc loc, TFunction& function); - TIntermAggregate* handleFunctionPrototype(TSourceLoc, TFunction&); + TIntermAggregate* handleFunctionDefinition(TSourceLoc, TFunction&); TIntermTyped* handleFunctionCall(TSourceLoc, TFunction*, TIntermNode*, TIntermAggregate*); void nonOpBuiltInCheck(TSourceLoc, const TFunction&, TIntermAggregate*); TFunction* handleConstructorCall(TSourceLoc, TPublicType&); diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index bc7d0e27..df91311e 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -2389,7 +2389,7 @@ external_declaration function_definition : function_prototype { - $1.intermAggregate = parseContext.handleFunctionPrototype($1.loc, *$1.function); + $1.intermAggregate = parseContext.handleFunctionDefinition($1.loc, *$1.function); } compound_statement_no_new_scope { // May be best done as post process phase on intermediate code