[patch, fortran] Fix a few false positive warnings with unused/undefined warnings

Thomas Koenig <[email protected]> Tue, 21 Jul 2026 19:07:29 +0200
Newsgroups gmane.comp.gcc.patches,gmane.comp.gcc.fortran
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------7p7eyhyKM7HbhySjBpLcBgdC
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hello world,

what it says in the ChangeLog.  Regression-tested. OK for trunk?

Best regards

	Thomas

Fix a few false positive warnings with unused/undefined warnings.

Trying out the new warnings on actual code found a new false positives.
The charlen of an ALLOCATE was not marked as used, the expression
in SELECT CASE was not marked as used and host-associated variables
were not exempt from testing.

All fixed with the attached patch.

gcc/fortran/ChangeLog:

	PR fortran/126333
	* resolve.cc (resolve_allocate_deallocate): Resolve charlen of ts
	and set as used if present.
	(resolve_select): Mark code->expr1 as used.
	(find_unused_vs_set): Do not complain about host-associated
	variables which are not marked private.

gcc/testsuite/ChangeLog:

	PR fortran/126333
	* gfortran.dg/warn_undefined_vars_8.f90: New test.
	* gfortran.dg/warn_undefined_vars_9.f90: New test.
	* gfortran.dg/warn_unused_but_set_variable_5.f90: New test.
