https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118964
--- Comment #3 from printfne at gmail dot com --- (In reply to Andrew Pinski from comment #1) > Can you provide the preprocessed source and NOT just a cmake file but all of > the commands neded to generate the error? Of course. // main.cpp import MultArray; int main(int argc,char *argv[]) { MultArray<int,2> array; return 0; } // MultArray.cpp module; #include <iostream> export module MultArray; export template<typename T,int N = 2> class MultArray { }; template<typename T> class MultArray<T,2> { }; // Image.cpp module; #include <opencv2/opencv.hpp> export module Image; import MultArray; export class Image { }; // Camera.cpp module; #include <opencv2/opencv.hpp> export module Camera; import Image; export class Camera { }; g++ main.cpp Camera.cpp Image.cpp MultArray.cpp -fmodules-ts This compile command needs to be executed twice. The first command generates an error and creates the gcm.cache folder. The second command reproduces the above error message.