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

    <tr>
        <th>Summary</th>
        <td>
            [Flang] No error checking when array intrinsic assignment uses an array of derived type with a different shape
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            flang:runtime
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          ohno-fj
      </td>
    </tr>
</table>

<pre>
    ```
Version of flang-new : 19.0.0(73447a3302541c343525570222b318e7f94f9402)/AArch64
```

When `array intrinsic assignment` uses an array of `derived type` with a different shape, no compilation-time error message is outputted. (vcommta_22.f90) 
When `derived type` is changed to `integer type`, an error is detected and a compilation-time error message is outputted. (vcommta_42.f90)


The following are the test program, Flang-new, Gfortran and ifort compilation/execution result.

vcommta_22.f90:
```fortran
program main
  type t
 integer i1
  end type t
  type(t),allocatable::b(:)
 allocate(b(10))
  b%i1=1
  b(1:10)=b(10:1)
  print*,b(1)%i1
 deallocate(b)
end program main
```

```
$ flang-new vcommta_22.f90; ./a.out

fatal Fortran runtime error(/work/home/ohno/CT/test/fort/tp/reproducerJ/Metro/CHMK23/vcommta_22.f90:8): Assign: mismatching element counts in array assignment (to 10, from 0)
Aborted (core dumped)
$
```

```
$ gfortran vcommta_22.f90; ./a.out
vcommta_22.f90:8:2:

    8 | b(1:10)=b(10:1)
      |  1
Error: Different shape for array assignment at (1) on dimension 1 (10 and 0)
$
```

```
$ ifort -diag-disable=10448 vcommta_22.f90; ./a.out
vcommta_22.f90(8): error #6366: The shapes of the array expressions do not conform.   [B]
 b(1:10)=b(10:1)
--^
compilation aborted for vcommta_22.f90 (code 1)
$
```

vcommta_42.f90:
```fortran
program main
 integer,allocatable::b(:)
  allocate(b(10))
  b=1
 b(1:10)=b(10:1)
  print*,b(1)
  deallocate(b)
end program main
```

```
$ flang-new vcommta_42.f90
error: Semantic errors in vcommta_42.f90
./vcommta_42.f90:5:3: error: Dimension 1 of left-hand side has extent 10, but right-hand side has extent 0
 b(1:10)=b(10:1)
    ^^^^^^^
$
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8VkFzozgT_TXypcuUaAGGgw9MPHxf7dbsZad2j1syNKAZkFySSGb-_ZYAx46TmUly2JSLgNSSWk_vPbV0TnWaaM_SDyw9bOTke2P3ptdm237ZHE3zfc8yvv74gfHyL7JOGQ2mhXaQuttqegAmSoiLiEecYb4TSbKTQnBMk7gWiUgxTXccEY8izmnXFklbJBwZFgyrsrR1nyXL5DdrLc-_e9LAMi6tld9BaW-VdqqGJfmRtGcZh8mRA6lhiTJtGNGQVffUgP9-ohDzoHwPEhrVtmRJe3C9PBHDO9AGajOe1CC9Mnrr1UhA1hoLIzknOwLlwEz-NHlPTQQM8_vajKOX_yBGbcEZFvA03dvFlYO6l7oLTSYEKO2pI3sOCGlIva6qHDTkqfbUgNQNyHenl5zTu4Z0eX7uCVozDOZB6Q6kJfA9gSfn4WRNZ-UYcqrOpxw-_tca622AWTegwsd1Ygwr-kb1FN7BkpsGH10veAOZKG9OfZ18aV1TgFGqtQVmqMCvX2f8VHzuJt08DVmwxdzPXLuTw2Bq6eVxoLC4KI8M8_B2RgfWiDAm9MUzcI-9cGSYqpiJQ3zVksdMlEukOKyjRBlfDTtZpT3DkuHdEh8mTR_zbujpsuu4sJvnILwokdtGTK7EeYv6B4gYVjIyk7-eo5VeDlCt52snfWFZQAmrB2O_Mqx6MxLDKngEw-ruM8MqUIZhFY4vfJ0YVpZO1jRTTfY3htUn8naO_v-n31EwrJ4xIZ_hK6GcRR3eRuVG6es-cJMGCjqH2kzaO1BnmV8sIFDeG4hnGbXWjHDhfHk0NgiJYV4bS9BM44maiyTwZ-7zArTdWQS_RPaFbYoSL8Rf-QGQA9vdvY5M4S8Ew0qfj_MJiRIOT20NWmOfwyRnpMJ8YDQ0aiQ923k8N_NZ1_z90CyWsG2U7LaNcovSDjFPkvzNaGF-JsVidQxFJrIsNATnmjfpgtMH11o2St9OllzYkIPGgDaBMro1dowCaumHcMutQL4C7O2WpR-X1yuXA7nyKQD8NOeFYg1B_EoIb1z6zY64euCrvO3X5nbxtXfb2tr1H1naCtsy91kHf9IotVf1QpvZLV6Kj65s6BH-lIlSPFJuUdVFIqaFgVq_7YNKnGoIeumAvvmgrMV6jpMHq7r-B0H8LfgGxn584fdTXm2avWgKUcgN7eMdxrzIRJZu-j3lMq8zzolSKpq8xTRpsjSVlO5iKXa7jdojx4Tv4oxjXGAaxbXYcZFlPC4Swl3KEk6jVEM0DPdjZGy3Uc5NtC_yIo83gzzS4OZKEnE-KibK9RphiKG8tPswcnucOscSPijn3WUur_wwF6JzwcHSA_xhVuXXPdVfwz3wEGqrH9eBz4vA6yLsB-XfZrLDvvf-5Ga1VAyrTvl-Oka1GRlWIcH13_ZkzReqwyU379wxrJbN3-_x3wAAAP__i7lFTg">