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

    <tr>
        <th>Summary</th>
        <td>
            [Flang] Incorrect use association for generic names.
        </td>
    </tr>

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

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

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

<pre>
    The following test cases crashes. The problem is when procedure pointer `PtrInt8` is declared, its `procInterface` `Int8` is not marked as generic nor specific function, so it is typeless.
 
The `-fdebug-dump-symbols` shows `int8 (Function): Use from int8 in m1`.
```
  Module scope: m size=0 alignment=1 sourceRange=156 bytes
    int, PUBLIC (Function): Subprogram result:INTEGER(4) int (INTEGER(4) arg)
    int8, PUBLIC (Function): Subprogram result:INTEGER(8) int8 (INTEGER(8) arg)
    Subprogram scope: int size=8 alignment=4 sourceRange=60 bytes
      arg size=4 offset=4: ObjectEntity dummy type: INTEGER(4)
      int size=4 offset=0: ObjectEntity funcResult type: INTEGER(4)
    Subprogram scope: int8 size=16 alignment=8 sourceRange=66 bytes
      arg size=8 offset=8: ObjectEntity dummy type: INTEGER(8)
      int8 size=8 offset=0: ObjectEntity funcResult type: INTEGER(8)
  Module scope: m1 size=0 alignment=1 sourceRange=98 bytes
    int, PUBLIC (Function): Use from int in m
    int8, PUBLIC (Function): Generic Name (specific) procs: int,int8
  MainProgram scope: ptrassigngen size=8 alignment=8 sourceRange=216 bytes
    int (Function): Generic Name (specific) procs: int,int8
    int8 (Function): Use from int8 in m1
    ptrint8, EXTERNAL, POINTER (Function) size=8 offset=0: ProcEntity int8
 ```
I would expect both `Int` and `Int8` are generic names that has specific `Int` and `Int8` from module `m`.

```
  MODULE M

 CONTAINS

    FUNCTION Int(Arg)
    INTEGER :: Int, Arg
      Int = Arg
    END FUNCTION

    FUNCTION Int8(Arg)
    INTEGER(8) :: Int8, Arg
      Int8 = 8_8
    END FUNCTION

  END MODULE

 MODULE M1
  USE M

    INTERFACE Int8
      MODULE PROCEDURE Int
      MODULE PROCEDURE  Int8
    END INTERFACE

  END MODULE

  PROGRAM PtrAssignGen
  USE M
  USE M1
  IMPLICIT NONE

  INTERFACE Int
    MODULE PROCEDURE  Int
    MODULE PROCEDURE  Int8
  END INTERFACE

  PROCEDURE(Int8),   POINTER :: PtrInt8

  PtrInt8 => Int8
  IF ( PtrInt8(100_8) .NE. 8_8 ) ERROR STOP 12

  END
  ```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVl1v6jgT_jXmZlTkGAjmggsOH1WkFhCl0nt35CST4HcTG9nOdru_fuUQIKT0nFa7UiWaeOZ5nvl0hLUyV4hTMvpBRoueqNxBm-lCKInFfH5A1Yt1-j7dHxAyXRT6TaocHFoHibBoITHCHtD2wVscjY4LLEFaeDug8s8JppVBOGqpHBogId06EynHSUi9XYpJIQymhM1BOusNvFfkrTORoDcjIW15KO2gFOYPTEFYyFGhkQkobcAeMZGZTCCrVOKkVh7UapDO-7n3IxZobZ_QBaEzOP142SSkD1mKcZU_pFV5fLDvZawL6_nsQb_VoqRyHAjjqwv0hAxm8GoRMqNLqM-lgjIgIW0oSEibvxMjPOu0KhBsoo_ovUuw8m8kgwUFUchclagcGSwCsLoyCe6Eyv1pMAohfndozzjg6Xxw29cfT9H8jq6XKj4anRtRgkFbFY4MZtF6v3xc7gjjQ8ImHsI7dt4Kk3uINhH_F0y8YeK3VPweVQvpkiEvsskRv8nRsJOjkHZTBJ7g7DwEnWUWa0-Pu4n_j4lbKifdO6RVWb7X_eGPbhPSxmuJaeHRD3i-_XZ1Ln4L-knM_MwThDdR827UHxrjJmp-Vcm_HDX_GDW_A_jNsNuoH8Yg-NocTPh3x6A9nvV0fqOxH5vNshYl-uPzdvGt61eUbWpF2LzGOgcnpNp2S3p05rRpc1T3-7lbWRbcm_n_TibANzbaxefozDlvy__tl7v17KnO4cYXetdB-6xptkYnTcu0FHWWZQRvuipSwL-OmDiItTs094Bfy0Kl7VtBGLxeBKJEC-4gHByEvd4JnzrXwZanliQhLVv7-5Mtvlm8Pi3huW0E8816P4vWLzcvAWD1up7vo80aPDnjs87OawYEyGBWz8upn71VawIjX_jB4vb1cr24gP-KlH_Oel7EV3J-n53X9Pwn_wq9Pzml6Ob9OWuXbnp96eawUbZbzebLk5qWjMZ_u9vMl4vXXW3wy_MOgpd1Qf-SYo_1uJs9w9aZWT29j6juqG8eLoFFz9unaB7tYb1ZdxBvwrtqu6v9N8e8rf6TwC4e_vKtqzvxBYbrwJ4qf_4ku3U-vfSlJ4PbekQrP-oXN8YDSn_WrdRfL_u-UcA_LHe7zQ5e9pstBOxDys__Xuarl04H6WQwET2cBmM6HgyCcBT0DtM4HYd0JHgcCopZFlIxHCcMhzFFnARZ2JNTRtmQMjoO-HA8CPrDlKcZH9Fxlg3TIeNkSLEUsugXxZ9lX5u8J62tcMoDyka9QsRY2PoTmLGsEConjPmvYTP19g9xlVsypIW0zl4RnHRF_d28qj1GC4hUoo3x66qyCMJanUjhlyFk2twuqH6vMsX04NzR72fCVoStcukOVdxPdEnYytM0Pw9Ho_01S9iqVm0JW9XC_wkAAP__DJxitg">