Issue 76638
Summary [C++20][Modules] error: 'std::align_val_t' has different definitions in different modules
Labels new issue
Assignees
Reporter Ivan171
    I could not create a minimal reproducer, but I've attached the preprocessed files, which I think is enough to reproduce the issue.

### Environment
Windows 10
Clang 18.0.0git (https://github.com/llvm/llvm-project 85c395393480a77736fc7ad10f35e67f6cae6fed)
MSVC 2022 (17.8.1)

### Reproducer

```c++
// mod2.cpp

module;

#include <utility>

export module mod2;
```

```c++
// mod1.cpp

module;

#include <memory>

export module mod1;

import mod2;
```

```
$ clang++.exe -std=c++20 -fno-delayed-template-parsing -fno-ms-compatibility -x c++-module mod2.cpp --precompile
$ clang++.exe -std=c++20 -fno-delayed-template-parsing -fno-ms-compatibility -x c++-module mod1.cpp -fprebuilt-module-path=.
In file included from mod1.cpp:3:
In file included from C:\Program Files (x86)\Microsoft Visual Studio 2022\VC\Tools\MSVC\14.38.33130\include\memory:10:
In file included from C:\Program Files (x86)\Microsoft Visual Studio 2022\VC\Tools\MSVC\14.38.33130\include\exception:8:
In file included from C:\Program Files (x86)\Microsoft Visual Studio 2022\VC\Tools\MSVC\14.38.33130\include\yvals.h:20:
In file included from C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\crtdbg.h:13:
In file included from C:\Program Files (x86)\Microsoft Visual Studio 2022\VC\Tools\MSVC\14.38.33130\include\vcruntime_new_debug.h:10:
[repro.zip](https://github.com/llvm/llvm-project/files/13799238/repro.zip)
[repro.zip](https://github.com/llvm/llvm-project/files/13799246/repro.zip)

C:\Program Files (x86)\Microsoft Visual Studio 2022\VC\Tools\MSVC\14.38.33130\include\vcruntime_new.h:27:16: error: 'std::align_val_t'
      has different definitions in different modules; defined here first difference is enum with specified type 'size_t'
 (aka 'unsigned long long')
   27 |     enum class align_val_t : size_t {};
      |     ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Microsoft Visual Studio 2022\VC\Tools\MSVC\14.38.33130\include\vcruntime_new.h:27:16: note: but in
      'mod2.<global>' found enum with specified type 'size_t' (aka 'unsigned long long')
   27 |     enum class align_val_t : size_t {};
 |     ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to