You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In case of the hybrid ABI, Clang crashes when an annotated field from a structure referenced by a capability is accessed or assigned a value. The following program can be used to reproduce the problem:
void
test(void)
{
struct {
__attribute__((annotate("myannotation"))) int u;
} var, * __capability x;
x = &var;
x->u = x->u;
}
Removing the annotation, using a pointer instead of the capability or removing the assignment results in a correctly compiled program. All three conditions must be satisfied to cause the crash. The above program correctly compiles with the pure-capability ABI.
In case of the hybrid ABI, Clang crashes when an annotated field from a structure referenced by a capability is accessed or assigned a value. The following program can be used to reproduce the problem:
Removing the annotation, using a pointer instead of the capability or removing the assignment results in a correctly compiled program. All three conditions must be satisfied to cause the crash. The above program correctly compiles with the pure-capability ABI.
An example output with a crash backtrace can be found here: https://gist.github.com/kwitaszczyk/68e4faeaeb6a8780c729e1c91d17d914 .
The text was updated successfully, but these errors were encountered: