https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83062

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-11-20
     Ever confirmed|0                           |1

--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
trippels@gcc2-power8 tsan % cat tsan_external.ii
void __attribute__((always_inline)) fn1(int *, long, long, int) {}
typedef void AccessFunc(int *, long, long, int);
void fn2(AccessFunc p1) {
  bool a(&a);
  p1(0, 0, 0, 0);
  fn2(fn1);
}

trippels@gcc2-power8 tsan % g++ -O3 -c tsan_external.ii
tsan_external.ii:1:37: warning: always_inline function might not be inlinable
[-Wattributes]
 void __attribute__((always_inline)) fn1(int *, long, long, int) {}
                                     ^~~
tsan_external.ii: In function ‘void fn2(void (*)(int*, long int, long int,
int))’:
tsan_external.ii:1:37: error: inlining failed in call to always_inline ‘void
fn1(int*, long int, long int, int)’: caller is not optimized
tsan_external.ii:5:5: note: called from here
   p1(0, 0, 0, 0);
   ~~^~~~~~~~~~~~

Reply via email to