Skip to content

Fix: Add missing <memory> header in shaderc_private.h - #1580

Merged
dneto0 merged 1 commit into
google:mainfrom
aka411:fix-missing-memory-include
Jul 24, 2026
Merged

Fix: Add missing <memory> header in shaderc_private.h#1580
dneto0 merged 1 commit into
google:mainfrom
aka411:fix-missing-memory-include

Conversation

@aka411

@aka411 aka411 commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Adding the missing header to resolve a compilation error when building with MinGW64 on Windows.

Click here to expand the error log Error: PS C:\Users\Akash\Music\shaderc lib\shaderc\build> ninja [1075/1158] Building CXX object libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj FAILED: [code=1] libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj C:\msys64\mingw64\bin\c++.exe -DSHADERC_ENABLE_HLSL=1 -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc_util/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/glslang" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-tools/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-headers/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest" -Wimplicit-fallthrough -O3 -DNDEBUG -Wextra-semi -Wall -Werror -fvisibility=hidden -DSHADERC_DISABLE_THREADED_TESTS -Wno-noexcept-type -MD -MT libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -MF libshaderc\CMakeFiles\shaderc_shaderc_private_test.dir\src\shaderc_private_test.cc.obj.d -o libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -c "C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc" In file included from C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc:15: C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:93:8: error: 'unique_ptr' in namespace 'std' does not name a template type 93 | std::unique_ptr initializer; | ^~~~~~~~~~ C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:27:1: note: 'std::unique_ptr' is defined in header ''; this is probably fixable by adding '#include ' 26 | #include "spirv-tools/libspirv.h" +++ |+#include 27 | [1076/1158] Building CXX object libshaderc/CMakeFiles/shad...ed_shaderc_private_test.dir/src/shaderc_private_test.cc.ob FAILED: [code=1] libshaderc/CMakeFiles/shaderc_shared_shaderc_private_test.dir/src/shaderc_private_test.cc.obj C:\msys64\mingw64\bin\c++.exe -DSHADERC_ENABLE_HLSL=1 -DSHADERC_SHAREDLIB -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc_util/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/glslang" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-tools/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-headers/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest" -Wimplicit-fallthrough -O3 -DNDEBUG -Wextra-semi -Wall -Werror -fvisibility=hidden -DSHADERC_DISABLE_THREADED_TESTS -Wno-noexcept-type -MD -MT libshaderc/CMakeFiles/shaderc_shared_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -MF libshaderc\CMakeFiles\shaderc_shared_shaderc_private_test.dir\src\shaderc_private_test.cc.obj.d -o libshaderc/CMakeFiles/shaderc_shared_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -c "C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc" In file included from C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc:15: C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:93:8: error: 'unique_ptr' in namespace 'std' does not name a template type 93 | std::unique_ptr initializer; | ^~~~~~~~~~ C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:27:1: note: 'std::unique_ptr' is defined in header ''; this is probably fixable by adding '#include ' 26 | #include "spirv-tools/libspirv.h" +++ |+#include 27 | [1084/1158] Building CXX object third_party/spirv-tools/test/opt/CMakeFiles/test_opt.dir/fold_test.cpp.obj ninja: build stopped: subcommand failed.

Environment:

-OS: Windows 11
-Compiler: CXX GCC 15.1.0 (via MSYS2/MinGW64)
-Build System: Ninja
-Build Configuration:Release mode

Verification:
I have applied this change locally and verified that the project now builds successfully using ninja.

Adding the missing <memory> header to resolve a compilation error when building with MinGW64 on Windows.

