title: Oracle 12.2 Pro*C - Visual Studio 2015 C++ Warning - Declaration of sqlstm hides global declaration
body: <p><strong>Environment:</strong></p>
  <p>Win10 64bit
  Visual Studio 2015 with update 3
  Oracle 12.2 64bit client with Pro*C</p>
  <p>The *.cpp file generated from the *.pc file is generating the following warning</p>
  <p>This is a automatically generated file by Pro*C from *.pc file. Both the original struct and struct within the function1() have been automatically generated.</p>
  <pre><code>//generated by pro*c
  static struct sqlexd {
  param1
  param2
  ...
  } sqlstm  {13,2}
  
  
  int function1 ()
  {
    struct sqlexd sqlstm;  //hides global sqlstm from above
    sqlstm.slvsn = 13
    sqlstm.arrsiz = 2
  }
  
  </code></pre>
  <pre><code>struct sqlexd sqlstm; //this causes a C4459 warning
  </code></pre>
  <p><strong>C4459 declaration of slqstm hides global declaration</strong></p>
  <p>The cpp file is automatically generated by the *.pc file. I'm not quite sure how to resolve this warning as it's a auto-generated file</p>