Open brooksdavis opened 6 months ago
CC @AaronBallman @erichkeane
cc1as is the assembler, not the frontend, so has nothing to do with Aaron or myself. But changed to the llvm-as tool, which I hope is the right one.
cc1as is the assembler, not the frontend, so has nothing to do with Aaron or myself. But changed to the llvm-as tool, which I hope is the right one.
It seems unlikely llvm-as is the right thing given that llvm-as compiles IR to bytecode... I think it's probably clang:driver.
TL;DR: if clang crashes when invoked as an assembler on a .S file (assembly with CPP directives) it produces a reproducer that doesn't work due to a mismatch between the invocation of
clang -cc1as
and the partially preprocessed source file. It's unclear if the source should be more fully processed or the command in the .sh file should be different.Due to a bug in assembly I hit an assert in the PowerPC backend.
Clang dutifully produced the reproducers in https://gist.github.com/brooksdavis/4f2f973eb0c001603e79143233418450 which fail to reproduce the problem with many errors which look like it's trying to parse unexpanded macros as assembly.
I believe the issue is that
clang -cc1as
expects a fully processed assembly file, not one where includes have been embedded. The file is a hacked up version of the reproducer script that invokes clang in a way that actually triggers the crash.