+2017-12-22 Martin Jambor <mjambor@suse.cz>
+
+ PR lto/82027
+ * lto-cgraph.c (output_cgraph_opt_summary_p): Also check former
+ clones.
+
2017-12-22 Julia Koval <julia.koval@intel.com>
Sebastian Peryt <sebastian.peryt@intel.com>
static int
output_cgraph_opt_summary_p (struct cgraph_node *node)
{
- return (node->clone_of
+ return ((node->clone_of || node->former_clone_of)
&& (node->clone.tree_map
|| node->clone.args_to_skip
|| node->clone.combined_args_to_skip));
+2017-12-22 Martin Jambor <mjambor@suse.cz>
+
+ PR lto/82027
+ * g++.dg/lto/pr82027_0.C: New test.
+
2017-12-22 Julia Koval <julia.koval@intel.com>
Sebastian Peryt <sebastian.peryt@intel.com>
--- /dev/null
+// { dg-lto-do run }
+// { dg-lto-options { { -O3 -flto } } }
+
+class Position
+{
+ public:
+ Position( void ) {}
+ virtual ~Position() {}
+
+ virtual void calcPercent( const char *name,int pos,int size ) {}
+};
+
+
+class Looper
+{
+ public:
+ Looper( Position *cc,int size )
+ : m_cc(cc), m_size(size) {}
+ virtual ~Looper() {}
+
+ void loop( void )
+ {
+ for( int pos=0; pos<m_size; pos++ )
+ {
+ m_cc->calcPercent( "",pos,m_size );
+ }
+ }
+
+ private:
+ Position *m_cc;
+ int m_size;
+};
+
+
+class EmptyClass
+{
+ public:
+ EmptyClass( void ) {}
+ virtual ~EmptyClass() {}
+};
+
+
+class Combined : public EmptyClass, public Position
+{
+ public:
+ Combined( void ) : m_percent(0) {}
+ ~Combined() {}
+
+ void calcPercent( const char *name,int pos,int size )
+ {
+ int percent = 100*pos/size;
+ if( percent!=m_percent )
+ m_percent = percent;
+ }
+
+ private:
+ int m_percent;
+};
+
+
+
+int main( int argc,char **argv )
+{
+ Combined *comb = new Combined();
+ Looper *looper = new Looper( comb,argc );
+
+ looper->loop();
+
+ delete comb;
+ delete looper;
+
+ return( 0 );
+}