<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJzFVE2P4zYM_TX2hZhAlj9iH3zIJFl0gOkuMDPYHgPJYhx1FSuQ5Enz70vZyc50EfTSQwFBlkmKIh8fKa26tM_P33-Hzgl_QA_nAw4gR20CnHU4gEI59qCHvXVHEbQdIOH13ojewwuaP8hkg_KJ1CAGBdHVbvt19fi83a1eX7cvb0_fvr4mvEnyVcI2CbvuxrwfE_7FaEn70wttazv4IIbgF93pRNY8r2v6AAmD7mC6QD7y1c0w4as70u1fJzdLegxrezwJhxSwP1gXYBy87gdUlA5dX993-q8Kaa2Zs4GV9-hmQCq2zh6SfEtPvl1O8T2ygSTf0II1v6PiFS368G8nCCT3QBGORoFE0AoHSlnQQxlZJHwJe6ENqs8Avh0QTs72ThzBoR9N0EMsE4SD9nMxgQ7Cw94aY8_-owAVu65P7ggQEEn5mJQU8-Msu0EfdXIO_EMXhYRJd0toeVPATaUiAHQx_9A4DKMbQH3IkuXmk0N5x9sMWSVucOI_wvjpk93xeTfft4jPmXAJ6ANRgeoXq_2QEdbrjMctn6h8iXqnxIUK4OEo4l_k_mxdxDinBglUiRnjWIGOKKfN3Ch0PpKnX6hPkXRGDD35gNWOYZ1XRcNY1XQoC1HUpapLzvICSyaablcv610MlZOwyKusLBbdL8WLXOiswlhwKZS5PERKRS51YvQIg6XiGgPvwmkhDZGNmoIam8JwqBbwmz3jO7rI74k9VyoaFAqCnRK8UU1iTNLhn9hF8CYAxADonJ3uR-DicyGOA3hab6PQW9ABjLU_PBj9A0HQgOkX13Klqs1VkzciFWOgNm0pykGJ40Odjs60hxBOE3n5F1o9PTjKBSEbp8d1iMSCUIAxJvrV3o_o6VDmGSvTQ9vILsOsLss9yholK9myRNmUuew63mUqNUKi8W2kP-cDnmFyEVuv3KT_PQLdcsY5yzLGmqIq-aLieaW4EkUjipzvs6RgeKQOX0Q_C-v61LWTS0LJk9JoT2Pxp1L4aYphO_drGnQw2BLWkcvvwmg1seH_mVHplHw7Zf43MpLr7g>53105</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            ICE on valid code: Assertion `C1->getType() == C2->getType() && "Op types should be identical!"' failed
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          arindam-8
      </td>
    </tr>
</table>

<pre>
    LLVM crashes when built with debug information (flags RelWithDebInfo and LLVM_ENABLE_ASSERTIONS):

llvm/lib/IR/Constants.cpp:2388: static llvm::Constant* llvm::ConstantExpr::getCompare(short unsigned int, llvm::Constant*, llvm::Constant*, bool): Assertion `C1->getType() == C2->getType() && "Op types should be identical!"' failed

The program resulting in this crash is as follows:
```

int a[];
 static int b();
 int *c() {
   int *d = b;
   return d;
 }
 int b() {
   e(&a == e);
   return 0;
 }

```
This was tested on llvm-11,12,13 and yesterday's master (llvm-14) with the following compilation command:

`clang-14 A_0e836490069ceb4a485d852034e50a9c_878_test2520436154.c`

The code is badly-typed because not all variables are declared. However, this should lead to the program being rejected with an error, and not to an ICE, so it looks like a bug.
 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzFVE1v4zgM_TX2hWggyx-xDz6kSQZboDsDtMXuMZAsxtGMYgWS3Gz-_VJ2Mu0Ogr0OIMgyKVHke4-SVl3a5-e__oTOCX9AD-cDDiBHbQKcdTiAQjn2oIe9dUcRtB0g4fXeiN7DC5q_acsG5RO5QQwKYqjd9uvq8Xm7W72-bl_enr59fU14k-SrhG0Sdp2NeT8m_IvRkuanF5rWdvBBDMEvutOJdvO8rukDZAy6g-kAxchXt40JX92xbv85udnSY1jb40k4pIT9wboA4-B1P6Cicuj4-n7Q_3VIa81cDay8RzcDUrF19pDkW7ry7XKK99EeSPINDVjzOy5e0aAP_3aCQHYPlOFoFEgErXCgkgVdlNGOhC9hL7RB9RnAtwPCydneiSM49KMJeog0QThoP5MJtBAe9tYYe_YfBFTsOj6FI0BAJOVjUlLOj7PtBn30yTnxD180EibdraDlzQE3l4oA0MH8w-MwjG4A9WFLlptPAeWdaDNklbjBif9J42dMdifm3XrfIj5nwiWgDyQF4i-y_ZAR1uuMxymfpHyJfqfEhQjwcBTxL2p_3l3EPKcGCcTEjHFkoCPJaTM3Cq2PFOkX6VMmnRFDTzFgtWNY51XRMFY1HcpCFHWp6pKzvMCSiabb1ct6F1PlZCzyKiuLRfcLeVELnVUYCZdCmctDlFTUUidGjzBYItcYeBdOC2lIbNQU1NiUhkO1gD_sGd_RRX1P6rlK0aBQEOxU4E1qEmORDr9jF8GbABADoHN2Oh-Bi9eF-BzA03objd6CDmCs_eHB6B8Igh6YfnGlK1Vtrpq8EWnQwWBLhyIp78JoNZX1e5otHZ1pDyGcps7hX2j0VO0oF0RrfLquL1hUA6ETAaFf7f2InhZlnrEyPbTVvlqqoquyBouu7AopM5llrGg6xmW1XKZGSDS-jb3H-YBnmELEVMpNqlvOOGd0gDVFVfJFxfNKcSWKRhQ532dJwfBI-S5iHgvr-tS1U0oEsCen0Z5e1J9O4acHENu51VMxBnoYW9LFoMTxoU6ny9sp-X8BQFXVwA">