// RUN: rm -rf %t // RUN: %clang_cc1 -std=c++20 -fmodules-cache-path=%t -x c++ %s -verify // expected-no-diagnostics #pragma clang module build std module std [system] { module concepts [system] {} } #pragma clang module contents #pragma clang module begin std.concepts template T declval(); template concept common_reference_with = T::val; template concept input_or_output_iterator = true; template concept input_iterator = input_or_output_iterator && common_reference_with)&&, T&>; #pragma clang module end /*std.concepts*/ #pragma clang module endbuild /*std*/ #pragma clang module import std.concepts template struct iter_value_or_void{}; // ensure that we don't assert on a subsumption check due to improper // deserialization. template struct iter_value_or_void{};