diff options
author | Andrew Hsieh <andrewhsieh@google.com> | 2014-09-03 15:56:31 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-09-03 15:56:31 +0000 |
commit | 4254ad78d813b8c4cfc6c07218aee6b1be554f23 (patch) | |
tree | 8e9350d7e0339c5c7da9499ab5742527e21520c6 /gcc-4.9/gcc/testsuite/g++.dg/opt/pr62146.C | |
parent | 9bba04175106d9b9e8a58715e3e7fa560c13e092 (diff) | |
parent | e97c99f15937e5762a973b25192aab824126a6d3 (diff) | |
download | toolchain_gcc-4254ad78d813b8c4cfc6c07218aee6b1be554f23.tar.gz toolchain_gcc-4254ad78d813b8c4cfc6c07218aee6b1be554f23.tar.bz2 toolchain_gcc-4254ad78d813b8c4cfc6c07218aee6b1be554f23.zip |
Merge "[gcc-4.9] Merge svn r214745 from google/gcc-4_9 branch. Merge gcc-4_9 source r214745 from google/gcc-4_9 branch."
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/opt/pr62146.C')
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/opt/pr62146.C | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/opt/pr62146.C b/gcc-4.9/gcc/testsuite/g++.dg/opt/pr62146.C new file mode 100644 index 000000000..dbe417434 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/opt/pr62146.C @@ -0,0 +1,51 @@ +/* PR rtl-optimization/62146 */ +/* { dg-do compile } */ +/* { dg-options "-O2 " } */ +class F +{ +public: + virtual ~ F (); +}; +template < class CL > class G:public F +{ + int *member_; +public: + G ( int *b): member_ (0) + { + } +}; + +class D +{ +public: + template < class CL > void RegisterNonTagCallback (int, + void (CL:: + *p3) ()) + { + InternalRegisterNonTag (p3 ? new G < CL > ( 0) : 0); + } void InternalRegisterNonTag (F *); +}; + +void fn1 (); +class C1 +{ + void foo(); + class TokenType + { + public: + void AddToken () + { + } + }; + C1::TokenType bar_t; +}; +D a; +void C1::foo() +{ + if (&bar_t) + fn1 (); + for (int i = 0; i < sizeof 0; ++i) + a.RegisterNonTagCallback (0, &TokenType::AddToken); +} + +/* { dg-final { scan-assembler-not "mov.*_ZN2C19TokenType8AddTokenEv, .\\\(" } } */ |