--------------7p7eyhyKM7HbhySjBpLcBgdC
Content-Type: text/x-patch; charset=UTF-8; name="char.diff"
Content-Disposition: attachment; filename="char.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3Jlc29sdmUuY2MgYi9nY2MvZm9ydHJhbi9yZXNv
bHZlLmNjCmluZGV4IDZkYzFiOGUzMTVkLi41ZjNlZGIzN2FhNCAxMDA2NDQKLS0tIGEvZ2Nj
L2ZvcnRyYW4vcmVzb2x2ZS5jYworKysgYi9nY2MvZm9ydHJhbi9yZXNvbHZlLmNjCkBAIC05
OTYxLDYgKzk5NjEsMTQgQEAgZG9uZV9lcnJtc2c6CiAgICAgewogICAgICAgYm9vbCBhcnJf
YWxsb2Nfd29fc3BlYyA9IGZhbHNlOwogCisgICAgICAvKiBSZXNvbHZlIGFuZCBtYXJrIGFz
IHVzZWQgdGhlIGxlbmd0aCBvZiB0aGUgdHlwZSBzcGVjLiAgKi8KKyAgICAgIGlmIChjb2Rl
LT5leHQuYWxsb2MudHMudHlwZSA9PSBCVF9DSEFSQUNURVIpCisJeworCSAgZ2ZjX2V4cHIg
Kmxlbmd0aCA9IGNvZGUtPmV4dC5hbGxvYy50cy51LmNsLT5sZW5ndGg7CisJICBnZmNfcmVz
b2x2ZV9leHByIChsZW5ndGgpOworCSAgZ2ZjX3ZhbHVlX3VzZWRfZXhwciAobGVuZ3RoLCBW
QUxVRV9VU0VEKTsKKwl9CisKICAgICAgIC8qIFJlc29sdmluZyB0aGUgZXhwcjMgaW4gdGhl
IGxvb3Agb3ZlciBhbGwgb2JqZWN0cyB0byBhbGxvY2F0ZSB3b3VsZAogCSBleGVjdXRlIGxv
b3AgaW52YXJpYW50IGNvZGUgZm9yIGVhY2ggbG9vcCBpdGVtLiAgVGhlcmVmb3JlIGRvIGl0
IGp1c3QKIAkgb25jZSBoZXJlLiAgKi8KQEAgLTEwMjc0LDYgKzEwMjgyLDcgQEAgcmVzb2x2
ZV9zZWxlY3QgKGdmY19jb2RlICpjb2RlLCBib29sIHNlbGVjdF90eXBlKQogCSBHT1RPcyBh
cyBub3JtYWwgU0VMRUNUcyBmcm9tIGhlcmUgb24uICAqLwogICAgICAgY29kZS0+ZXhwcjEg
PSBjb2RlLT5leHByMjsKICAgICAgIGNvZGUtPmV4cHIyID0gTlVMTDsKKyAgICAgIGdmY192
YWx1ZV91c2VkX2V4cHIgKGNvZGUtPmV4cHIxLCBWQUxVRV9VU0VEKTsKICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTEwNTQyLDYgKzEwNTUxLDkgQEAgcmVzb2x2ZV9zZWxlY3QgKGdm
Y19jb2RlICpjb2RlLCBib29sIHNlbGVjdF90eXBlKQogICAgIGdmY193YXJuaW5nIChPUFRf
V3N1cnByaXNpbmcsCiAJCSAiTG9naWNhbCBTRUxFQ1QgQ0FTRSBibG9jayBhdCAlTCBoYXMg
bW9yZSB0aGF0IHR3byBjYXNlcyIsCiAJCSAmY29kZS0+bG9jKTsKKworICAvKiBGaW5hbGx5
LCBtYXJrIHRoZSBleHByZXNzaW9uIGFzIHVzZWQuICAqLworICBnZmNfdmFsdWVfdXNlZF9l
eHByIChjYXNlX2V4cHIsIFZBTFVFX1VTRUQpOwogfQogCiAKQEAgLTIwODQwLDYgKzIwODUy
LDkgQEAgZmluZF91bnVzZWRfdnNfc2V0IChnZmNfc3ltYm9sICpzeW0pCiAgICAgICB8fCBh
dHRyLT52b2xhdGlsZV8gfHwgYXR0ci0+YXN5bmNocm9ub3VzIHx8ICFhdHRyLT5yZWZlcmVu
Y2VkKQogICAgIHJldHVybjsKIAorICBpZiAoYXR0ci0+aG9zdF9hc3NvYyAmJiBhdHRyLT5h
Y2Nlc3MgIT0gQUNDRVNTX1BSSVZBVEUpCisgICAgcmV0dXJuOworCiAgIC8qIFRoZXJlIGlz
IG5vIGFsbG9jYXRpb24gaW4gc2lnaHQsIGJ1dCB0aGUgdmFyaWFibGUgaXMgdXNlZCBhbnl3
YXkuICBUaGlzCiAgICAgIG1pZ2h0IGJlIGhpZGRlbiBiZWhpbmQgUFJFU0VOVCwgYnV0IGlz
c3VlIGEgd2FybmluZyBub25ldGhlbGVzcy4gIElmCiAgICAgIHBlb3BsZSBjb21wbGFpbiwg
d2UgbWlnaHQgd2FudCB0byBtYWtlIHRoaXMgdG8gYW4gZXh0cmEgb3B0aW9uIHRvIGJlCmRp
ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3dhcm5fdW5kZWZpbmVkX3Zh
cnNfOC5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3dhcm5fdW5kZWZpbmVkX3Zh
cnNfOC5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI3ODM3
NDVhOGJhCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy93
YXJuX3VuZGVmaW5lZF92YXJzXzguZjkwCkBAIC0wLDAgKzEsMTcgQEAKKyEgeyBkZy1kbyBj
b21waWxlIH0KKyEgeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1XdW5kZWZpbmVkLXZhcnMi
IH0KKyEgQSB2YXJpYWJsZSByZWZlcmVuY2VkIGluIGEgY2hhcmxlbiB3YXMgbm90IHRyYWNr
ZWQgZm9yIHdhcm5pbmdzLgorCitwcm9ncmFtIG1lbWFpbgorICBpbXBsaWNpdCBub25lCisg
IGNoYXJhY3RlcihsZW49OiksIGFsbG9jYXRhYmxlIDo6IGMsIGQKKyAgaW50ZWdlciA6OiBu
LCBtCisgIG4gPSA0MgorICBhbGxvY2F0ZSAoY2hhcmFjdGVyKGxlbj1uKSA6OiBjKQorICBy
ZWFkICgqLCopIGMKKyAgcHJpbnQgKixjCisgICEgbSA9IDIxCisgIGFsbG9jYXRlIChjaGFy
YWN0ZXIobGVuPW0pIDo6IGQpICEgeyBkZy13YXJuaW5nICJVbmRlZmluZWQgdmFyaWFibGUi
IH0KKyAgcmVhZCAoKiwqKSBkCisgIHByaW50ICosZAorZW5kIHByb2dyYW0gbWVtYWluCmRp
ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3dhcm5fdW5kZWZpbmVkX3Zh
cnNfOS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3dhcm5fdW5kZWZpbmVkX3Zh
cnNfOS5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU5NzE1
YzJlMTFiCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy93
YXJuX3VuZGVmaW5lZF92YXJzXzkuZjkwCkBAIC0wLDAgKzEsMTggQEAKKyEgeyBkZy1kbyBj
b21waWxlIH0KKyEgeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1XdW5kZWZpbmVkLXZhcnMi
IH0KKyEgSW4gdGhlIGNvZGUgYmVsb3csIGEgY2FuIGJlIGFsbG9jYXRlZCBieSBjYWxsaW5n
IGJhciBhbmQKKyEgYyBmcm9tIHRoZSBvdXRzaWRlLgorbW9kdWxlIHgKKyAgaW1wbGljaXQg
bm9uZQorICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSwgcHJpdmF0ZSwgZGltZW5zaW9uKDopIDo6
IGEsIGIKKyAgaW50ZWdlciwgYWxsb2NhdGFibGUsIHB1YmxpYywgZGltZW5zaW9uKDopIDo6
IGMKK2NvbnRhaW5zCisgIHN1YnJvdXRpbmUgZm9vCisgICAgcHJpbnQgKixhCisgICAgcHJp
bnQgKixiICEgeyBkZy13YXJuaW5nICJVbmFsbG9jYXRlZCB2YXJpYWJsZSIgfQorICAgIHBy
aW50ICosYworICBlbmQgc3Vicm91dGluZSBmb28KKyAgc3Vicm91dGluZSBiYXIKKyAgICBh
ID0gWzEsMiwzXQorICBlbmQgc3Vicm91dGluZSBiYXIKK2VuZCBtb2R1bGUgeApkaWZmIC0t
Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy93YXJuX3VudXNlZF9idXRfc2V0X3Zh
cmlhYmxlXzUuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy93YXJuX3VudXNlZF9i
dXRfc2V0X3ZhcmlhYmxlXzUuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4wMGZmODczNjVjNAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUv
Z2ZvcnRyYW4uZGcvd2Fybl91bnVzZWRfYnV0X3NldF92YXJpYWJsZV81LmY5MApAQCAtMCww
ICsxLDI1IEBACishIHsgZGctZG8gY29tcGlsZSB9CishIHsgZGctYWRkaXRpb25hbC1vcHRp
b25zICItV3VudXNlZC1idXQtc2V0LXZhcmlhYmxlIiB9CisKK21vZHVsZSB4CisgIGltcGxp
Y2l0IG5vbmUKK2NvbnRhaW5zCisgIGZ1bmN0aW9uIGFzZGYoKSByZXN1bHQocmVzKQorICAg
IGNoYXJhY3RlcihsZW49MSkgOjogcmVzCisgICAgaW50ZWdlciA6OiBpCisgICAgcmVhZCAo
KiwqKSBpCisgICAgc2VsZWN0IGNhc2UoaSkKKyAgICBjYXNlKDEpCisgICAgICAgcmVzID0g
J2EnCisgICAgY2FzZSgyKQorICAgICAgIHJlcyA9ICdzJworICAgIGNhc2UoMykKKyAgICAg
ICByZXMgPSAnZCcKKyAgICBjYXNlKDQpCisgICAgICAgcmVzID0gJ2YnCisgICAgY2FzZSBk
ZWZhdWx0CisgICAgICAgcmVzID0gJyAnCisgICAgZW5kIHNlbGVjdAorICBlbmQgZnVuY3Rp
b24gYXNkZgorZW5kIG1vZHVsZSB4CisgIAo=

--------------7p7eyhyKM7HbhySjBpLcBgdC--