brintos

brintos / llvm-project-archived public Read only

0
0
Text · 806 B · 82d17b1 Raw
49 lines · cpp
1#include <stdio.h>2 3class Base1 {4public:5  virtual ~Base1() {}6};7 8class Base2 {9public:10  virtual void doit() = 0;11  virtual void doit_debug() = 0;12};13 14Base2 *b;15 16class Derived1 : public Base1, public Base2 {17public:18  virtual void doit() { printf("Derived1\n"); }19  virtual void __attribute__((nodebug)) doit_debug() {20    printf("Derived1 (no debug)\n");21  }22};23 24class Derived2 : public Base2 {25public:26  virtual void doit() { printf("Derived2\n"); }27  virtual void doit_debug() { printf("Derived2 (debug)\n"); }28};29 30void testit() { b->doit(); }31 32void testit_debug() {33  b->doit_debug();34  printf("This is where I should step out to with nodebug.\n"); // Step here35}36 37int main() {38 39  b = new Derived1();40  testit();41  testit_debug();42 43  b = new Derived2();44  testit();45  testit_debug();46 47  return 0;48}49