• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // See http://llvm.org/bugs/show_bug.cgi?id=11468
2 #include <stdio.h>
3 #include <string>
4 
5 class Action {
6  public:
Action()7   Action() {}
PrintString(const std::string & msg) const8   void PrintString(const std::string& msg) const {
9     fprintf(stderr, "%s\n", msg.c_str());
10   }
Throw(const char & arg) const11   void Throw(const char& arg) const {
12     PrintString("PrintString called!");  // this line is important
13     throw arg;
14   }
15 };
16 
main()17 int main() {
18   const Action a;
19   fprintf(stderr, "&a before = %p\n", &a);
20   try {
21     a.Throw('c');
22   } catch(const char&) {
23     fprintf(stderr, "&a in catch = %p\n", &a);
24   }
25   fprintf(stderr, "&a final = %p\n", &a);
26   return 0;
27 }
28