Mercurial > hg > CbC > CbC_gcc
diff gcc/tree-nrv.c @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 84e7813d76e9 |
children |
line wrap: on
line diff
--- a/gcc/tree-nrv.c Thu Oct 25 07:37:49 2018 +0900 +++ b/gcc/tree-nrv.c Thu Feb 13 11:34:05 2020 +0900 @@ -1,5 +1,5 @@ /* Language independent return value optimizations - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2020 Free Software Foundation, Inc. This file is part of GCC. @@ -193,7 +193,7 @@ if (found != NULL) { /* If we found a return statement using a different variable - than previous return statements, then we can not perform + than previous return statements, then we cannot perform NRV optimizations. */ if (found != rhs) return 0; @@ -378,12 +378,10 @@ if (stmt && gimple_call_lhs (stmt) && !gimple_call_return_slot_opt_p (stmt) - /* Ignore internal functions without direct optabs, - those are expanded specially and aggregate_value_p - on their result might result in undesirable warnings - with some backends. */ - && (!gimple_call_internal_p (stmt) - || direct_internal_fn_p (gimple_call_internal_fn (stmt))) + /* Ignore internal functions, those are expanded specially + and aggregate_value_p on their result might result in + undesirable warnings with some backends. */ + && !gimple_call_internal_p (stmt) && aggregate_value_p (TREE_TYPE (gimple_call_lhs (stmt)), gimple_call_fndecl (stmt))) {