title: g++ alignment problem
body: <p>I have the following code:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main(void)
  {
      int x __attribute__ ((aligned (16))) = 0;
      printf("%lX\n", &amp;x);
      return 0;
  }
  </code></pre>
  
  <p>Compiling and running this code using mingw32-c++.exe (GCC) 3.4.5 (mingw-vista special r3)
  prints <code>0x22FF24</code> which is <code>0b1000101111111100100100</code>. 
  Compiling and running this code using g++ (Debian 4.3.2-1.1) 4.3.2 prints <code>0x7FFFF470EE90</code> which is <code>0b11111111111111111110100011100001110111010010000</code>.</p>
  
  <p>Due to the alignment I expect the last 7 bits of the variable's address to be zero. Do I make an error in reasoning here? What's going on?</p>
  
  <p>Thanks in advance,</p>
  
  <p>Sebastian</p>