title: How can a stack underflow happen in C++?
body: <p>What is a simple example in C++ that causes a stack underflow in the case of invoking and returning from method calls?</p>
  
  <p>I am familiar with the calling convention, i.e <code>thiscall</code>, <code>stdcall</code> and the <code>cdecl</code> and way they would clean the stack. Wouldn't a stack underflow automatically be taken care of by the code generated by the compiler?</p>
  
  <p>What are the situations that can get me into trouble with stack underflow? </p>