diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 08f0a7c99ecdeb39b69db532b7a0577fb74fc13d..a49e02492362fe0caafd25f5702c253a9495b962 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-11-16 Richard Biener <rguenther@suse.de> + + PR middle-end/78333 + * gimplify.c (gimplify_function_tree): Do not instrument + GNU extern inline functions. + 2016-11-16 Martin Liska <mliska@suse.cz> PR sanitizer/78270 diff --git a/gcc/gimplify.c b/gcc/gimplify.c index c23888b4624eb7912a0c6372107fe5c8c56e3016..8611060aea677215f73f26cc36e93541418486ec 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -12547,6 +12547,10 @@ gimplify_function_tree (tree fndecl) /* ??? Add some way to ignore exceptions for this TFE. */ if (flag_instrument_function_entry_exit && !DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT (fndecl) + /* Do not instrument extern inline functions. */ + && !(DECL_DECLARED_INLINE_P (fndecl) + && DECL_EXTERNAL (fndecl) + && DECL_DISREGARD_INLINE_LIMITS (fndecl)) && !flag_instrument_functions_exclude_p (fndecl)) { tree x; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b964464152e501c98cf38c1e37bfbefac205e22c..59a707f0dbcd236ffe94c6a6f2d52f929ee348c3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-11-16 Richard Biener <rguenther@suse.de> + + PR middle-end/78333 + * gcc.dg/pr78333.c: New testcase. + 2016-11-16 Martin Liska <mliska@suse.cz> PR sanitizer/78270 diff --git a/gcc/testsuite/gcc.dg/pr78333.c b/gcc/testsuite/gcc.dg/pr78333.c new file mode 100644 index 0000000000000000000000000000000000000000..fd3669ce92581f02671bac3b91395e2a72459657 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr78333.c @@ -0,0 +1,9 @@ +/* { dg-do link } */ +/* { dg-options "-finstrument-functions" } */ + +extern inline __attribute__((gnu_inline, always_inline)) int foo () { } +int main() +{ + foo (); + return 0; +}