<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/143582>143582</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang] Unlimited polymorphic argument for intrnsic MERGE caused FIR verification failure
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang:fir-hlfir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DanielCChen
</td>
</tr>
</table>
<pre>
Consider the following code:
```
type base
real :: r1
end type
contains
SUBROUTINE Sub(Arg1, Arg2)
!CLASS(base) :: Arg1(:, :), Arg2(:, :) !! Workaround
CLASS(*) :: Arg1(:, :), Arg2(:, :)
LOGICAL :: Mask(2, 2) = .true.
SELECT TYPE ( V=>MERGE(Arg1, Arg2, Mask) )
CLASS DEFAULT
print*, "in class default"
END SELECT
END SUBROUTINE
end
```
Flang fails at the compile time with
```
error: loc("/home/cdchen/temp/SltArrFuncPolyPtr.f":11:3): nonscalar intrinsic argument
LLVM ERROR: aborting
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/cdchen/FLANG/build/bin/flang -fc1 -triple powerpc64-ibm-aix7.2.0.0 -emit-obj -ffree-form -fcolor-diagnostics -mrelocation-model pic -pic-level 2 -target-cpu pwr7 -resource-dir /home/cdchen/FLANG/build/lib/clang/21 -mframe-pointer=all -o /tmp/SltArrFuncPolyPtr-81bc14.o -x f95 SltArrFuncPolyPtr.f
flang-21: error: unable to execute command: IOT/Abort trap
flang-21: error: flang frontend command failed due to signal (use -v to see invocation)
flang version 21.0.0git (git@github.com:DanielCChen/llvm-project.git b896d262ebc530a92327b912b2bd5ac3b0bb0e56)
Target: powerpc64-ibm-aix7.2.0.0
Thread model: posix
InstalledDir: /home/cdchen/FLANG/build/bin
Build config: +assertions
flang-21: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
flang-21: note: diagnostic msg: /tmp/SltArrFuncPolyPtr-0a9010
flang-21: note: diagnostic msg: /tmp/SltArrFuncPolyPtr-0a9010.sh
flang-21: note: diagnostic msg:
```
If I use the workaround marked in the code, it compiles successfully.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVl1v4rwS_jXmZhSUOISSCy5SIH2R2FIBfV-dS8eZBG8dO7Kdfvz7IzvQ3e3pHu3uOQgp8mQ-PDPPPBNmrWgV4pJktyRbT9jgztos10wJlKvVGdWk0vXbcqWVFTUacGeERkupX4RqgesaSVqQuCDz-PKP_RHAvfUIFbMYTgAGmQSvmxZgkiBEVQe10YRr5ZhQNrw6Pt4e9o-n7f0GjkNF6KIwbULoCgrTUkLzoERostoVxyOhixCI5tcAo_bCn-gqCGn-zfpHOXz-IzQhNIF_tHliRg-qDiGv8Qgt_jBccLPb321Xxe5q_4XZJ0IX1GvR0e8aps4MOL2W87jZbVYnOP3rYQOELuBvkq5JuvmyOdxt_qM8q4vHHK4BLzeH9aYsHneniwygN0K5kMwKCKVCAZfMWqixYYN0hNKgurlfX25wvU-QvDeJxAWGCn2AQSmZaqFhQlpgLoCH664XEsGJDuFFuPMHKzRGG18UqXkoNCW0POsOCS15zc-oCC0ddj2h5VG6wphyUPxBy7cHZ6aN10-LJCFpkfrk0wKUVpYzyQwI5YxQVnBgph06VI7ExW739xfYHA77g1dmlTZOqJbExcNuUxw3YIeqEw4YVEMLBnttHDgNZ-d6G1paElq2wp2Hasp1R2gp5fP1EfVGf0XuCC2FtQNaQktgqgahuBxqHEtimD1DxfiTM4yHnh8d409QD10_jlc8Hfv1YHRrWPd-f38D-KRA5a64vyO0rAYha_8UXtqEdkQNTyByRvQSodcvaHo-n0Wi6iImXm-mdBpPY4iwEy7S1VeImsYgRo02nbfVUpuoFqxV2jrBLUSdQak5c0KrqNM1SugFh6gXPJL4jBIoRI6ZFl3E-wH6F3MDkUGrB8MxqoX5lQykqPxrnwGhJU0g6hrDOox6LZRDQ9I1kxIi7Z25z-ERLZKKJ7OphugVmjyDzwAUF6FMEfUYgnc4DopVHrYa8BX54AKSO6Zq_3K7PxFaFlXAhmH9z5yMDWiMVs6T38VDGBCsoR6Cf8_InivpYrAI0XOQIYJQz5cqj1M9OntGY4VWQBPftlY4b9gKR2bxd6BMi-8o_QM2p96oWuTzms4pVjxLY5bTlN5UeUIrWtUZ42kVV1WM2XwMfQrd9Bn9DD9e6WyQ1RAQMapa8UriYqusY1JivRbmN-AbF7f-BFyrRrSj4S2zFo0vif1QcqWd30zwDajQ2fayq-j_8A-8dqGG4nQqVn_B6a8NlPvdbv_P9v4Oyu1uc4TTPohvH-_gsHnYH05j6AeDvdEcrcUaxgEgdGE9VXsgMGs1F8xhDWZQYLkRvXtXMAhhzrAG5kZ_v5Tyf5uImOVxEv__PE3t-Xc68eO62DawBQ96z4ov75sXOmae0HPmZYPU6PeVcNdlYsEO3Be1GaR8m07qZVrnac4muExuZnm2iBdJPjkvGUtpzvI8iWdVzbJZkuR8ni3yLLnJ5nPMJ2JJY5rF8yROFrM4yadVUyUM4yRJMEvnWUNmMXZMyKkfoKk27STQ-jKZpdmCTiSrUNrwMUVpKAJJi0aY6CwbYfxuytYTswzTVw2tJbNYCuvsN3dOOBm-xkbrbA2PSopO-Kb3Wr512vTn7xYYNHrca2Gthc8B4Gzw8Cq3B88OohEjawSaGQxOBiOXf76-Lqk-L-m_AwAA__-0Yh7g">