Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C sizeof(struct) - bad order of evaluation #595

Open
h0nzZik opened this issue Nov 5, 2019 · 0 comments
Open

C sizeof(struct) - bad order of evaluation #595

h0nzZik opened this issue Nov 5, 2019 · 0 comments

Comments

@h0nzZik
Copy link
Contributor

h0nzZik commented Nov 5, 2019

The program

int main() {
        return sizeof(struct S{int x;}) + sizeof(struct S);
}

fails to compile, with the error message

empty0.c:2:2: warning: Trying to compute sizeof of an incomplete or function type. (Constraint violation)

However, if we swap the operands of +, the program compiles (with -fno-native-compilation):

int main() {
        return sizeof(struct S) + sizeof(struct S{int x;});
}

I guess that the problem is that the right side of + is evaluated first. For -,*, and /, the order of evaluation seem to be right.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant