------- Comment #10 from aldot at gcc dot gnu dot org 2008-01-11 13:30 ------- Still fails for me on trunk (revision 131461):
gcc-4.3-HEAD -Os --combine -c -o pr28779.o pr28779a.c pr28779b.c pr28779b.c: In function 'e1000_write_reg_io': pr28779b.c:12: internal compiler error: in cgraph_estimate_size_after_inlining, at ipa-inline.c:188 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. $ cat pr28779a.c /* PR middle-end/28779 */ /* { dg-do compile } */ /* { dg-options "--combine -Os" } */ /* { dg-additional-sources "pr28779b.c" } */ struct e1000_hw { }; void e1000_io_write(struct e1000_hw *hw, unsigned long port, unsigned int value); void e1000_write_reg_io(struct e1000_hw *hw, unsigned int offset) { unsigned long io_addr; e1000_io_write(hw, io_addr, offset); } int e1000_reset_hw(struct e1000_hw *hw) { e1000_write_reg_io((hw), 0x00000); } $ cat pr28779b.c /* Additional file for PR middle-end/28779 */ struct pci_device_id { }; struct pci_dev { }; struct pci_driver { int (*probe) (struct pci_dev *dev, const struct pci_device_id *id); }; struct e1000_hw { }; int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent); struct pci_driver e1000_driver = { .probe = e1000_probe }; int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) { struct e1000_hw *adapter; e1000_reset_hw(adapter); } void e1000_io_write(struct e1000_hw *hw, unsigned long port, unsigned int value) { } -- aldot at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aldot at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28779