xbolva00 added inline comments.
================ Comment at: clang/include/clang/Basic/AttrDocs.td:522 + let Content = [{ +This function attribute suppresses the inlining of a function at the call sites +of the function. ---------------- Feel free to suggest better wording :) ================ Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:4044 +def warn_function_stmt_attribute_precedence : Warning< + "statement attribute %0 has higher precedence than function attribute " + "'%select{always_inline|flatten}1'">, ---------------- Feel free to suggest better wording :) ================ Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:4045 + "statement attribute %0 has higher precedence than function attribute " + "'%select{always_inline|flatten}1'">, + InGroup<IgnoredAttributes>; ---------------- Ideally this would be something like "statement attribute %0 has higher precedence than function attribute %1" but... ================ Comment at: clang/lib/Sema/SemaStmtAttr.cpp:231 + S.Diag(St->getBeginLoc(), diag::warn_function_stmt_attribute_precedence) + << A << (Decl->hasAttr<AlwaysInlineAttr>() ? 0 : 1); + } ---------------- .. not sure how to get AttributeCommonInfo here so I could use "<< X". ================ Comment at: clang/test/CodeGen/attr-noinline.cpp:15-16 +// CHECK: call void @_Z1fbb({{.*}}) #[[NOINLINEATTR]] + [[clang::noinline]] [] { bar(); bar(); }(); // noinline only applies to the anonymous function call +// CHECK: call void @"_ZZ3fooiENK3$_0clEv"(%class.anon* {{[^,]*}} %ref.tmp) #[[NOINLINEATTR]] + [[clang::noinline]] for (bar(); bar(); bar()) {} ---------------- aaron.ballman wrote: > I'd also like to see the behavior tested with blocks and statement > expressions. > > Also, I'd like to see test cases where the call is "hidden" from the user's > sight. e.g., > ``` > struct S { > friend bool operator==(const S &LHS, const S &RHS); > }; > > void f(bool); > > void func(const S &s1, const S &s2) { > [[clang::noinline]]f(s1 == s2); // Is operator==() then not inlined? > } > ``` Added as tests. Yes, not inlined. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D119061/new/ https://reviews.llvm.org/D119061 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits