Description of problem: Unable to compile any D source code with GDC when ldc-phobos-devel is installed, which is needed by ldc (LLVM D Compiler). Version-Release number of selected component (if applicable): * gcc version 10.2.1 20200723 (Red Hat 10.2.1-1) (GCC) * ldc-1.20.1-1.fc32.src.rpm How reproducible: Deterministic. Steps to Reproduce: Install both gcc-gdc and ldc (ldc-phobos-devel specifically) and compile a D source file with GDC. Example file: hello.d ---- import std.stdio; void main() { writeln("Hello, World!"); } ---- 1. sudo dnf install gcc-gdc 2. sudo dnf install ldc # or ldc-phobos-devel 3. gdc hello.d Actual results: /usr/include/d/core/atomic.d:186:4: error: statement expected to be { }, not ( 186 | in (atomicValueIsProperlyAligned(val)) | ^ /usr/include/d/core/atomic.d:186:33: error: function declaration without return type. (Note that constructors are always named 'this') 186 | in (atomicValueIsProperlyAligned(val)) | ^ /usr/include/d/core/atomic.d:195:1: error: found 'T' when expecting ';' following statement 195 | T atomicFetchAdd(MemoryOrder ms = MemoryOrder.seq, T)(ref shared T val, size_t mod) pure nothrow @nogc @trusted | ^ /usr/include/d/core/atomic.d:195:17: error: function declaration without return type. (Note that constructors are always named 'this') 195 | T atomicFetchAdd(MemoryOrder ms = MemoryOrder.seq, T)(ref shared T val, size_t mod) pure nothrow @nogc @trusted | ^ /usr/include/d/core/atomic.d:196:5: error: no identifier for declarator pure nothrow @nogc @trusted atomicFetchAdd(ref shared T val, size_t mod) 196 | if (__traits(isIntegral, T) || is(T == U*, U)) | ^ /usr/include/d/core/atomic.d:197:4: error: statement expected to be { }, not ( 197 | in (atomicValueIsProperlyAligned(val)) | ^ /usr/include/d/core/atomic.d:197:33: error: function declaration without return type. (Note that constructors are always named 'this') 197 | in (atomicValueIsProperlyAligned(val)) | ^ /usr/include/d/core/atomic.d:213:1: error: found 'T' when expecting ';' following statement 213 | T atomicFetchSub(MemoryOrder ms = MemoryOrder.seq, T)(ref T val, size_t mod) pure nothrow @nogc @trusted | ^ /usr/include/d/core/atomic.d:213:17: error: function declaration without return type. (Note that constructors are always named 'this') 213 | T atomicFetchSub(MemoryOrder ms = MemoryOrder.seq, T)(ref T val, size_t mod) pure nothrow @nogc @trusted | ^ /usr/include/d/core/atomic.d:214:5: error: no identifier for declarator pure nothrow @nogc @trusted atomicFetchSub(ref T val, size_t mod) 214 | if ((__traits(isIntegral, T) || is(T == U*, U)) && !is(T == shared)) | ^ /usr/include/d/core/atomic.d:215:4: error: statement expected to be { }, not ( 215 | in (atomicValueIsProperlyAligned(val)) | ^ /usr/include/d/core/atomic.d:215:33: error: function declaration without return type. (Note that constructors are always named 'this') 215 | in (atomicValueIsProperlyAligned(val)) | ^ /usr/include/d/core/atomic.d:224:1: error: found 'T' when expecting ';' following statement 224 | T atomicFetchSub(MemoryOrder ms = MemoryOrder.seq, T)(ref shared T val, size_t mod) pure nothrow @nogc @trusted | ^ /usr/include/d/core/atomic.d:224:17: error: function declaration without return type. (Note that constructors are always named 'this') 224 | T atomicFetchSub(MemoryOrder ms = MemoryOrder.seq, T)(ref shared T val, size_t mod) pure nothrow @nogc @trusted | ^ /usr/include/d/core/atomic.d:225:5: error: no identifier for declarator pure nothrow @nogc @trusted atomicFetchSub(ref shared T val, size_t mod) 225 | if (__traits(isIntegral, T) || is(T == U*, U)) | ^ /usr/include/d/core/atomic.d:226:4: error: statement expected to be { }, not ( 226 | in (atomicValueIsProperlyAligned(val)) | ^ /usr/include/d/core/atomic.d:226:33: error: function declaration without return type. (Note that constructors are always named 'this') 226 | in (atomicValueIsProperlyAligned(val)) | ^ /usr/include/d/core/atomic.d:242:1: error: found 'T' when expecting ';' following statement 242 | T atomicExchange(MemoryOrder ms = MemoryOrder.seq,T,V)(T* here, V exchangeWith) pure nothrow @nogc @trusted | ^ /usr/include/d/core/atomic.d:242:17: error: function declaration without return type. (Note that constructors are always named 'this') 242 | T atomicExchange(MemoryOrder ms = MemoryOrder.seq,T,V)(T* here, V exchangeWith) pure nothrow @nogc @trusted | ^ /usr/include/d/core/atomic.d:243:5: error: no identifier for declarator pure nothrow @nogc @trusted atomicExchange(T* here, V exchangeWith) 243 | if (!is(T == shared) && !is(V == shared)) | ^ /usr/include/d/core/atomic.d:244:4: error: statement expected to be { }, not ( 244 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:244:31: error: function declaration without return type. (Note that constructors are always named 'this') 244 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:244:39: error: basic type expected, not "Argument `here` is not properly aligned" 244 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:244:39: error: found '"Argument `here` is not properly aligned"' when expecting ')' 244 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:244:80: error: missing { ... } for function literal 244 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:244:80: error: found ')' when expecting ';' following statement 244 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:245:1: error: missing body { ... } after in or out 245 | { | ^ /usr/include/d/core/atomic.d:262:4: error: statement expected to be { }, not ( 262 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:262:31: error: function declaration without return type. (Note that constructors are always named 'this') 262 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:262:39: error: basic type expected, not "Argument `here` is not properly aligned" 262 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:262:39: error: found '"Argument `here` is not properly aligned"' when expecting ')' 262 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:262:80: error: missing { ... } for function literal 262 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:262:80: error: found ')' when expecting ';' following statement 262 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:263:1: error: missing body { ... } after in or out 263 | { | ^ /usr/include/d/core/atomic.d:278:4: error: statement expected to be { }, not ( 278 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:278:31: error: function declaration without return type. (Note that constructors are always named 'this') 278 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:278:39: error: basic type expected, not "Argument `here` is not properly aligned" 278 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:278:39: error: found '"Argument `here` is not properly aligned"' when expecting ')' 278 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:278:80: error: missing { ... } for function literal 278 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:278:80: error: found ')' when expecting ';' following statement 278 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:279:1: error: missing body { ... } after in or out 279 | { | ^ /usr/include/d/core/atomic.d:300:4: error: statement expected to be { }, not ( 300 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:300:31: error: function declaration without return type. (Note that constructors are always named 'this') 300 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:300:39: error: basic type expected, not "Argument `here` is not properly aligned" 300 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:300:39: error: found '"Argument `here` is not properly aligned"' when expecting ')' 300 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:300:80: error: missing { ... } for function literal 300 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:300:80: error: found ')' when expecting ';' following statement 300 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:301:1: error: missing body { ... } after in or out 301 | { | ^ /usr/include/d/core/atomic.d:318:4: error: statement expected to be { }, not ( 318 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:318:31: error: function declaration without return type. (Note that constructors are always named 'this') 318 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:318:39: error: basic type expected, not "Argument `here` is not properly aligned" 318 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:318:39: error: found '"Argument `here` is not properly aligned"' when expecting ')' 318 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:318:80: error: missing { ... } for function literal 318 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:318:80: error: found ')' when expecting ';' following statement 318 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:319:1: error: missing body { ... } after in or out 319 | { | ^ /usr/include/d/core/atomic.d:338:4: error: statement expected to be { }, not ( 338 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:338:31: error: function declaration without return type. (Note that constructors are always named 'this') 338 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:338:39: error: basic type expected, not "Argument `here` is not properly aligned" 338 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:338:39: error: found '"Argument `here` is not properly aligned"' when expecting ')' 338 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:338:80: error: missing { ... } for function literal 338 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:338:80: error: found ')' when expecting ';' following statement 338 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:339:1: error: missing body { ... } after in or out 339 | { | ^ /usr/include/d/core/atomic.d:359:4: error: statement expected to be { }, not ( 359 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:359:31: error: function declaration without return type. (Note that constructors are always named 'this') 359 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:359:39: error: basic type expected, not "Argument `here` is not properly aligned" 359 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:359:39: error: found '"Argument `here` is not properly aligned"' when expecting ')' 359 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:359:80: error: missing { ... } for function literal 359 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:359:80: error: found ')' when expecting ';' following statement 359 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:360:1: error: missing body { ... } after in or out 360 | { | ^ /usr/include/d/core/atomic.d:376:4: error: statement expected to be { }, not ( 376 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:376:31: error: function declaration without return type. (Note that constructors are always named 'this') 376 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:376:39: error: basic type expected, not "Argument `here` is not properly aligned" 376 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:376:39: error: found '"Argument `here` is not properly aligned"' when expecting ')' 376 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:376:80: error: missing { ... } for function literal 376 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:376:80: error: found ')' when expecting ';' following statement 376 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:377:1: error: missing body { ... } after in or out 377 | { | ^ /usr/include/d/core/atomic.d:401:4: error: statement expected to be { }, not ( 401 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:401:31: error: function declaration without return type. (Note that constructors are always named 'this') 401 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:401:39: error: basic type expected, not "Argument `here` is not properly aligned" 401 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:401:39: error: found '"Argument `here` is not properly aligned"' when expecting ')' 401 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:401:80: error: missing { ... } for function literal 401 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:401:80: error: found ')' when expecting ';' following statement 401 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:402:1: error: missing body { ... } after in or out 402 | { | ^ /usr/include/d/core/atomic.d:424:4: error: statement expected to be { }, not ( 424 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:424:31: error: function declaration without return type. (Note that constructors are always named 'this') 424 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:424:39: error: basic type expected, not "Argument `here` is not properly aligned" 424 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:424:39: error: found '"Argument `here` is not properly aligned"' when expecting ')' 424 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:424:80: error: missing { ... } for function literal 424 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:424:80: error: found ')' when expecting ';' following statement 424 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:425:1: error: missing body { ... } after in or out 425 | { | ^ /usr/include/d/core/atomic.d:442:4: error: statement expected to be { }, not ( 442 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:442:31: error: function declaration without return type. (Note that constructors are always named 'this') 442 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:442:39: error: basic type expected, not "Argument `here` is not properly aligned" 442 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:442:39: error: found '"Argument `here` is not properly aligned"' when expecting ')' 442 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:442:80: error: missing { ... } for function literal 442 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:442:80: error: found ')' when expecting ';' following statement 442 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:443:1: error: missing body { ... } after in or out 443 | { | ^ /usr/include/d/core/atomic.d:462:4: error: statement expected to be { }, not ( 462 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:462:31: error: function declaration without return type. (Note that constructors are always named 'this') 462 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:462:39: error: basic type expected, not "Argument `here` is not properly aligned" 462 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:462:39: error: found '"Argument `here` is not properly aligned"' when expecting ')' 462 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:462:80: error: missing { ... } for function literal 462 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:462:80: error: found ')' when expecting ';' following statement 462 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:463:1: error: missing body { ... } after in or out 463 | { | ^ /usr/include/d/core/atomic.d:486:4: error: statement expected to be { }, not ( 486 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:486:31: error: function declaration without return type. (Note that constructors are always named 'this') 486 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:486:39: error: basic type expected, not "Argument `here` is not properly aligned" 486 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:486:39: error: found '"Argument `here` is not properly aligned"' when expecting ')' 486 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:486:80: error: missing { ... } for function literal 486 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:486:80: error: found ')' when expecting ';' following statement 486 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:487:1: error: missing body { ... } after in or out 487 | { | ^ /usr/include/d/core/atomic.d:503:4: error: statement expected to be { }, not ( 503 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:503:31: error: function declaration without return type. (Note that constructors are always named 'this') 503 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:503:39: error: basic type expected, not "Argument `here` is not properly aligned" 503 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:503:39: error: found '"Argument `here` is not properly aligned"' when expecting ')' 503 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:503:80: error: missing { ... } for function literal 503 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:503:80: error: found ')' when expecting ';' following statement 503 | in (atomicPtrIsProperlyAligned(here), "Argument `here` is not properly aligned") | ^ /usr/include/d/core/atomic.d:504:1: error: missing body { ... } after in or out 504 | { | ^ Expected results: Generate an "a.out" executable without any message. Additional info:
This message is a reminder that Fedora 32 is nearing its end of life. Fedora will stop maintaining and issuing updates for Fedora 32 on 2021-05-25. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a Fedora 'version' of '32'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version. Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora 32 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior this bug is closed as described in the policy above. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete.
Fedora 32 changed to end-of-life (EOL) status on 2021-05-25. Fedora 32 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. If you are unable to reopen this bug, please file a new report against the current release. If you experience problems, please add a comment to this bug. Thank you for reporting this bug and we are sorry it could not be fixed.