On Fri, 13 Sept 2024 at 12:52, Jonathan Wakely <jwakely.gcc@xxxxxxxxx> wrote: > > On Fri, 13 Sept 2024 at 10:30, Sunil Kumar Dora > <sunilkumar.dora@xxxxxxxxxxxxxxxx> wrote: > > > > Dear GCC Community, > > I am currently encountering an issue with the -Wrange-loop-construct warning in GCC version 14, as well as in earlier versions. It appears that the warning is triggered incorrectly for certain loop constructs. > > Issue Details: > > I have tested the following code, which produces a warning with GCC/G++ suggesting the use of a reference: > > Test Code: > > Link to test code on Godbolt<https://godbolt.org/z/xM4K6s34E> (GCC produces warning) > > For comparison, here is how Clang 18 handles the same code: > > Link to Clang result on Godbolt<https://godbolt.org/z/aYTxP7K9o> (Clang handles correctly) > > It seems that GCC/G++ might be checking for trivial copyability rather than trivial copy-constructibility, which could be contributing to the issue. > > Questions: > > > > 1. Is this a known issue with the -Wrange-loop-construct option? > > 2. Am I possibly overlooking something in my usage of this option? > > > > If this is a known issue, or if you require additional information, please let me know. Additionally, if it would be appropriate to create a formal bug report to track this, I would be happy to do so. > > Please file a bug report (and please don't send a mail to both the gcc > and gcc-help lists, very few mails belong on both lists at the same > time - just pick one). > > I'm not sure what the heuristic is for triggering the warning, but I > agree that testing for trivially copy constructible might be better > here. This is the condition, so it is indeed using trivially copyable: /* Since small trivially copyable types are cheap to copy, we suppress the warning for them. 64B is a common size of a cache line. */ if (TREE_CODE (TYPE_SIZE_UNIT (type)) != INTEGER_CST || (tree_to_uhwi (TYPE_SIZE_UNIT (type)) <= 64 && trivially_copyable_p (type))) return; > > > > Thank you very much for your assistance and guidance. > > > > Thanks, > > Sunil Dora