Warning for #pragma once. GLSL and HLSL. Addresses #824.
diff --git a/Test/baseResults/preprocessor.pragma.vert.err b/Test/baseResults/preprocessor.pragma.vert.err
index e69de29..da435db 100644
--- a/Test/baseResults/preprocessor.pragma.vert.err
+++ b/Test/baseResults/preprocessor.pragma.vert.err
@@ -0,0 +1,2 @@
+WARNING: 0:10: '#pragma once' : not implemented
+
diff --git a/Test/baseResults/preprocessor.pragma.vert.out b/Test/baseResults/preprocessor.pragma.vert.out
index 8c52814..ebe1e4a 100644
--- a/Test/baseResults/preprocessor.pragma.vert.out
+++ b/Test/baseResults/preprocessor.pragma.vert.out
@@ -7,6 +7,8 @@
#pragma undefined_pragma(x,4)
+#pragma once
+
int main(){
}
diff --git a/Test/preprocessor.pragma.vert b/Test/preprocessor.pragma.vert
index 79f5600..0ae7ee2 100644
--- a/Test/preprocessor.pragma.vert
+++ b/Test/preprocessor.pragma.vert
@@ -7,5 +7,7 @@
#pragma undefined_pragma(x, 4)
+#pragma once
+
int main() {
}
diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp
index e768d46..69f4799 100644
--- a/glslang/MachineIndependent/ParseHelper.cpp
+++ b/glslang/MachineIndependent/ParseHelper.cpp
@@ -266,6 +266,8 @@
if (tokens.size() != 1)
error(loc, "extra tokens", "#pragma", "");
intermediate.setUseStorageBuffer();
+ } else if (tokens[0].compare("once") == 0) {
+ warn(loc, "not implemented", "#pragma once", "");
}
}
diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp
index 6602ba2..cba772d 100755
--- a/hlsl/hlslParseHelper.cpp
+++ b/hlsl/hlslParseHelper.cpp
@@ -550,6 +550,13 @@
warn(loc, "unknown pack_matrix pragma value", tokens[2].c_str(), "");
globalUniformDefaults.layoutMatrix = globalBufferDefaults.layoutMatrix = ElmRowMajor;
}
+ return;
+ }
+
+ // Handle once
+ if (lowerTokens[0] == "once") {
+ warn(loc, "not implemented", "#pragma once", "");
+ return;
}
}