Name mangle function prototypes and print them in interm output

This patch changes function prototype handling so that they get assigned
the same kind of a mangled name as function definitions and function
calls. This name is now also printed in interm output so that function
prototypes can be accurately identified in the interm output.

BUG=angle:821
TEST=compiler_tests

Change-Id: Ia150b8ac5b816b8096c964767cd8666bdee28539
Reviewed-on: https://chromium-review.googlesource.com/227390
Reviewed-by: Nicolas Capens <capn@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/compiler/translator/intermOut.cpp b/src/compiler/translator/intermOut.cpp
index 7713acb..00780f0 100644
--- a/src/compiler/translator/intermOut.cpp
+++ b/src/compiler/translator/intermOut.cpp
@@ -295,6 +295,7 @@
       case EOpFunction:      out << "Function Definition: " << node->getName(); break;
       case EOpFunctionCall:  out << "Function Call: " << node->getName(); break;
       case EOpParameters:    out << "Function Parameters: ";              break;
+      case EOpPrototype:     out << "Function Prototype: " << node->getName(); break;
 
       case EOpConstructFloat: out << "Construct float"; break;
       case EOpConstructVec2:  out << "Construct vec2";  break;