From: CAI Q. <ca...@cc...> - 2009-06-01 23:43:48
|
From: Cyril Hrubis <ch...@su...> Subject: Re: [LTP] [ch...@su...: Re: [PATCH] fix missing return in several files.] Date: Mon, 1 Jun 2009 21:36:22 +0200 > Hi, > today I was digging a bit deeper into this source and find out following: > tst_exit() is defined as __attribute__ ((noreturn)). That's hint for gcc > compiler that this function never exits, so far it's good. > > Problem in these two tests is that they pass tst_exit as cleanup function to > tst_brkm(). But function tst_brkm() is not defined as __attribute__ > ((noreturn)). So we have function that never retuns and we have the same > problem again. The fix is trivial, instead of passing tst_exit() as cleanup > function just call it directly. > Well, in this case, tst_brkm() looks like unnecessary here. /* * If no cleanup function was specified, just return to the caller. * Otherwise call the specified function. If specified function * returns, call tst_exit(). */ if ( func != NULL ) { (*func)(); tst_exit(); } The tst_exit() you just added will not be called anyway. CAI Qian > Patch attached. > > Signed-off-by: ch...@su... > > -- > Cyril Hrubis > ch...@su... |