[Lldb-commits] [lldb] r259962 - Fix "thread backtrace -s": option was misparsed because of a missing break.
Zachary Turner via lldb-commits
lldb-commits at lists.llvm.org
Sat Feb 6 09:33:15 PST 2016
On MSVC 2015 I get this:
1>c:\users\zach\documents\visual studio
2015\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(22):
warning C5030: attribute 'clang::fallthrough' is not recognized
1>c:\users\zach\documents\visual studio
2015\projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp(22):
warning C4649: attributes are ignored in this context
I wouldn't mind disabling the warning, but the bigger problem is that the
android folks are still using MSVC 2013.
I would suggest making a #define out of it.
#if defined(CLANG)
#define LLVM_CASE_FALLTHROUGH() [[clang::fallthrough]];
#else
#define LLVM_CASE_FALLTHROUGH()
#endif
I would also suggest trying to get this into LLVM, as it seems generally
useful to the larger project and non-specific to LLDB.
On Sat, Feb 6, 2016 at 2:25 AM Jason Molenda <jason at molenda.com> wrote:
> Hi Zachary, related to this bug, I was looking into clang diagnostics and
> there is one that would have helped us catch this, -Wimplicit-fallthrough.
> It would have issued a warning for CommandObjectThread.cpp (when built with
> clang, of course) but it won't generate a warning for
>
> case 0:
> case 1:
> case 2:
> ... do something for values 0-2
> break;
>
>
> There are some places in lldb where we have code AND we intentionally fall
> through; remarkably often there is a comment that it is intentional, like
>
> case eConnectionStatusNoConnection: // No connection
> case eConnectionStatusLostConnection: // Lost connection while
> connected to a valid connection
> done = true;
> // Fall through...
> case eConnectionStatusTimedOut: // Request timed out
> if (log)
> error.LogIfError (log,
>
>
> etc. In this case, if we add [[clang::fallthrough]]; before the '// Fall
> through...' comment, clang will not emit a warning.
>
> I don't know the [[clang::fallthrough]]; syntax, I have a feeling it might
> be some C++11 thing that other compilers will ignore. Do you know if MSVC
> will ignore this markup if we add it to the sources in the places where we
> mean to fall through?
>
>
> (a quick look over the warnings makes me think there are probably another
> dozen of these bugs in the lldb codebase. I'll look at those more closely
> on Monday.)
>
>
> > On Feb 5, 2016, at 4:46 PM, Zachary Turner via lldb-commits <
> lldb-commits at lists.llvm.org> wrote:
> >
> > Sounds like we don't have a test for thread backtrace -s. I know I
> usually argue against tests of the CLI, but only when they're used instead
> of tests for the api. Seems like we should have at least one test for
> every option of every command.
> >
> > On Fri, Feb 5, 2016 at 4:35 PM Jim Ingham via lldb-commits <
> lldb-commits at lists.llvm.org> wrote:
> > Author: jingham
> > Date: Fri Feb 5 18:31:23 2016
> > New Revision: 259962
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=259962&view=rev
> > Log:
> > Fix "thread backtrace -s": option was misparsed because of a missing
> break.
> >
> > <rdar://problem/24525106>
> >
> > Modified:
> > lldb/trunk/source/Commands/CommandObjectThread.cpp
> >
> > Modified: lldb/trunk/source/Commands/CommandObjectThread.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectThread.cpp?rev=259962&r1=259961&r2=259962&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Commands/CommandObjectThread.cpp (original)
> > +++ lldb/trunk/source/Commands/CommandObjectThread.cpp Fri Feb 5
> 18:31:23 2016
> > @@ -194,6 +194,7 @@ public:
> > if (!success)
> > error.SetErrorStringWithFormat("invalid integer
> value for option '%c'", short_option);
> > }
> > + break;
> > case 'e':
> > {
> > bool success;
> >
> >
> > _______________________________________________
> > lldb-commits mailing list
> > lldb-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
> > _______________________________________________
> > lldb-commits mailing list
> > lldb-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160206/3ce9f3e2/attachment.html>
More information about the lldb-commits
mailing list