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;
     }
 }