public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/49859] New: gcc could warn about statements between "switch" and first "case"
@ 2011-07-27  1:15 wkoszek at gmail dot com
  2011-07-27  1:16 ` [Bug c/49859] " wkoszek at gmail dot com
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: wkoszek at gmail dot com @ 2011-07-27  1:15 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49859

           Summary: gcc could warn about statements between "switch" and
                    first "case"
           Product: gcc
           Version: 4.5.2
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: c
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: wkoszek@gmail.com


Created attachment 24838
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24838
Sample source code.

wkoszek@wkoszek:~/p/switch$ cat switch.c 
#include <stdio.h>

int
main(int argc, char **argv)
{
    int    type;

    type = 123;
    switch (type) {
        printf("SOMETHING\n");
    case 1:
        printf("1\n");
        break;
    case 2:
        printf("2\n");
        break;
    default:
        printf("default\n");
        return 1;
    }
    return 0;
}
wkoszek@wkoszek:~/p/switch$ gcc -pedantic -Wall -Wunused -Wunreachable-code -c
switch.c
wkoszek@wkoszek:~/p/switch$ clang -pedantic -Wall -Wunused -Wunreachable-code
-c switch.c
switch.c:10:3: warning: will never be executed [-Wunreachable-code]
                printf("SOMETHING\n");
                ^~~~~~~~~~~~~~~~~~~~~
1 warning generated.


wkoszek@wkoszek:~/p/switch$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/lto-wrapper
Target: i686-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.5.2-8ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.5 --enable-shared --enable-multiarch
--with-multiarch-defaults=i386-linux-gnu --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib/i386-linux-gnu
--without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib/i386-linux-gnu
--enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-plugin --enable-gold --enable-ld=default
--with-plugin-ld=ld.gold --enable-objc-gc --enable-targets=all --disable-werror
--with-arch-32=i686 --with-tune=generic --enable-checking=release
--build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
Thread model: posix
gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c/49859] gcc could warn about statements between "switch" and first "case"
  2011-07-27  1:15 [Bug c/49859] New: gcc could warn about statements between "switch" and first "case" wkoszek at gmail dot com
@ 2011-07-27  1:16 ` wkoszek at gmail dot com
  2011-07-27  1:22 ` pinskia at gcc dot gnu.org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: wkoszek at gmail dot com @ 2011-07-27  1:16 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49859

--- Comment #1 from Wojciech Koszek <wkoszek at gmail dot com> 2011-07-27 01:16:25 UTC ---
I'd expect GCC to warn me about this case, since it's very likely an error.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c/49859] gcc could warn about statements between "switch" and first "case"
  2011-07-27  1:15 [Bug c/49859] New: gcc could warn about statements between "switch" and first "case" wkoszek at gmail dot com
  2011-07-27  1:16 ` [Bug c/49859] " wkoszek at gmail dot com
@ 2011-07-27  1:22 ` pinskia at gcc dot gnu.org
  2011-07-27  1:28 ` wkoszek at gmail dot com
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu.org @ 2011-07-27  1:22 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49859

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-07-27 01:22:05 UTC ---
-Wunreachable-code support was removed because it dependent on optimization and
caused some "false positives" (well they are not false positives in the sense
they were unreachable code but rather the code compiled with some optimization
was a truly unreachable but only with inlining and such).

Also does clang warn about Duff's loops?


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c/49859] gcc could warn about statements between "switch" and first "case"
  2011-07-27  1:15 [Bug c/49859] New: gcc could warn about statements between "switch" and first "case" wkoszek at gmail dot com
  2011-07-27  1:16 ` [Bug c/49859] " wkoszek at gmail dot com
  2011-07-27  1:22 ` pinskia at gcc dot gnu.org
