Hi!

After r254437 "Instrument function exit with __builtin_unreachable in
C++" (assuming that I bisected that correctly), I'm seeing a number of
C++ "ifunc" test cases regress from PASS to UNSUPPORTED.  This is because
of:

    ifunc_available29518.c: In function 'void (* g())()':
    ifunc_available29518.c:6:15: warning: no return statement in function 
returning non-void [-Wreturn-type]

This is not a problem in C testing, where that diagnostic explicitly
needs to be enabled whereas in C++ mode it's enabled by default.

OK to fix that as follows?  If approving this, please respond with
"Reviewed-by: NAME <EMAIL>" so that your effort will be recorded.  See
<https://gcc.gnu.org/wiki/Reviewed-by>.

diff --git gcc/testsuite/lib/target-supports.exp 
gcc/testsuite/lib/target-supports.exp
index d7ef04f..63cc75b 100644
--- gcc/testsuite/lib/target-supports.exp
+++ gcc/testsuite/lib/target-supports.exp
@@ -439,8 +439,9 @@ proc check_ifunc_available { } {
        #ifdef __cplusplus
        extern "C" {
        #endif
+       extern void f_ ();
        typedef void F (void);
-       F* g (void) {}
+       F* g (void) { return &f_; }
        void f () __attribute__ ((ifunc ("g")));
        #ifdef __cplusplus
        }


Grüße
 Thomas

Reply via email to