[PATCH] target/nios2: Mark raise_exception() as noreturn

Philippe Mathieu-Daudé posted 1 patch 2 years, 10 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/next-importer-push tags/patchew/20210531093018.1641599-1-f4bug@amsat.org
There is a newer version of this series
target/nios2/helper.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] target/nios2: Mark raise_exception() as noreturn
Posted by Philippe Mathieu-Daudé 2 years, 10 months ago
Raised exceptions don't return, so mark the helper with
TCG_CALL_NO_RETURN.

Fixes: 032c76bc6f9 ("nios2: Add architecture emulation support")
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 target/nios2/helper.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/nios2/helper.h b/target/nios2/helper.h
index b0cb9146a5f..9bf14c128ed 100644
--- a/target/nios2/helper.h
+++ b/target/nios2/helper.h
@@ -18,7 +18,7 @@
  * <http://www.gnu.org/licenses/lgpl-2.1.html>
  */
 
-DEF_HELPER_2(raise_exception, void, env, i32)
+DEF_HELPER_FLAGS_2(raise_exception, TCG_CALL_NO_RETURN, noreturn, env, i32)
 
 #if !defined(CONFIG_USER_ONLY)
 DEF_HELPER_2(mmu_read_debug, void, env, i32)
-- 
2.26.3


Re: [PATCH] target/nios2: Mark raise_exception() as noreturn
Posted by Richard Henderson 2 years, 10 months ago
On 5/31/21 2:30 AM, Philippe Mathieu-Daudé wrote:
> Raised exceptions don't return, so mark the helper with
> TCG_CALL_NO_RETURN.
> 
> Fixes: 032c76bc6f9 ("nios2: Add architecture emulation support")
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>   target/nios2/helper.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/target/nios2/helper.h b/target/nios2/helper.h
> index b0cb9146a5f..9bf14c128ed 100644
> --- a/target/nios2/helper.h
> +++ b/target/nios2/helper.h
> @@ -18,7 +18,7 @@
>    * <http://www.gnu.org/licenses/lgpl-2.1.html>
>    */
>   
> -DEF_HELPER_2(raise_exception, void, env, i32)
> +DEF_HELPER_FLAGS_2(raise_exception, TCG_CALL_NO_RETURN, noreturn, env, i32)

The noreturn is what you want for that.
For the flags, you probably want TCG_CALL_NO_WG.

>   
>   #if !defined(CONFIG_USER_ONLY)
>   DEF_HELPER_2(mmu_read_debug, void, env, i32)
>