@ 2011-07-27  1:28 ` wkoszek at gmail dot com
  2011-07-27 10:07 ` rguenth at gcc dot gnu.org
  2014-09-23 15:24 ` manu at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: wkoszek at gmail dot com @ 2011-07-27  1:28 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49859

--- Comment #3 from Wojciech Koszek <wkoszek at gmail dot com> 2011-07-27 01:28:28 UTC ---
Looks like GCC and Clang both agree on Duff's stuff:

wkoszek@wkoszek:~/p/duff$ cat duff.c
#include <stdio.h>

void
duff(to, from, count)
register short *to, *from;
register int count;
{
        register int n=(count+7)/8;
        switch(count%8){
        case 0:      do{      *to = *from++;
        case 7:              *to = *from++;
        case 6:              *to = *from++;
        case 5:              *to = *from++;
        case 4:              *to = *from++;
        case 3:              *to = *from++;
        case 2:              *to = *from++;
        case 1:              *to = *from++;
                }while(--n>0);
        }
}

int
main(int argc, char **argv)
{
    short    *dummy = NULL;

    (void)argc;
    (void)argv;

    duff(dummy, dummy, 123);
    return 0;
}
wkoszek@wkoszek:~/p/duff$ gcc -Wall -pedantic -Wunreachable-code -c duff.c
wkoszek@wkoszek:~/p/duff$ clang -Wall -pedantic -Wunreachable-code -c duff.c


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c/49859] gcc could warn about statements between "switch" and first "case"
  2011-07-27  1:15 [Bug c/49859] New: gcc could warn about statements between "switch" and first "case" wkoszek at gmail dot com
                   ` (2 preceding siblings ...)
  2011-07-27  1:28 ` wkoszek at gmail dot com
@ 2011-07-27 10:07 ` rguenth at gcc dot gnu.org
  2014-09-23 15:24 ` manu at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-07-27 10:07 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49859

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2011.07.27 10:07:14
     Ever Confirmed|0                           |1
           Severity|minor                       |enhancement

--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-07-27 10:07:14 UTC ---
Confirmed.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug c/49859] gcc could warn about statements between "switch" and first "case"
  2011-07-27  1:15 [Bug c/49859] New: gcc could warn about statements between "switch" and first "case" wkoszek at gmail dot com
                   ` (3 preceding siblings ...)
  2011-07-27 10:07 ` rguenth at gcc dot gnu.org
@ 2014-09-23 15:24 ` manu at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: manu at gcc dot gnu.org @ 2014-09-23 15:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49859

Manuel López-Ibáñez <manu at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |manu at gcc dot gnu.org

--- Comment #5 from Manuel López-Ibáñez <manu at gcc dot gnu.org> ---
For sure we do not need the old -Wunreachable here. Just when parsing a switch
block, anything found before the first case is basically unreachable, no?

(Why the standard does not consider this an error?)
>From gcc-bugs-return-462349-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Tue Sep 23 15:26:33 2014
Return-Path: <gcc-bugs-return-462349-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 23265 invoked by alias); 23 Sep 2014 15:26:33 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 23200 invoked by uid 55); 23 Sep 2014 15:26:29 -0000
From: "jakub at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug fortran/63331] Fortran -fcompare-debug issues
Date: Tue, 23 Sep 2014 15:26:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: fortran
X-Bugzilla-Version: 5.0
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: jakub at gcc dot gnu.org
X-Bugzilla-Status: NEW
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-63331-4-UoO6rtAoO2@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-63331-4@http.gcc.gnu.org/bugzilla/>
References: <bug-63331-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-09/txt/msg02183.txt.bz2
Content-length: 592

https://gcc.gnu.org/bugzilla/show_bug.cgi?idc331

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Tue Sep 23 15:25:55 2014
New Revision: 215516

URL: https://gcc.gnu.org/viewcvs?rev!5516&root=gcc&view=rev
Log:
    PR fortran/63331
    * trans-types.c (gfc_get_array_descr_info): Build DEBUG_EXPR_DECL
    instead of VAR_DECL for base_decl.

    * gfortran.dg/pr63331.f90: New test.

Added:
    trunk/gcc/testsuite/gfortran.dg/pr63331.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/trans-types.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-09-23 15:24 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-27  1:15 [Bug c/49859] New: gcc could warn about statements between "switch" and first "case" wkoszek at gmail dot com
2011-07-27  1:16 ` [Bug c/49859] " wkoszek at gmail dot com
2011-07-27  1:22 ` pinskia at gcc dot gnu.org
2011-07-27  1:28 ` wkoszek at gmail dot com
2011-07-27 10:07 ` rguenth at gcc dot gnu.org
2014-09-23 15:24 ` manu at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).