--- /dev/null
+#include "random.h"
+#include "TFormula.h"
--- /dev/null
+#include "TMath.h"
--- /dev/null
+#include "random.h"
--- /dev/null
+module TMath { header "TMath.h" }
+module TFormula { header "TFormula.h" }
+module TBranchProxy { header "TBranchProxy.h" }
--- /dev/null
+namespace std {
+ template<typename> struct mersenne_twister_engine {
+ friend bool operator==(const mersenne_twister_engine &,
+ const mersenne_twister_engine &) {
+ return false;
+ }
+ };
+ struct random_device {
+ mersenne_twister_engine<int> mt; // require complete type
+ };
+}
+
--- /dev/null
+// RUN: rm -rf %T
+// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%T -fmodule-name=TBranchProxy -emit-module -x c++ %S/Inputs/PR20786/module.modulemap