<details>
<summary><b>Click here to expand the error log</b></summary>
Error:
PS C:\Users\Akash\Music\shaderc lib\shaderc\build> ninja
[1075/1158] Building CXX object libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj
FAILED: [code=1] libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj
C:\msys64\mingw64\bin\c++.exe -DSHADERC_ENABLE_HLSL=1 -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc_util/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/glslang" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-tools/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-headers/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest" -Wimplicit-fallthrough -O3 -DNDEBUG -Wextra-semi -Wall -Werror -fvisibility=hidden -DSHADERC_DISABLE_THREADED_TESTS -Wno-noexcept-type -MD -MT libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -MF libshaderc\CMakeFiles\shaderc_shaderc_private_test.dir\src\shaderc_private_test.cc.obj.d -o libshaderc/CMakeFiles/shaderc_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -c "C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc"
In file included from C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc:15:
C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:93:8: error: 'unique_ptr' in namespace 'std' does not name a template type
   93 |   std::unique_ptr<shaderc_util::GlslangInitializer> initializer;
      |        ^~~~~~~~~~
C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:27:1: note: 'std::unique_ptr' is defined in header '<memory>'; this is probably fixable by adding '#include <memory>'
   26 | #include "spirv-tools/libspirv.h"
  +++ |+#include <memory>
   27 |
[1076/1158] Building CXX object libshaderc/CMakeFiles/shad...ed_shaderc_private_test.dir/src/shaderc_private_test.cc.ob
FAILED: [code=1] libshaderc/CMakeFiles/shaderc_shared_shaderc_private_test.dir/src/shaderc_private_test.cc.obj
C:\msys64\mingw64\bin\c++.exe -DSHADERC_ENABLE_HLSL=1 -DSHADERC_SHAREDLIB -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc_util/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/glslang" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-tools/include" -I"C:/Users/Akash/Music/shaderc lib/shaderc/third_party/spirv-headers/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest/include" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googlemock" -isystem "C:/Users/Akash/Music/shaderc lib/shaderc/third_party/googletest/googletest" -Wimplicit-fallthrough -O3 -DNDEBUG -Wextra-semi -Wall -Werror -fvisibility=hidden -DSHADERC_DISABLE_THREADED_TESTS -Wno-noexcept-type -MD -MT libshaderc/CMakeFiles/shaderc_shared_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -MF libshaderc\CMakeFiles\shaderc_shared_shaderc_private_test.dir\src\shaderc_private_test.cc.obj.d -o libshaderc/CMakeFiles/shaderc_shared_shaderc_private_test.dir/src/shaderc_private_test.cc.obj -c "C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc"
In file included from C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private_test.cc:15:
C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:93:8: error: 'unique_ptr' in namespace 'std' does not name a template type
   93 |   std::unique_ptr<shaderc_util::GlslangInitializer> initializer;
      |        ^~~~~~~~~~
C:/Users/Akash/Music/shaderc lib/shaderc/libshaderc/src/shaderc_private.h:27:1: note: 'std::unique_ptr' is defined in header '<memory>'; this is probably fixable by adding '#include <memory>'
   26 | #include "spirv-tools/libspirv.h"
  +++ |+#include <memory>
   27 |
[1084/1158] Building CXX object third_party/spirv-tools/test/opt/CMakeFiles/test_opt.dir/fold_test.cpp.obj
ninja: build stopped: subcommand failed.
</details>

Environment:

-OS: Windows 11
-Compiler:  CXX GCC 15.1.0 (via MSYS2/MinGW64)
-Build System: Ninja
-Build Configuration:Release mode

Verification:
I have applied this change locally and verified that the project now builds successfully using ninja.
@google-cla

google-cla Bot commented Jul 8, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@dneto0

dneto0 commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Thanks! Please sign the CLA. I can't accept the patch without the CLA being signed.

@aka411

aka411 commented Jul 10, 2026

Copy link
Copy Markdown
Contributor Author

I have already signed the CLA, and it looks like the status check has now updated to reflect that. Thanks!

@dneto0 dneto0 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks

@dneto0
dneto0 enabled auto-merge (rebase) July 23, 2026 14:29
@dneto0
dneto0 merged commit 3264cdb into google:main Jul 24, 2026
24 checks passed
@aka411
aka411 deleted the fix-missing-memory-include branch July 25, 2026 23:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants