NetBSD-Bugs archive

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

re: kern/51460: Source code bugs



The following reply was made to PR kern/51460; it has been noted by GNATS.

From: matthew green <mrg%eterna.com.au@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
    netbsd-bugs%netbsd.org@localhost
Subject: re: kern/51460: Source code bugs
Date: Mon, 05 Sep 2016 16:03:42 +1000

 > # diff -u ./sys/dev/acpi/fujhk_acpi.c.orig ./sys/dev/acpi/fujhk_acpi.c
 > --- ./sys/dev/acpi/fujhk_acpi.c.orig    2016-08-31 21:55:27.000000000 +1000
 > +++ ./sys/dev/acpi/fujhk_acpi.c 2016-08-31 22:13:25.000000000 +1000
 > @@ -246,6 +246,7 @@
 >         uint32_t irb;
 >         int i, index;
 > 
 > +       irb = 0; /* make sure irb has been initialized */
 >         for (i = 0; i < max_irb_buffer_size; i++) {
 >                 if (fujitsu_hk_get_irb(sc, &irb) || irb == 0)
 >                         return;
 > #
 
 this is a bug in GCC.  i've stopped patching our sources
 to build with -O3 / -Os because of these sorts of issues.
 
 eg, i haven't checked, but i fully expect that in the above
 code that fujitsu_hk_get_irb(), which is local, always
 sets irb if it returns true, but for some reason GCC thinks
 it is a problem.  i've seen this pattern dozens of times.
 
 i don't agree with Martin - i don't think we should "fix"
 these cases, but simply advise not using '-O[3s] -Werror'.
 
 
 .mrg.
 


Home | Main Index | Thread Index | Old Index