summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/cp/ChangeLog7
-rw-r--r--gcc/cp/error.c2
-rw-r--r--gcc/cp/method.c8
-rw-r--r--gcc/cp/semantics.c3
-rw-r--r--gcc/dwarf2out.c12
6 files changed, 23 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c7936eafaed..f9a644a2d9b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * dwarf2out.c (gen_subprogram_die): Tidy.
+
2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
PR target/60071
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 9e97f33b711..4b6682ad50a 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,10 @@
+2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * method.c (implicitly_declare_fn): Remove redundant
+ DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses.
+ * semantics.c (is_instantiation_of_constexpr): Likewise.
+ * error.c (dump_function_decl): Likewise.
+
2014-03-01 Jason Merrill <jason@redhat.com>
PR c++/60379
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index 050791cbdb1..454feb51989 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -1465,7 +1465,7 @@ dump_function_decl (cxx_pretty_printer *pp, tree t, int flags)
else if (DECL_VIRTUAL_P (t))
pp_cxx_ws_string (pp, "virtual");
- if (DECL_DECLARED_CONSTEXPR_P (STRIP_TEMPLATE (t)))
+ if (DECL_DECLARED_CONSTEXPR_P (t))
pp_cxx_ws_string (pp, "constexpr");
}
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index 78438245825..c3940f2d9b4 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -1645,9 +1645,8 @@ implicitly_declare_fn (special_function_kind kind, tree type,
/* For an inheriting constructor template, just copy these flags from
the inherited constructor template for now. */
raises = TYPE_RAISES_EXCEPTIONS (TREE_TYPE (inherited_ctor));
- deleted_p = DECL_DELETED_FN (DECL_TEMPLATE_RESULT (inherited_ctor));
- constexpr_p
- = DECL_DECLARED_CONSTEXPR_P (DECL_TEMPLATE_RESULT (inherited_ctor));
+ deleted_p = DECL_DELETED_FN (inherited_ctor);
+ constexpr_p = DECL_DECLARED_CONSTEXPR_P (inherited_ctor);
}
else
synthesized_method_walk (type, kind, const_p, &raises, &trivial_p,
@@ -1726,8 +1725,7 @@ implicitly_declare_fn (special_function_kind kind, tree type,
TREE_PROTECTED (fn) = TREE_PROTECTED (inherited_ctor);
/* Copy constexpr from the inherited constructor even if the
inheriting constructor doesn't satisfy the requirements. */
- constexpr_p
- = DECL_DECLARED_CONSTEXPR_P (STRIP_TEMPLATE (inherited_ctor));
+ constexpr_p = DECL_DECLARED_CONSTEXPR_P (inherited_ctor);
}
/* Add the "this" parameter. */
this_parm = build_this_parm (fn_type, TYPE_UNQUALIFIED);
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index eaeeb24b028..787eab81a64 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -3941,8 +3941,7 @@ static inline bool
is_instantiation_of_constexpr (tree fun)
{
return (DECL_TEMPLOID_INSTANTIATION (fun)
- && DECL_DECLARED_CONSTEXPR_P (DECL_TEMPLATE_RESULT
- (DECL_TI_TEMPLATE (fun))));
+ && DECL_DECLARED_CONSTEXPR_P (DECL_TI_TEMPLATE (fun)));
}
/* Generate RTL for FN. */
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 1c3ff03efe5..2b584a58853 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -18028,11 +18028,13 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
/* If the prototype had an 'auto' or 'decltype(auto)' return type,
emit the real type on the definition die. */
- if (is_cxx() && debug_info_level > DINFO_LEVEL_TERSE
- && (get_AT_ref (old_die, DW_AT_type) == auto_die
- || get_AT_ref (old_die, DW_AT_type) == decltype_auto_die))
- add_type_attribute (subr_die, TREE_TYPE (TREE_TYPE (decl)),
- 0, 0, context_die);
+ if (is_cxx() && debug_info_level > DINFO_LEVEL_TERSE)
+ {
+ dw_die_ref die = get_AT_ref (old_die, DW_AT_type);
+ if (die == auto_die || die == decltype_auto_die)
+ add_type_attribute (subr_die, TREE_TYPE (TREE_TYPE (decl)),
+ 0, 0, context_die);
+ }
}
}
else