]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/validate.cpp
Improve reporting of function name conflicts
[libs/gl.git] / source / glsl / validate.cpp
index 2f02400ee675a5bc159362d9e85fec755a92c9d7..fcccb526e0dc3bc62831e3c949f8bb767b929591 100644 (file)
@@ -156,11 +156,16 @@ void DeclarationValidator::visit(InterfaceBlock &iface)
 void DeclarationValidator::visit(FunctionDeclaration &func)
 {
        if(Statement *previous = find_definition(func.name))
-               if(!dynamic_cast<FunctionDeclaration *>(previous))
+       {
+               FunctionDeclaration *prev_func = dynamic_cast<FunctionDeclaration *>(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);
 }