================
@@ -779,10 +779,10 @@ void CodeGenFunction::EmitLabelStmt(const LabelStmt &S) {
}
void CodeGenFunction::EmitAttributedStmt(const AttributedStmt &S) {
- bool nomerge = false;
- bool noinline = false;
- bool alwaysinline = false;
- bool noconvergent = false;
+ bool nomerge = InNoMergeAttributedStmt;
+ bool noinline = InNoInlineAttributedStmt;
+ bool alwaysinline = InAlwaysInlineAttributedStmt;
+ bool noconvergent = InNoConvergentAttributedStmt;
StringRef amdgpuAVMode;
----------------
erichkeane wrote:
In that case, I would expect `musttail` to apply to anything in the statement.
So yes, I think it SHOULD continue to apply as-if the `always_inline` wasn't
there. It isn't 'recklessly', it is how it would work without `always_inline`
in the way.
The thing we need to do, and thing we need to test is that the application of
an attribute does NOT modify the behavior of another one (other than always/no
inline).
The way we are today, a new attribute 'undoes' all of the other attributes. it
is important that we STOP doing that, and the point of this patch.
https://github.com/llvm/llvm-project/pull/215173
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits