https://bugs.llvm.org/show_bug.cgi?id=37135
Bug ID: 37135
Summary: Fallthrough attr should support GNU spelling
__attribute__((fallthrough)) to match GCC 7
Product: clang
Version: trunk
Hardware: PC
OS: All
Status: NEW
Severity: enhancement
Priority: P
Component: Frontend
Assignee: unassignedclangb...@nondot.org
Reporter: com...@gmail.com
CC: llvm-bugs@lists.llvm.org
From
https://developers.redhat.com/blog/2017/03/10/wimplicit-fallthrough-in-gcc-7/,
GCC supports this syntax:
switch (cond)
{
case 1:
bar (1);
__attribute__ ((fallthrough)); // C and C++03
case 2:
bar (2);
[[gnu::fallthrough]]; // C++11 and C++14
case 3:
bar (3);
[[fallthrough]]; // C++17 and above
/* ... */
}
Clang's current definition in Attr.td:
def FallThrough : StmtAttr {
let Spellings = [CXX11<"", "fallthrough", 201603>, C2x<"", "fallthrough">,
CXX11<"clang", "fallthrough">];
[..]
}
I think GCC<"fallthrough"> needs to be added.
This check in lib/Sema/AnalysisBasedWarnings.cpp should then be removed:
// Only perform this analysis when using [[]] attributes. There is no good
// workflow for this warning when not using C++11. There is no good way to
// silence the warning (no attribute is available) unless we are using
// [[]] attributes. One could use pragmas to silence the warning, but as a
// general solution that is gross and not in the spirit of this warning.
//
// NOTE: This an intermediate solution. There are on-going discussions on
// how to properly support this warning outside of C++11 with an annotation.
if (!AC.getASTContext().getLangOpts().DoubleSquareBracketAttributes)
return;
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs