Re: [PATCH 4/4] Add ATTRIBUTE_FALLTHROUGH for switch cases without break

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Feb 22, 2017 at 05:52:05PM +0000, Daniel P. Berrange wrote:
> In GCC 7 there is a new warning triggered when a switch
> case has a conditional statement (eg if ... else...) and
> some of the code paths fallthrough to the next switch
> statement. e.g.
> 
> conf/domain_conf.c: In function 'virDomainChrEquals':
> conf/domain_conf.c:14926:12: error: this statement may fall through [-Werror=implicit-fallthrough=]
>          if (src->targetTypeAttr != tgt->targetTypeAttr)
>             ^
> conf/domain_conf.c:14928:5: note: here
>      case VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE:
>      ^~~~
> conf/domain_conf.c: In function 'virDomainChrDefFormat':
> conf/domain_conf.c:22143:12: error: this statement may fall through [-Werror=implicit-fallthrough=]
>          if (def->targetTypeAttr) {
>             ^
> conf/domain_conf.c:22151:5: note: here
>      default:
>      ^~~~~~~
> 
> GCC introduced a __attribute__((fallthrough)) to let you
> indicate that this is intentionale behaviour rather than
> a bug.


BTW, CLang has apparently had an -Wimplicit-fallthrough
warning flag for a while, and also seems to have the same
__attribute__((fallthrough)), but I've been unable to get
CLang to trigger such warnings, and hence did not enable
__attribute__((fallthrough)) on CLang. If someone can
figure out how to reproduce the warnings on clang we
could extend internal.h to surpress them for whichever
clang version introduced the warnings. As is, the
ATTRIBUTE_FALLTHROUGH turns into a no-op for CLang unless
it claims GCC 7.0 compatibility.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://entangle-photo.org       -o-    http://search.cpan.org/~danberr/ :|

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]
  Powered by Linux