June 22, 2021
https://issues.dlang.org/show_bug.cgi?id=22072

          Issue ID: 22072
           Summary: importC: Error: compound literal is not an lvalue and
                    cannot be modified
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: major
          Priority: P1
         Component: dmd
          Assignee: nobody@puremagic.com
          Reporter: ibuclaw@gdcproject.org

It can be used as an lvalue in an assignment in C
"""
6.5.2.5-5
The  value  of  the  compound  literal  is  that  of  an  unnamed  object
initialized  by  the initializer  list.  If  the  compound  literal  occurs
outside  the  body  of  a  function,  the  object has  static  storage
duration;  otherwise,  it  has  automatic  storage  duration  associated  with
the enclosing block.
"""

Reduced test:
---
struct S { int a; int b; };
void test()
{
    (struct S) { 1, 2 } = (struct S) { 3, 4 };
}

--