diff options
author | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-03-05 20:22:08 +0000 |
---|---|---|
committer | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1992-03-05 20:22:08 +0000 |
commit | 399fc0338dde4cf04254f2a8cba73bfe514c0a13 (patch) | |
tree | 56793a1360d0fc67b30b8ed36df6997ad885bed8 /gcc/integrate.c | |
parent | 86f22339af573ef79e7bd7d7267f50d307b9cdfe (diff) | |
download | gcc-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.c | 10 |
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; } |