chrisnc wrote:

Thank you for the review!

> * Calling a function marked interrupt from a function marked interrupt is 
> still UB isn't it? Should there be another warning to cover that scenario as 
> well?

Correct. I can create a separate issue to describe such a warning.

> * I see that gcc has a warning in `-Wattributes` for this, you should raise a 
> bug there equivalent to the one llvm has, perhaps there even is one already.

It does, but `gcc`'s `-Wattributes` doesn't suffer from any of the issues being 
addressed here: it's already a separate flag, it cannot be silenced by putting 
`__attribute__((interrupt))` on the callee, and its warning text describes 
compiling with `-mgeneral-regs-only` to avoid the issue, though this only works 
when passed on the command line, not with 
`__attribute__((target("general-regs-only")))`.

It seems that LLVM does not have this target feature for 32-bit Arm, so I opted 
for `soft-float` as the escape hatch, which should achieve the same result, and 
check for it in function attributes. It is not checked transitively though, so 
this PR will not catch cases where an interrupt calls a soft-float function 
that then calls a function that uses VFP. The latter call is otherwise allowed 
though. IMO this is still a lot better than not having the escape hatch, but 
I'm open to suggestions.

https://github.com/llvm/llvm-project/pull/91870
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to