Warn on HLSL not finding entry point. Issue #588.
authorJohn Kessenich <cepheus@frii.com>
Sat, 26 Nov 2016 20:45:18 +0000 (13:45 -0700)
committerJohn Kessenich <cepheus@frii.com>
Sat, 26 Nov 2016 20:45:18 +0000 (13:45 -0700)
12 files changed:
Test/baseResults/hlsl.array.implicit-size.frag.out
Test/baseResults/hlsl.float1.frag.out
Test/baseResults/hlsl.float4.frag.out
Test/baseResults/hlsl.intrinsics.vert.out
Test/baseResults/hlsl.layout.frag.out
Test/baseResults/hlsl.matType.frag.out
Test/baseResults/hlsl.shapeConv.frag.out
Test/baseResults/hlsl.swizzle.frag.out
Test/baseResults/hlsl.typedef.frag.out
glslang/Include/revision.h
glslang/MachineIndependent/linkValidate.cpp
glslang/MachineIndependent/localintermediate.h

index ffa1c3e..5674cb4 100644 (file)
@@ -81,6 +81,7 @@ gl_FragCoord origin is upper left
 
 Linked fragment stage:
 
+WARNING: Linking fragment stage: Entry point not found
 
 Shader version: 450
 gl_FragCoord origin is upper left
index a2e3cef..641febd 100755 (executable)
@@ -32,6 +32,7 @@ gl_FragCoord origin is upper left
 
 Linked fragment stage:
 
+WARNING: Linking fragment stage: Entry point not found
 
 Shader version: 450
 gl_FragCoord origin is upper left
index 600b4a1..27c9a5c 100755 (executable)
@@ -22,6 +22,7 @@ gl_FragCoord origin is upper left
 
 Linked fragment stage:
 
+WARNING: Linking fragment stage: Entry point not found
 
 Shader version: 450
 gl_FragCoord origin is upper left
index 255e333..bcf911b 100644 (file)
@@ -1396,6 +1396,7 @@ Shader version: 450
 
 Linked vertex stage:
 
+WARNING: Linking vertex stage: Entry point not found
 
 Shader version: 450
 0:? Sequence
index 538a26a..0c12435 100755 (executable)
@@ -33,6 +33,7 @@ gl_FragCoord origin is upper left
 
 Linked fragment stage:
 
+WARNING: Linking fragment stage: Entry point not found
 
 Shader version: 450
 gl_FragCoord origin is upper left
index 468387b..038ca73 100755 (executable)
@@ -15,6 +15,7 @@ gl_FragCoord origin is upper left
 
 Linked fragment stage:
 
+WARNING: Linking fragment stage: Entry point not found
 
 Shader version: 450
 gl_FragCoord origin is upper left
index 451bf88..a15caac 100755 (executable)
@@ -115,6 +115,7 @@ gl_FragCoord origin is upper left
 
 Linked fragment stage:
 
+WARNING: Linking fragment stage: Entry point not found
 
 Shader version: 450
 gl_FragCoord origin is upper left
index cf4be74..54fc662 100755 (executable)
@@ -38,6 +38,7 @@ gl_FragCoord origin is upper left
 
 Linked fragment stage:
 
+WARNING: Linking fragment stage: Entry point not found
 
 Shader version: 450
 gl_FragCoord origin is upper left
index 10b3413..565f45f 100755 (executable)
@@ -39,6 +39,7 @@ gl_FragCoord origin is upper left
 
 Linked fragment stage:
 
+WARNING: Linking fragment stage: Entry point not found
 
 Shader version: 450
 gl_FragCoord origin is upper left
index 77c4eed..57a322e 100644 (file)
@@ -2,5 +2,5 @@
 // For the version, it uses the latest git tag followed by the number of commits.
 // For the date, it uses the current date (when then script is run).
 
-#define GLSLANG_REVISION "Overload400-PrecQual.1660"
+#define GLSLANG_REVISION "Overload400-PrecQual.1661"
 #define GLSLANG_DATE "26-Nov-2016"
index 2e10134..bc473ab 100644 (file)
@@ -60,6 +60,13 @@ void TIntermediate::error(TInfoSink& infoSink, const char* message)
     ++numErrors;
 }
 
+// Link-time warning.
+void TIntermediate::warn(TInfoSink& infoSink, const char* message)
+{
+    infoSink.info.prefix(EPrefixWarning);
+    infoSink.info << "Linking " << StageName(language) << " stage: " << message << "\n";
+}
+
 // TODO: 4.4 offset/align:  "Two blocks linked together in the same program with the same block 
 // name must have the exact same set of members qualified with offset and their integral-constant 
 // expression values must be the same, or a link-time error results."
@@ -370,8 +377,12 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy
 //
 void TIntermediate::finalCheck(TInfoSink& infoSink)
 {
-    if (source == EShSourceGlsl && numEntryPoints < 1)
-        error(infoSink, "Missing entry point: Each stage requires one entry point");
+    if (numEntryPoints < 1) {
+        if (source == EShSourceGlsl)
+            error(infoSink, "Missing entry point: Each stage requires one entry point");
+        else
+            warn(infoSink, "Entry point not found");
+    }
 
     if (numPushConstants > 1)
         error(infoSink, "Only one push_constant block is allowed per stage");
index 6a4cfd0..e860824 100644 (file)
@@ -385,6 +385,7 @@ public:
 protected:
     TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);
     void error(TInfoSink& infoSink, const char*);
+    void warn(TInfoSink& infoSink, const char*);
     void mergeBodies(TInfoSink&, TIntermSequence& globals, const TIntermSequence& unitGlobals);
     void mergeLinkerObjects(TInfoSink&, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects);
     void mergeImplicitArraySizes(TType&, const TType&);