http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43663

--- Comment #8 from James Dennett <james.dennett at gmail dot com> 2011-05-15 
12:34:51 UTC ---
Interestingly this works with Apple's g++ 4.2.1, specifically
i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3), but
not with their 4.0.1 release.

Tested with:

int main() {
  struct S {
    S(): i(0) {}
    int i : 3;
  };
  S s;
  printf("&s: %p\n", (void*)&s);
  int const& cr(s.i);  // should compile, binding to a temporary
  printf("&cr: %p\n", (void*)&cr);
}

A non-const reference still correctly gives an error:
st.cc:12: error: invalid initialization of reference of type ‘int&’ from
expression of type ‘signed char:3’

Reply via email to