+2016-01-12 Richard Biener <rguenther@suse.de>
+
+ PR lto/69077
+ * lto-symtab.c (lto_symtab_prevailing_virtual_decl): Properly
+ merge TREE_ADDRESSABLE and DECL_POSSIBLY_INLINED flags.
+
2016-01-04 Jakub Jelinek <jakub@redhat.com>
Update copyright years.
n = n->next_sharing_asm_name;
if (n)
{
+ /* Merge decl state in both directions, we may still end up using
+ the other decl. */
+ TREE_ADDRESSABLE (n->decl) |= TREE_ADDRESSABLE (decl);
+ TREE_ADDRESSABLE (decl) |= TREE_ADDRESSABLE (n->decl);
+
+ if (TREE_CODE (decl) == FUNCTION_DECL)
+ {
+ /* Merge decl state in both directions, we may still end up using
+ the other decl. */
+ DECL_POSSIBLY_INLINED (n->decl) |= DECL_POSSIBLY_INLINED (decl);
+ DECL_POSSIBLY_INLINED (decl) |= DECL_POSSIBLY_INLINED (n->decl);
+ }
lto_symtab_prevail_decl (n->decl, decl);
decl = n->decl;
}
+2016-01-12 Richard Biener <rguenther@suse.de>
+
+ PR lto/69077
+ * g++.dg/lto/pr69077_0.C: New testcase.
+ * g++.dg/lto/pr69077_1.C: Likewise.
+
2016-01-12 Jakub Jelinek <jakub@redhat.com>
PR target/69175
--- /dev/null
+// { dg-lto-do link }
+// { dg-lto-options { { -O3 -g -flto } } }
+// { dg-extra-ld-options "-r -nostdlib" }
+
+struct cStdDev
+{
+ long ns;
+ virtual double mean() const { return ns; }
+};
+
+struct cWeightedStdDev : public cStdDev {
+ virtual int netPack();
+};
+int cWeightedStdDev::netPack() { }
--- /dev/null
+struct cStdDev
+{
+ long ns;
+ virtual double mean() const { return ns; }
+};
+
+struct sf
+{
+ void recordScalar(double value);
+ cStdDev eedStats;
+ virtual void finish();
+};
+void sf::finish() {
+ recordScalar(eedStats.mean());
+}