aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Tietz <ktietz@redhat.com>2014-08-08 09:59:38 +0200
committerKai Tietz <ktietz@gcc.gnu.org>2014-08-08 09:59:38 +0200
commit322d490e02ff3008949d14370e651c89290465a6 (patch)
tree70090c79bbf4d735292c6f6682eab07dab7b0e97
parent8c9a36b7cac01afb70ca41c1435efb2077202035 (diff)
downloadgcc-322d490e02ff3008949d14370e651c89290465a6.zip
gcc-322d490e02ff3008949d14370e651c89290465a6.tar.gz
gcc-322d490e02ff3008949d14370e651c89290465a6.tar.bz2
semantics.c (expand_or_defer_fn_1): Check for keep-inline-dllexport that we operate on a true inline.
* semantics.c (expand_or_defer_fn_1): Check for keep-inline-dllexport that we operate on a true inline. From-SVN: r213751
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/semantics.c10
2 files changed, 10 insertions, 5 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 23afac4..7125444 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2014-08-08 Kai Tietz <ktietz@redhat.com>
+
+ * semantics.c (expand_or_defer_fn_1): Check for keep-inline-dllexport
+ that we operate on a true inline.
+
2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
* class.c, cp-gimplify.c, decl.c, decl2.c, error.c, method.c,
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 14bf82d..63365c7 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -4014,11 +4014,11 @@ expand_or_defer_fn_1 (tree fn)
this function as needed so that finish_file will make sure to
output it later. Similarly, all dllexport'd functions must
be emitted; there may be callers in other DLLs. */
- if ((flag_keep_inline_functions
- && DECL_DECLARED_INLINE_P (fn)
- && !DECL_REALLY_EXTERN (fn))
- || (flag_keep_inline_dllexport
- && lookup_attribute ("dllexport", DECL_ATTRIBUTES (fn))))
+ if (DECL_DECLARED_INLINE_P (fn)
+ && !DECL_REALLY_EXTERN (fn)
+ && (flag_keep_inline_functions
+ || (flag_keep_inline_dllexport
+ && lookup_attribute ("dllexport", DECL_ATTRIBUTES (fn)))))
{
mark_needed (fn);
DECL_EXTERNAL (fn) = 0;