Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/g++.dg/lto/pr82027_0.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/g++.dg/lto/pr82027_0.C Thu Oct 25 07:37:49 2018 +0900 @@ -0,0 +1,73 @@ +// { 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 ); +}