jyknight wrote:

Minimized test-case:
```
cat > test.h <<EOF
#ifndef TEST_H_
#define TEST_H_
template <class _Tp>
using __underlying_type_t = __underlying_type(_Tp);
enum __legacy_memory_order { __mo_relaxed };
using __memory_order_underlying_t = __underlying_type_t<__legacy_memory_order>;
enum class memory_order : __memory_order_underlying_t { relaxed = __mo_relaxed 
};
#endif
EOF
cat > test1.h <<EOF
#ifndef TEST1_H_
#define TEST1_H_
#include "test.h"
#endif
EOF
cat > test2.h <<EOF
#ifndef TEST2_H_
#define TEST2_H_
#include "test.h"
#endif
EOF
cat > test.cppmap <<EOF
module "test_module" {
  export *
  module "test1.h" {
    export *
    header "test1.h"
  }
  module "test2.h" {
    export *
    header "test2.h"
  }
  textual header "test.h"
}
EOF

$CLANG -xc++ -std=gnu++20 -fmodule-name=test_module 
-fmodule-map-file=test.cppmap -Xclang=-emit-module -fmodules 
-fno-implicit-modules -fno-implicit-module-maps -c test.cppmap -o /dev/null
```

With a debug build of Clang, this actually results in an assert fail
`clang: clang/lib/Sema/SemaType.cpp:9881: QualType GetEnumUnderlyingType(Sema 
&, QualType, SourceLocation): Assertion `!Underlying.isNull()' failed.`

https://github.com/llvm/llvm-project/pull/155028
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to