<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/54091>54091</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            OpenMP runtime error if there's constructor inside declare target
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            openmp
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          chichunchen
      </td>
    </tr>
</table>

<pre>
    ```
#include <assert.h>
#include <stdio.h>

int foo() { return 40; }
int bar() { return 2; }

#pragma omp declare target
int bbb = foo() + bar();
#pragma omp end declare target


int main() {
  int aaa = 0;
  #pragma omp target map(aaa)
  aaa = bbb;

  assert(aaa == 42);
  return 0;
}
```

Result from `clang++ -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa  test.c`:
```
Libomptarget error: Executing target region abort target.
Libomptarget error: Running ctor 0x00000000002006d0 failed.
Libomptarget error: Failed to init globals on device 0
Libomptarget error: Consult https://openmp.llvm.org/design/Runtimes.html for debugging options.
Libomptarget error: Source location information not present. Compile with -g or -gline-tables-only.
Libomptarget fatal error 1: failure of target construct while offloading is mandatory
Aborted (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx9VMuSmzAQ_Bq4qEzJAj84cNhdr09JJbX5AiENoJSQKEns4-8zAtvYG5ddGAQzdPf0jKit_KqSLT0d9JDQp4Tlygg9SiBJ_sK9BxeyLslf74V9kMpeR6ezMoE01iZsn7CSJLtn4iCMzpCCJvkzPjgseTV3_-exm7QL8eB423Ni-4FIEJo7IIG7FsIVXF2jrsM1PXteSBD3HhoYeRfxe1E9V2ZROz8nJEY45xMvvTAQcssx4yLEgAiYHtWcEs8vo_hF4Dk2NWB-JSbFvIJdl0LOri3ci3Xfejud38CPGjvkbE8whGWbFl2KRq0aO4BBtefFapbtkZb3shVmhZf47zwnJIAPmYjw-dNdwh-qxtpPpYNz1mEmef0EMQZl2rMpDlplDeG1deH0LHsE8DYaE18XwTpCP-nlxyjdSkoarjTIhxDHKYUEi-1TgbTa1lx7giokvCsB5GEFL9ZMHnYhDD4Wz454zJZlWr_3mXXo6VGCVy2OzBEVB9WDz7rQa5xOhzT12LaxCjsErN4_lPvHjg5FaSt4TEbRiNHPa2MDGRx4MCFDZf2AlZEPFTqyQnCHZ60MYCdrDX5ljf66R9XwwPVMSNaRMpo44oawzblNAlUGN4pAPrrIYZtGWy5jDcrjZBvJsSFfM_hTbCY6jKMrLMLIsR9AXqb-MiiprHJZ5iVPgwoaql9o4s_fxM2GnQQp1NCBg4Tt_CIjBoxX-Cm63bzp6HR125oW7RjrTNgeb2KDTpfV4OxfELjBjsr7ETwuNgUt12lXbQrgsCvpptnl23UB5XZPi225F3VD2a7ZpJrXoH2VbHDvsLn5uEg2h1RVjLJ4bBgr8oJlYr9vpJT7Mqfr9Q73eUEBvyb6MiypqyY9OBQeg1r54JcgfgVwjgAmLsTnY-isq0SnRDca0YFJJ_nVpP0fMZrSBg">