1*45fec0c1SDaniil Dudkin #ifndef BASIC_H 2*45fec0c1SDaniil Dudkin #define BASIC_H 3*45fec0c1SDaniil Dudkin 4*45fec0c1SDaniil Dudkin 5*45fec0c1SDaniil Dudkin class Parent { 6*45fec0c1SDaniil Dudkin public: func()7*45fec0c1SDaniil Dudkin virtual void func() {} 8*45fec0c1SDaniil Dudkin }; 9*45fec0c1SDaniil Dudkin 10*45fec0c1SDaniil Dudkin class Derived : public Parent { 11*45fec0c1SDaniil Dudkin public: func()12*45fec0c1SDaniil Dudkin virtual void func() {} 13*45fec0c1SDaniil Dudkin // CHECK: virtual void func() override {} 14*45fec0c1SDaniil Dudkin }; 15*45fec0c1SDaniil Dudkin 16*45fec0c1SDaniil Dudkin extern void ext(int (&)[5], const Parent &); 17*45fec0c1SDaniil Dudkin func(int t)18*45fec0c1SDaniil Dudkinvoid func(int t) { 19*45fec0c1SDaniil Dudkin int ints[5]; 20*45fec0c1SDaniil Dudkin for (unsigned i = 0; i < 5; ++i) { 21*45fec0c1SDaniil Dudkin int &e = ints[i]; 22*45fec0c1SDaniil Dudkin e = t; 23*45fec0c1SDaniil Dudkin // CHECK: for (auto & elem : ints) { 24*45fec0c1SDaniil Dudkin // CHECK-NEXT: elem = t; 25*45fec0c1SDaniil Dudkin } 26*45fec0c1SDaniil Dudkin 27*45fec0c1SDaniil Dudkin Derived d; 28*45fec0c1SDaniil Dudkin 29*45fec0c1SDaniil Dudkin ext(ints, d); 30*45fec0c1SDaniil Dudkin } 31*45fec0c1SDaniil Dudkin 32*45fec0c1SDaniil Dudkin #endif // BASIC_H 33