[patch, Fortran] Fix undefined variable warnings related to ASSOCIATE
Thomas Koenig <[email protected]> Sat, 1 Aug 2026 15:26:36 +0200
| Newsgroups | gmane.comp.gcc.patches,gmane.comp.gcc.fortran |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --------------TxnKtU2I0bxKZ4BD85iKAiJg Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello world, this fixes one of the false positives from the addition of the recent -W options, with ASSOCIATE. Regression-tested. OK for trunk? Best regards Thomas Fix undefined variable warning related to ASSOCIATE. This patch fixes unused warnings in ASSOCIATE constructs by setting value_used and value_set attributes based on the associate names. This is placed after resolution of the code. To get to the association list, an extra argument to gfc_resolve was needed. gcc/fortran/ChangeLog: PR fortran/126558 * gfortran.h (gfc_resolve): Add optional argument for an association list. * resolve.cc (mark_assoc_used): New function. (gfc_resolve): Use it. gcc/testsuite/ChangeLog: PR fortran/126558 * gfortran.dg/warn_undefined_vars_10.f90: New test. --------------TxnKtU2I0bxKZ4BD85iKAiJg Content-Type: text/x-patch; charset=UTF-8; name="p1.diff" Content-Disposition: attachment; filename="p1.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2dmb3J0cmFuLmggYi9nY2MvZm9ydHJhbi9nZm9y dHJhbi5oCmluZGV4IGRmOTg3NTc2ZmZmLi4wYThjNmE4NTNhMCAxMDA2NDQKLS0tIGEvZ2Nj L2ZvcnRyYW4vZ2ZvcnRyYW4uaAorKysgYi9nY2MvZm9ydHJhbi9nZm9ydHJhbi5oCkBAIC00 MTg5LDcgKzQxODksNyBAQCBib29sIGdmY19vcF9yYW5rX2NvbmZvcm1hYmxlIChnZmNfZXhw ciAqLCBnZmNfZXhwciAqKTsKIGJvb2wgZ2ZjX3Jlc29sdmVfcmVmIChnZmNfZXhwciAqKTsK IHZvaWQgZ2ZjX2ZpeHVwX2luZmVycmVkX3R5cGVfcmVmcyAoZ2ZjX2V4cHIgKik7CiBib29s IGdmY19yZXNvbHZlX2V4cHIgKGdmY19leHByICopOwotdm9pZCBnZmNfcmVzb2x2ZSAoZ2Zj X25hbWVzcGFjZSAqKTsKK3ZvaWQgZ2ZjX3Jlc29sdmUgKGdmY19uYW1lc3BhY2UgKiwgZ2Zj X2Fzc29jaWF0aW9uX2xpc3QgKmEgPSBOVUxMKTsKIHZvaWQgZ2ZjX3Jlc29sdmVfY29kZSAo Z2ZjX2NvZGUgKiwgZ2ZjX25hbWVzcGFjZSAqKTsKIHZvaWQgZ2ZjX3Jlc29sdmVfYmxvY2tz IChnZmNfY29kZSAqLCBnZmNfbmFtZXNwYWNlICopOwogdm9pZCBnZmNfcmVzb2x2ZV9mb3Jt YWxfYXJnbGlzdCAoZ2ZjX3N5bWJvbCAqKTsKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3Jl c29sdmUuY2MgYi9nY2MvZm9ydHJhbi9yZXNvbHZlLmNjCmluZGV4IDVmM2VkYjM3YWE0Li5m NDYyMjM3NWI4NCAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jYworKysgYi9n Y2MvZm9ydHJhbi9yZXNvbHZlLmNjCkBAIC0xMjk3MCwxMCArMTI5NzAsMjkgQEAgcmVzb2x2 ZV9ibG9ja19jb25zdHJ1Y3QgKGdmY19jb2RlKiBjb2RlKQogCiAgIC8qIEZvciBhbiBBU1NP Q0lBVEUgYmxvY2ssIHRoZSBhc3NvY2lhdGlvbnMgKGFuZCB0aGVpciB0YXJnZXRzKSB3aWxs IGJlCiAgICAgIHJlc29sdmVkIGJ5IGdmY19yZXNvbHZlX3N5bWJvbCwgZHVyaW5nIHJlc29s dXRpb24gb2YgdGhlIEJMT0NLJ3MKLSAgICAgbmFtZXNwYWNlLiAgKi8KLSAgZ2ZjX3Jlc29s dmUgKG5zKTsKKyAgICAgbmFtZXNwYWNlLiAgSG93ZXZlciwgbWFya2luZyB2YXJpYWJsZXMg YXMgdXNlZCBhbnMgZGVmaW5lZCByZXF1aXJlcworICAgICBwYXNzaW5nIGV4dC5ibG9jay5h c3NvYy4gICovCisgIGdmY19yZXNvbHZlIChucywgY29kZS0+ZXh0LmJsb2NrLmFzc29jKTsK IH0KIAorLyogTWFyayBldmVyeXRoaW5nIGluIGFuIGFzc29jaWF0aW9uIGxpc3QgYXMgdXNl ZCBhbmQgc2V0IGlmIGFwcGxpY2FibGUsCisgICByZXNwZWN0aXZlbHkuICAqLworCitzdGF0 aWMgdm9pZAorbWFya19hc3NvY191c2VkIChnZmNfYXNzb2NpYXRpb25fbGlzdCAqYSkKK3sK KyAgd2hpbGUgKGEgIT0gTlVMTCkKKyAgICB7CisgICAgICBnZmNfc3ltYm9sICpuX3N5bSA9 IGEtPnN0LT5uLnN5bTsKKyAgICAgIGlmIChuX3N5bS0+YXR0ci52YWx1ZV91c2VkICE9IFZB TFVFX1VOVVNFRCkKKwlnZmNfdmFsdWVfdXNlZF9leHByIChhLT50YXJnZXQsIG5fc3ltLT5h dHRyLnZhbHVlX3VzZWQpOworCisgICAgICBpZiAoYS0+dmFyaWFibGUgJiYgbl9zeW0tPmF0 dHIudmFsdWVfc2V0ICE9IFZBTFVFX1VOU0VUKQorCWdmY19leHByX3NldF9hdCAoYS0+dGFy Z2V0LCAmbl9zeW0tPm90aGVyX2xvYywgbl9zeW0tPmF0dHIudmFsdWVfc2V0KTsKKworICAg ICAgYSA9IGEtPm5leHQ7CisgICAgfQorfQogCiAvKiBSZXNvbHZlIGxpc3RzIG9mIGJsb2Nr cyBmb3VuZCBpbiBJRiwgU0VMRUNUIENBU0UsIFdIRVJFLCBGT1JBTEwsIEdPVE8gYW5kCiAg ICBETyBjb2RlIG5vZGVzLiAgKi8KQEAgLTIxMDMxLDcgKzIxMDUwLDcgQEAgd2Fybl91bnVz ZWRfdnNfc2V0IChnZmNfbmFtZXNwYWNlICpucykKICAgIHdoaWNoIGZ1bmN0aW9ucyBvciBz dWJyb3V0aW5lcy4gICovCiAKIHZvaWQKLWdmY19yZXNvbHZlIChnZmNfbmFtZXNwYWNlICpu cykKK2dmY19yZXNvbHZlIChnZmNfbmFtZXNwYWNlICpucywgZ2ZjX2Fzc29jaWF0aW9uX2xp c3QgKmEpCiB7CiAgIGdmY19uYW1lc3BhY2UgKm9sZF9uczsKICAgY29kZV9zdGFjayAqb2xk X2NzX2Jhc2U7CkBAIC0yMTA1Myw2ICsyMTA3Miw3IEBAIGdmY19yZXNvbHZlIChnZmNfbmFt ZXNwYWNlICpucykKICAgcmVzb2x2ZV90eXBlcyAobnMpOwogICBjb21wb25lbnRfYXNzaWdu bWVudF9sZXZlbCA9IDA7CiAgIHJlc29sdmVfY29kZXMgKG5zKTsKKyAgbWFya19hc3NvY191 c2VkIChhKTsKIAogICBpZiAod2Fybl91bnVzZWRfYnV0X3NldF92YXJpYWJsZSB8fCB3YXJu X3VudXNlZF9pbnRlbnRfb3V0CiAgICAgICB8fCB3YXJuX3VudXNlZF9yZWFkIHx8IHdhcm5f dW5kZWZpbmVkX3ZhcnMpCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L3dhcm5fdW5kZWZpbmVkX3ZhcnNfMTAuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy93YXJuX3VuZGVmaW5lZF92YXJzXzEwLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uNTdjOTU3MTQzZTQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL3dhcm5fdW5kZWZpbmVkX3ZhcnNfMTAuZjkwCkBAIC0wLDAg KzEsMTUgQEAKKyEgeyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1vcHRpb25zICItV3VuZGVm aW5lZC12YXJzIiB9CishIFBSIGZvcnRyYW4vMTI2NTU4IC0gdGhpcyB1c2VkIHRvIGdpdmUg YSBmYWxzZSBwb3NpdGl2ZSBmb3IgeS4KKworcHJvZ3JhbSBtZW1haW4KKyAgaW1wbGljaXQg bm9uZQorICBpbnRlZ2VyIDo6IHgseQorICBhc3NvY2lhdGUgKGF4ID0+IHgpCisgIGVuZCBh c3NvY2lhdGUKKyAgcHJpbnQgKiwgeCAhIHsgZGctd2FybmluZyAiVW5kZWZpbmVkIHZhcmlh YmxlIiB9CisgIGFzc29jaWF0ZSAoYXkgPT4geSkKKyAgICBheSA9IDQyCisgIGVuZCBhc3Nv Y2lhdGUKKyAgcHJpbnQgKix5CitlbmQgcHJvZ3JhbSBtZW1haW4K --------------TxnKtU2I0bxKZ4BD85iKAiJg--