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

--- Comment #2 from Waldemar Valdas Bancewicz <waldemarbancewicz at ruggedcom 
dot com> 2011-01-14 13:42:03 UTC ---
Consider the following program test.c:

#include <stdio.h>

struct s {
    char a;
    int b;
    int* GetValp() { return &b; }
    int& GetValr() { return b; }
} __attribute__((packed));


int main() {
  struct s s1;

  *(s1.GetValp()) = 150;
  s1.GetValr() = 5;

  printf("%d\n", s1.b);
}

When trying to compile we get the following error message:

waldemarbancewicz@waldemarbancewicz:~/tmp$ g++ -o test test.c
test.c: In member function ‘int& s::GetValr()’:
test.c:7: error: cannot bind packed field ‘((s*)this)->s::b’ to ‘int&’

Reply via email to