[Bug ipa/85960] -fipa-pta and ifunc are incompatible
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85960 --- Comment #10 from Gianni Tedesco --- Confirmed. Code from trunk works splendidly on the code-base where this bug was discovered.
[Bug ipa/85960] -fipa-pta and ifunc are incompatible
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85960 --- Comment #9 from Gianni Tedesco --- Sure, I can test it on real world cases over the weekend I think. Nice work guys. Thanks.
[Bug ipa/85960] -fipa-pta and ifunc are incompatible
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85960 --- Comment #3 from Gianni Tedesco --- Both gcc-7.3 and gcc-8 from ubuntu on x86-64: gcc version 8.0.1 20180414 (experimental) [trunk revision 259383] (Ubuntu 8-20180414-1ubuntu2) gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)
[Bug ipa/85960] -fipa-pta and ifunc are incompatible
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85960 --- Comment #2 from Gianni Tedesco --- Both gcc-7.3 and gcc-8 from ubuntu on x86-64: gcc version 8.0.1 20180414 (experimental) [trunk revision 259383] (Ubuntu 8-20180414-1ubuntu2) gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)
[Bug translation/85960] New: -fipa-pta and ifunc are incompatible
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85960 Bug ID: 85960 Summary: -fipa-pta and ifunc are incompatible Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: translation Assignee: unassigned at gcc dot gnu.org Reporter: gianni at scaramanga dot co.uk Target Milestone: --- Created attachment 44202 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44202=edit Minimal example showing the bug -fipa-pta and ifuncs are incompatible, it looks like ifunc resolved functions are treated as no-ops which seems to lead to erroneous conclusions about the possible values of objects pointed to in such a functions parameters. For example, if an ifunc has a pointer argument and all implementations of that functions write to the pointed-to object, then we get a warning about that object being read before being set - which is erroneous. Moreover we end up with miscompiled code as a result of this.