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
foo:push {r11, lr}bl __sync_fetch_and_max_1pop {r11, lr}mov pc, lr
The problem
The ARM calling convention specified that integers smaller than the word size need to be sign/zero-extended to the word size. __sync_fetch_and_max_1 expects a signed i8 for its second argument, which should be in sign-extended form. However LLVM isn't performing a sign-extension for this parameter, which leads to issues such as rust-lang/rust#100650.