/* { dg-do compile } */
/* { dg-options "-O2 -fPIE" } */
/* { dg-require-effective-target pie } */

typedef struct {
  int unspecified : 1;
  int secure : 1;
} MemTxAttrs;

enum { MSCAllowNonSecure } tz_msc_read_pdata;

int tz_msc_read_s_0;
int tz_msc_check();
int address_space_ldl_le();

void tz_msc_read(MemTxAttrs attrs) {
  int as = tz_msc_read_s_0;
  long long data;
  switch (tz_msc_check()) {
  case MSCAllowNonSecure:
    attrs.secure = attrs.unspecified = 0;
    data = address_space_ldl_le(as, attrs);
  }
  tz_msc_read_pdata = data;
}
