
    template <class T> class my_stack {
         T* v;
        public:
         my_stack () { } 
         ~my_stack () { }      
       };
     
    
      typedef my_stack<int> TS;
      TS ts;
    
      void foo()
      {
              long  stretchChunkLength = 0;
              {
                      unsigned long acidDivision = 0;
                      switch (acidDivision)
                      {
                              case 0: break;
                              default: break;
                      }
                      int my_i = -1;    
                      my_stack<int> realtransients;  // put a breakpoint 1 here
                      int my_j = 1; 
                      while (my_i < acidDivision)
                      {
                              int inside_while;
                              my_i++;
                      }
              }
      }
    
      int main()
      {
              foo() ;
              return 0;
      }
      
