diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1992-03-05 12:22:08 -0800 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1992-03-05 12:22:08 -0800 |
commit | ead02915fa92af8cb1b801a83fc4019859eafef6 (patch) | |
tree | 56793a1360d0fc67b30b8ed36df6997ad885bed8 /gcc | |
parent | bf6beae550227348b95a592def3676335475dd17 (diff) | |
download | gcc-ead02915fa92af8cb1b801a83fc4019859eafef6.zip gcc-ead02915fa92af8cb1b801a83fc4019859eafef6.tar.gz gcc-ead02915fa92af8cb1b801a83fc4019859eafef6.tar.bz2 |
*** empty log message ***
From-SVN: r397
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/integrate.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c index 6e50650..3026203 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -164,6 +164,16 @@ function_cannot_inline_p (fndecl) return "function too large to be inline"; } + /* We cannot inline this function if forced_labels is non-zero. This + implies that a label in this function was used as an initializer. + Because labels can not be duplicated, all labels in the function + will be renamed when it is inlined. However, there is no way to find + and fix all variables initialized with addresses of labels in this + function, hence inlining is impossible. */ + + if (forced_labels) + return "function with label addresses used in initializers cannot inline"; + return 0; } |