summaryrefslogtreecommitdiff
path: root/gcc/integrate.c
diff options
context:
space:
mode:
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1992-03-05 20:22:08 +0000
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1992-03-05 20:22:08 +0000
commit399fc0338dde4cf04254f2a8cba73bfe514c0a13 (patch)
tree56793a1360d0fc67b30b8ed36df6997ad885bed8 /gcc/integrate.c
parent86f22339af573ef79e7bd7d7267f50d307b9cdfe (diff)
downloadgcc-399fc0338dde4cf04254f2a8cba73bfe514c0a13.tar.gz
*** empty log message ***
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@397 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/integrate.c')
-rw-r--r--gcc/integrate.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c
index 6e50650020a..3026203d616 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;
}