cgraph_node *candidate;
/* There is a thunk among callers. */
bool thunk;
+ /* Set if there is at least one caller that is OK. */
+ bool there_is_one;
/* Call site with no available information. */
bool unknown_callsite;
/* Call from outside the candidate's comdat group. */
if (csum->m_bit_aligned_arg)
issues->bit_aligned_aggregate_argument = true;
+
+ issues->there_is_one = true;
}
return false;
}
for (unsigned i = 0; i < param_count; i++)
(*ifs->m_parameters)[i].split_candidate = false;
}
+ if (!issues.there_is_one)
+ {
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ fprintf (dump_file, "There is no call to %s that we can modify. "
+ "Disabling all modifications.\n", node->dump_name ());
+ return true;
+ }
return false;
}
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+typedef long (*EFI_PCI_IO_PROTOCOL_CONFIG)();
+typedef struct {
+ EFI_PCI_IO_PROTOCOL_CONFIG Read;
+} EFI_PCI_IO_PROTOCOL_CONFIG_ACCESS;
+typedef struct {
+ EFI_PCI_IO_PROTOCOL_CONFIG_ACCESS Pci;
+} EFI_PCI_IO_PROTOCOL;
+int init_regs_0;
+static void __attribute__((constructor)) init(EFI_PCI_IO_PROTOCOL *pci_io) {
+ if (init_regs_0)
+ pci_io->Pci.Read();
+}