diff options
author | Jeff Law <law@gcc.gnu.org> | 1994-11-28 22:44:47 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1994-11-28 22:44:47 -0700 |
commit | 203436d9aa8c88b05d173c0584a3f51c83a6f7b6 (patch) | |
tree | 9c9284cd5e56156fc564cf85babde8785e2f8bcd /gcc | |
parent | aaf87c453b384b20e54af789db76ce14021dbfdd (diff) | |
download | gcc-203436d9aa8c88b05d173c0584a3f51c83a6f7b6.zip gcc-203436d9aa8c88b05d173c0584a3f51c83a6f7b6.tar.gz gcc-203436d9aa8c88b05d173c0584a3f51c83a6f7b6.tar.bz2 |
integrate.c (function_cannot_inline_p): Do not inline functions which return a BLKmode value in registers.
* integrate.c (function_cannot_inline_p): Do not inline functions
which return a BLKmode value in registers.
From-SVN: r8576
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/integrate.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c index 2355508..6af0cf6 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -130,6 +130,11 @@ function_cannot_inline_p (fndecl) if (current_function_returns_pcc_struct) return "inline functions not supported for this return value type"; + /* We can't inline functions that return BLKmode structures in registers. */ + if (TYPE_MODE (TREE_TYPE (TREE_TYPE (fndecl))) == BLKmode + && ! aggregate_value_p (TREE_TYPE (TREE_TYPE (fndecl)))) + return "inline functions not supported for this return value type"; + /* We can't inline functions that return structures of varying size. */ if (int_size_in_bytes (TREE_TYPE (TREE_TYPE (fndecl))) < 0) return "function with varying-size return value cannot be inline"; |