diff options
author | Jan Hubicka <jh@suse.cz> | 2004-02-05 20:01:20 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2004-02-05 19:01:20 +0000 |
commit | 6039a93dd7214d5f1effdd2c165dc4e52b950139 (patch) | |
tree | bde2cf151d7286b5f7f3375f222e5f41d1f11f88 /gcc | |
parent | 693dcd3d88f485a85a8cce67f4a42c24b8cc3a1f (diff) | |
download | gcc-6039a93dd7214d5f1effdd2c165dc4e52b950139.zip gcc-6039a93dd7214d5f1effdd2c165dc4e52b950139.tar.gz gcc-6039a93dd7214d5f1effdd2c165dc4e52b950139.tar.bz2 |
tree.c (cp_cannot_inline_tree_fn): Allow inlining of comdat functions.
* tree.c (cp_cannot_inline_tree_fn): Allow inlining of comdat
functions.
From-SVN: r77330
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/tree.c | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 8dfd5c1..e1d559f 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2004-02-05 Jan Hubicka <jh@suse.cz> + + * tree.c (cp_cannot_inline_tree_fn): Allow inlining of comdat + functions. + 2003-02-05 Giovanni Bajo <giovannibajo@gcc.gnu.org> PR c++/14008 diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index 3413ede..e07ecd8 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -2080,8 +2080,12 @@ cp_cannot_inline_tree_fn (tree* fnp) return 1; /* Don't auto-inline anything that might not be bound within - this unit of translation. */ - if (!DECL_DECLARED_INLINE_P (fn) && !(*targetm.binds_local_p) (fn)) + this unit of translation. + Exclude comdat functions from this rule. While they can be bound + to the other unit, they all must be the same. This is especilly + important so templates can inline. */ + if (!DECL_DECLARED_INLINE_P (fn) && !(*targetm.binds_local_p) (fn) + && !DECL_COMDAT (fn)) { DECL_UNINLINABLE (fn) = 1; return 1; |