diff --git a/include/vulkan.h b/include/vulkan.h
index b067b83..518300f 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -1522,7 +1522,7 @@
     VkStructureType                             sType;
     const void*                                 pNext;
     size_t                                      codeSize;
-    const void*                                 pCode;
+    const uint32_t*                             pCode;
     VkShaderModuleCreateFlags                   flags;
 } VkShaderModuleCreateInfo;
 
diff --git a/tests/init.cpp b/tests/init.cpp
index 77e22d2..804efdd 100644
--- a/tests/init.cpp
+++ b/tests/init.cpp
@@ -522,13 +522,13 @@
 
 void VkTest::CreateShader(VkShader *pshader, VkShaderStageFlagBits stage)
 {
-    void *code;
+    uint32_t *code;
     uint32_t codeSize;
     struct icd_spv_header *pSPV;
     VkResult err;
 
-    codeSize = sizeof(struct icd_spv_header) + 100;
-    code = malloc(codeSize);
+    codeSize = sizeof(struct icd_spv_header) + sizeof(uint32_t) * 25;
+    code = (uint32_t *) malloc(codeSize);
     ASSERT_TRUE(NULL != code) << "malloc failed!";
 
     memset(code, 0, codeSize);
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index ca2aa9f..c9fb02c 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -3943,7 +3943,7 @@
 
     moduleCreateInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
     moduleCreateInfo.pNext = NULL;
-    moduleCreateInfo.pCode = &spv;
+    moduleCreateInfo.pCode = (const uint32_t *) &spv;
     moduleCreateInfo.codeSize = 4;
     moduleCreateInfo.flags = 0;
     vkCreateShaderModule(m_device->device(), &moduleCreateInfo, &module);
@@ -3975,7 +3975,7 @@
 
     moduleCreateInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
     moduleCreateInfo.pNext = NULL;
-    moduleCreateInfo.pCode = &spv;
+    moduleCreateInfo.pCode = (const uint32_t *) &spv;
     moduleCreateInfo.codeSize = sizeof(spv) + 10;
     moduleCreateInfo.flags = 0;
     vkCreateShaderModule(m_device->device(), &moduleCreateInfo, &module);
@@ -4008,7 +4008,7 @@
     moduleCreateInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
     moduleCreateInfo.pNext = NULL;
 
-    moduleCreateInfo.pCode = &spv;
+    moduleCreateInfo.pCode = (const uint32_t *) &spv;
     moduleCreateInfo.codeSize = sizeof(spv) + 10;
     moduleCreateInfo.flags = 0;
     vkCreateShaderModule(m_device->device(), &moduleCreateInfo, &module);
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 480a3a4..0c759d9 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -1080,7 +1080,7 @@
 
         shader_len = strlen(shader_code);
         moduleCreateInfo.codeSize = 3 * sizeof(uint32_t) + shader_len + 1;
-        moduleCreateInfo.pCode = malloc(moduleCreateInfo.codeSize);
+        moduleCreateInfo.pCode = (uint32_t *) malloc(moduleCreateInfo.codeSize);
         moduleCreateInfo.flags = 0;
 
         /* try version 0 first: VkShaderStage followed by GLSL */
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index 3c56ea1..fc30888 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -465,7 +465,7 @@
     void init(const Device &dev, const VkShaderModuleCreateInfo &info);
     VkResult init_try(const Device &dev, const VkShaderModuleCreateInfo &info);
 
-    static VkShaderModuleCreateInfo create_info(size_t code_size, const void *code, VkFlags flags);
+    static VkShaderModuleCreateInfo create_info(size_t code_size, const uint32_t *code, VkFlags flags);
 };
 
 class Shader : public internal::NonDispHandle<VkShader> {
@@ -792,7 +792,7 @@
     return Image::extent(width, height, depth);
 }
 
-inline VkShaderModuleCreateInfo ShaderModule::create_info(size_t code_size, const void *code, VkFlags flags)
+inline VkShaderModuleCreateInfo ShaderModule::create_info(size_t code_size, const uint32_t *code, VkFlags flags)
 {
     VkShaderModuleCreateInfo info = {};
     info.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
