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