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