mirror of
https://review.coreboot.org/flashrom.git
synced 2025-07-01 06:01:16 +02:00
Enable -Wshadow, clean code for that
This is not just for fun. We hit a real bug on BSD with the outl macros. The macro variable tmp collided with the tmp from outer scope. second revision, now also taking care of inb/inw/inl. While that shadowing did not introduce bugs (yet), of course it breaks the build on BSD when -Wshadow is enabled. Corresponding to flashrom svn r860. Signed-off-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de> Acked-by: Luc Verhaegen <libv@skynet.be>
This commit is contained in:
2
Makefile
2
Makefile
@ -25,7 +25,7 @@ INSTALL = install
|
|||||||
DIFF = diff
|
DIFF = diff
|
||||||
PREFIX ?= /usr/local
|
PREFIX ?= /usr/local
|
||||||
MANDIR ?= $(PREFIX)/share/man
|
MANDIR ?= $(PREFIX)/share/man
|
||||||
CFLAGS ?= -Os -Wall -Werror
|
CFLAGS ?= -Os -Wall -Werror -Wshadow
|
||||||
EXPORTDIR ?= .
|
EXPORTDIR ?= .
|
||||||
|
|
||||||
OS_ARCH = $(shell uname)
|
OS_ARCH = $(shell uname)
|
||||||
|
@ -50,7 +50,7 @@ static unsigned long compute_checksum(void *addr, unsigned long length)
|
|||||||
volatile union {
|
volatile union {
|
||||||
uint8_t byte[2];
|
uint8_t byte[2];
|
||||||
uint16_t word;
|
uint16_t word;
|
||||||
} value;
|
} chksum;
|
||||||
unsigned long sum;
|
unsigned long sum;
|
||||||
unsigned long i;
|
unsigned long i;
|
||||||
|
|
||||||
@ -72,10 +72,10 @@ static unsigned long compute_checksum(void *addr, unsigned long length)
|
|||||||
sum = (sum + (sum >> 16)) & 0xFFFF;
|
sum = (sum + (sum >> 16)) & 0xFFFF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
value.byte[0] = sum & 0xff;
|
chksum.byte[0] = sum & 0xff;
|
||||||
value.byte[1] = (sum >> 8) & 0xff;
|
chksum.byte[1] = (sum >> 8) & 0xff;
|
||||||
|
|
||||||
return (~value.word) & 0xFFFF;
|
return (~chksum.word) & 0xFFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define for_each_lbrec(head, rec) \
|
#define for_each_lbrec(head, rec) \
|
||||||
|
@ -150,7 +150,6 @@ int cli_classic(int argc, char *argv[])
|
|||||||
|
|
||||||
if (argc > 1) {
|
if (argc > 1) {
|
||||||
/* Yes, print them. */
|
/* Yes, print them. */
|
||||||
int i;
|
|
||||||
printf_debug("The arguments are:\n");
|
printf_debug("The arguments are:\n");
|
||||||
for (i = 1; i < argc; ++i)
|
for (i = 1; i < argc; ++i)
|
||||||
printf_debug("%s\n", argv[i]);
|
printf_debug("%s\n", argv[i]);
|
||||||
|
1
flash.h
1
flash.h
@ -297,7 +297,6 @@ void internal_delay(int usecs);
|
|||||||
|
|
||||||
extern uint32_t io_base_addr;
|
extern uint32_t io_base_addr;
|
||||||
extern struct pci_access *pacc;
|
extern struct pci_access *pacc;
|
||||||
extern struct pci_filter filter;
|
|
||||||
extern struct pci_dev *pcidev_dev;
|
extern struct pci_dev *pcidev_dev;
|
||||||
struct pcidev_status {
|
struct pcidev_status {
|
||||||
uint16_t vendor_id;
|
uint16_t vendor_id;
|
||||||
|
12
hwaccess.h
12
hwaccess.h
@ -46,12 +46,12 @@
|
|||||||
#include <machine/cpufunc.h>
|
#include <machine/cpufunc.h>
|
||||||
#define off64_t off_t
|
#define off64_t off_t
|
||||||
#define lseek64 lseek
|
#define lseek64 lseek
|
||||||
#define OUTB(x, y) do { u_int tmp = (y); outb(tmp, (x)); } while (0)
|
#define OUTB(x, y) do { u_int outb_tmp = (y); outb(outb_tmp, (x)); } while (0)
|
||||||
#define OUTW(x, y) do { u_int tmp = (y); outw(tmp, (x)); } while (0)
|
#define OUTW(x, y) do { u_int outw_tmp = (y); outw(outw_tmp, (x)); } while (0)
|
||||||
#define OUTL(x, y) do { u_int tmp = (y); outl(tmp, (x)); } while (0)
|
#define OUTL(x, y) do { u_int outl_tmp = (y); outl(outl_tmp, (x)); } while (0)
|
||||||
#define INB(x) __extension__ ({ u_int tmp = (x); inb(tmp); })
|
#define INB(x) __extension__ ({ u_int inb_tmp = (x); inb(inb_tmp); })
|
||||||
#define INW(x) __extension__ ({ u_int tmp = (x); inw(tmp); })
|
#define INW(x) __extension__ ({ u_int inw_tmp = (x); inw(inw_tmp); })
|
||||||
#define INL(x) __extension__ ({ u_int tmp = (x); inl(tmp); })
|
#define INL(x) __extension__ ({ u_int inl_tmp = (x); inl(inl_tmp); })
|
||||||
#else
|
#else
|
||||||
#if defined(__DARWIN__)
|
#if defined(__DARWIN__)
|
||||||
#include <DirectIO/darwinio.h>
|
#include <DirectIO/darwinio.h>
|
||||||
|
Reference in New Issue
Block a user