Fix #1060: Could crash if using --source-entry-point with -e; fixed.
diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp
index f427179..1313c87 100644
--- a/StandAlone/StandAlone.cpp
+++ b/StandAlone/StandAlone.cpp
@@ -781,8 +781,12 @@
shader->setStringsWithLengthsAndNames(compUnit.text, NULL, compUnit.fileNameList, compUnit.count);
if (entryPointName) // HLSL todo: this needs to be tracked per compUnits
shader->setEntryPoint(entryPointName);
- if (sourceEntryPointName)
+ if (sourceEntryPointName) {
+ if (entryPointName == nullptr)
+ printf("Warning: Changing source entry point name without setting an entry-point name.\n"
+ "Use '-e <name>'.\n");
shader->setSourceEntryPoint(sourceEntryPointName);
+ }
if (UserPreamble.isSet())
shader->setPreamble(UserPreamble.get());
shader->addProcesses(Processes);
diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h
index fb6d0bc..2a054c1 100644
--- a/glslang/MachineIndependent/ParseHelper.h
+++ b/glslang/MachineIndependent/ParseHelper.h
@@ -152,7 +152,7 @@
{
// Replace the entry point name given in the shader with the real entry point name,
// if there is a substitution.
- if (name != nullptr && *name == sourceEntryPointName)
+ if (name != nullptr && *name == sourceEntryPointName && intermediate.getEntryPointName().size() > 0)
name = NewPoolTString(intermediate.getEntryPointName().c_str());
}