aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1992-03-05 12:22:08 -0800
committerJim Wilson <wilson@gcc.gnu.org>1992-03-05 12:22:08 -0800
commitead02915fa92af8cb1b801a83fc4019859eafef6 (patch)
tree56793a1360d0fc67b30b8ed36df6997ad885bed8
parentbf6beae550227348b95a592def3676335475dd17 (diff)
downloadgcc-ead02915fa92af8cb1b801a83fc4019859eafef6.zip
gcc-ead02915fa92af8cb1b801a83fc4019859eafef6.tar.gz
gcc-ead02915fa92af8cb1b801a83fc4019859eafef6.tar.bz2
*** empty log message ***
From-SVN: r397
-rw-r--r--gcc/integrate.c10
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;
}