http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53273
Bug #: 53273 Summary: test-cases suffer from cross-function optimizations with no way to mark limits Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: h...@gcc.gnu.org Depends on: 53272 Host: x86_64-unknown-linux-gnu Target: crisv32-* +++ This bug was initially created as a clone of Bug #53272 +++ See PR53272#c1 and the URL. Putting a function together with main and auxiliary functions causes different code than when put in separate files (difference present in the .expand dump), despite adding all currently known attributes to stop that (noinline, noclone, asm ("")). If this is deliberate, there must be a future-proof way to stop such cross-effects, if non-deliberate, it should just be fixed. Repeat by compiling the test-cases at the URL both separately (at least the -1.c file) and put in one file, for e.g. crisv32-elf. Observe differences in the .expand dump for the rtc_update_irq_enable function when compiled at -O2.