On Thu, Nov 8, 2012 at 12:42 PM, Jakub Jelinek <ja...@redhat.com> wrote:
> We have in rs6000-protos.h > extern bool legitimate_indirect_address_p (rtx, int); > and in rs6000.c > inline bool > legitimate_indirect_address_p (rtx x, int strict) { ... } > and in predicates.md call this function. That works fine in C > (both -fgnu89-inline mode and C99), the function is inlined within rs6000.c > but an out of line copy is still emitted and predicates.md can thus > reference it. But in C++, if compiled with optimizations, without > -fkeep-inline-functions and the compiler inlines all calls to that function, > it doesn't have to emit anything. Thus, either we have the option to > move the definition of legitimate_indirect_address_p into a header (but > rs6000-protos.h doesn't look like a correct spot to define inline > functions), or we need to drop inline keyword and force that way > an out of line copy. Ok for trunk? > > 2012-11-08 Jakub Jelinek <ja...@redhat.com> > > PR target/54308 > * config/rs6000/rs6000.c (legitimate_indirect_address_p): Remove > inline keyword. Okay. Thanks, David