[Bug 210855] benchmarks/bonnie++ : use of volatile char messes up EOF comparison; more (armv6 with -mcpu=cortex-a7 for/on rpi2)
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Tue Jul 5 20:56:56 UTC 2016
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=210855
Bug ID: 210855
Summary: benchmarks/bonnie++ : use of volatile char messes up
EOF comparison; more (armv6 with -mcpu=cortex-a7
for/on rpi2)
Product: Ports & Packages
Version: Latest
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: Individual Port(s)
Assignee: kuriyama at FreeBSD.org
Reporter: markmi at dsl-only.net
Flags: maintainer-feedback?(kuriyama at FreeBSD.org)
Assignee: kuriyama at FreeBSD.org
The main report is from what the building compiler reported:
getc_putc.cpp:210:47: warning: comparison of constant -1 with expression of
type 'volatile char' is always false
[-Wtautological-constant-out-of-range-compare]
TEST_FUNC_READ("getc()", if( (c = getc(fp)) == EOF), res[Getc]);
~~~~~~~~~~~~~~ ^ ~~~
./getc_putc.h:26:31: note: expanded from macro 'TEST_FUNC_READ'
TEST_FUNC("Reading", XNAME, XCODE, XRES)
^~~~~
./getc_putc.h:13:5: note: expanded from macro 'TEST_FUNC'
XCODE \
^~~~~
getc_putc.cpp:225:65: warning: comparison of constant -1 with expression of
type 'volatile char' is always false
[-Wtautological-constant-out-of-range-compare]
TEST_FUNC_READ("getc_unlocked()", if( (c = getc_unlocked(fp)) == EOF),
res[GetcUnlocked]);
~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~
./getc_putc.h:26:31: note: expanded from macro 'TEST_FUNC_READ'
TEST_FUNC("Reading", XNAME, XCODE, XRES)
^~~~~
./getc_putc.h:13:5: note: expanded from macro 'TEST_FUNC'
XCODE \
^~~~~
getc_putc_helper.cpp:48:57: warning: comparison of constant -1 with expression
of type 'volatile char' is always false
[-Wtautological-constant-out-of-range-com
pare]
TEST_FUNC_READ("getc() no thread", if( (c = getc(fp)) == EOF), res[1]);
~~~~~~~~~~~~~~ ^ ~~~
./getc_putc.h:26:31: note: expanded from macro 'TEST_FUNC_READ'
TEST_FUNC("Reading", XNAME, XCODE, XRES)
^~~~~
./getc_putc.h:13:5: note: expanded from macro 'TEST_FUNC'
XCODE \
^~~~~
getc returns a wider type than char variants and signed even if char is not: it
returns an int. This is part of enabling the EOF test protocol without
reserving character values.
bon_io.cpp:161:76: warning: format specifies type 'long' but the argument has
type 'off_t' (aka 'long long') [-Wformat]
sprintf(m_buf, "Error in lseek to chunk %d(" OFF_T_PRINTF ")", offset,
real_offset);
^~~~~~~~~~~
The width mismatch leads to big-endian vs. little-endian (vs. pdp-endian)
issues. powerpc, for example, being big-endian but 32 bit could have problems
with just the "high half" being used here.
Side notes:
bonnie++.cpp:709:57: warning: comparison of integers of different signs:
'unsigned int' and 'int' [-Wsign-compare]
if(globals.ram && directory_size * MaxDataPerFile * 2 > (globals.ram << 10))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-ports-bugs
mailing list