X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fvalidate.cpp;h=fcccb526e0dc3bc62831e3c949f8bb767b929591;hb=01c59fefa142fe7812db32e703bbe52a0c14a2bb;hp=2f02400ee675a5bc159362d9e85fec755a92c9d7;hpb=f639d088c478fe5d266f9f5779928735b5176976;p=libs%2Fgl.git diff --git a/source/glsl/validate.cpp b/source/glsl/validate.cpp index 2f02400e..fcccb526 100644 --- a/source/glsl/validate.cpp +++ b/source/glsl/validate.cpp @@ -156,11 +156,16 @@ void DeclarationValidator::visit(InterfaceBlock &iface) void DeclarationValidator::visit(FunctionDeclaration &func) { if(Statement *previous = find_definition(func.name)) - if(!dynamic_cast(previous)) + { + FunctionDeclaration *prev_func = dynamic_cast(previous); + if(prev_func && prev_func->definition==&func) + declarations[current_block][func.name] = &func; + else multiple_definition(format("'%s'", func.name), func, *previous); + } + else + record_definition(func.name, func); - if(func.definition==&func) - check_definition(func.name, func); TraversingVisitor::visit(func); }