```sh
/ldc/import/core/stdc/stdint.d(96): Error: undefined identifier `cpp_longlong` /ldc/import/core/stdc/stdint.d(97): Error: undefined identifier `cpp_ulonglong` /ldc/import/core/stdc/stdint.d(118): Error: undefined identifier `cpp_ulong`
```

I am sure it defined because I add static assert to confirm this `config.d`:

```d
version (Windows)
{
    enum __c_long  : int;
    enum __c_ulong : uint;

    alias int   c_long;
    alias uint  c_ulong;

    alias __c_long   cpp_long;
    alias __c_ulong  cpp_ulong;

    alias long  cpp_longlong;
    alias ulong cpp_ulonglong;
}
else version (Posix)
{
  static if ( (void*).sizeof > int.sizeof )
  {
    enum __c_longlong  : long;
    enum __c_ulonglong : ulong;

    alias long  c_long;
    alias ulong c_ulong;

    alias long   cpp_long;
    alias ulong  cpp_ulong;

    alias __c_longlong  cpp_longlong;
    alias __c_ulonglong cpp_ulonglong;
  }
  else
  {
    enum __c_long  : int;
    enum __c_ulong : uint;

    alias int   c_long;
    alias uint  c_ulong;

    alias __c_long   cpp_long;
    alias __c_ulong  cpp_ulong;

    alias long  cpp_longlong;
    alias ulong cpp_ulonglong;
  }
  static assert(false);
}
```

If I run a simple test file, it will work.


But in big project there is a lot import circular reference, and some args or file order. I get it.


LDC 1.40.0-beta4 for macOS.


I also test on linux ldc 1.40.0-beta4, the error changed:


```sh
/ldc/import/core/sys/posix/sys/types.d(109): Error: undefined identifier `c_long`
```







Reply via email to