Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 347818 - dev-libs/icu-4.6: QA warning: ExtensionSubtables.cpp:32: warning: dereferencing type-punned pointer will break strict-aliasing rules
Summary: dev-libs/icu-4.6: QA warning: ExtensionSubtables.cpp:32: warning: dereferenci...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All All
: High minor
Assignee: Arfrever Frehtes Taifersar Arahesis
URL: https://ssl.icu-project.org/trac/tick...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-05 14:05 UTC by David J Cozatt
Modified: 2012-05-12 17:22 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build log (dev-libs:icu-4.4.1:20101003-000154.log.bz2,1.41 KB, text/plain)
2010-12-05 14:20 UTC, David J Cozatt
Details
build log (dev-libs:icu-4.6_rc2:20101205-004103.log,240.49 KB, text/plain)
2010-12-07 00:01 UTC, David J Cozatt
Details
build log (dev-libs:icu-49.1.1-r1:20120512-022832.log,276.10 KB, text/plain)
2012-05-12 03:19 UTC, David J Cozatt
Details

Note You need to log in before you can comment on or make changes to this bug.
Description David J Cozatt 2010-12-05 14:05:03 UTC
QA: other                                                                     │
│QA Notice: Package has poor programming practices which may compile           │
│           fine but exhibit random runtime failures. 
ExtensionSubtables.cpp:32:31: warning: dereferencing type-punned pointer will │
│break strict-aliasing rules  

http://gcc.gnu.org/ml/gcc-help/2006-08/msg00240.html

Dereferencing pointer type punned will break strict-aliasing rules

A quote:
<< The most common warning you will see is probably "dereferencing type-
punned pointer will break strict-aliasing rules".  The place where it
warns is in general not wrong -- what gcc tries to tell you is that you
will break the aliasing rules when you dereference the pointer later
(unless you cast it back to its original type first).  This warning
should be interpreted as saying that your interfaces are badly designed,
and the correct way to avoid the warning is to redesign them in a way
where you do not need to cast between conflicting types.  (Even if you
often can make this warning go away by changing void** to void*...) >>

Please read the actual standard too.  The rules about pointer type
conversions are at 6.3.2.3.  The appropriate paragraphs are paragraphs
1 and 7.

http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf.

Reproducible: Always




david@random ~ $ emerge --info icu  
Portage 2.1.9.25 (default/linux/amd64/10.0, gcc-4.5.1, glibc-2.12.1-r3, 2.6.36-gentoo-r3 x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-2.6.36-gentoo-r3-x86_64-AMD_Athlon-tm-_64_Processor_3200+-with-gentoo-2.0.1
Timestamp of tree: Sat, 04 Dec 2010 23:45:02 +0000
app-shells/bash:     4.1_p9
dev-java/java-config: 2.1.11-r2
dev-lang/python:     2.6.6-r1, 2.7.1, 3.1.3
dev-util/cmake:      2.8.1-r2
sys-apps/baselayout: 2.0.1-r1
sys-apps/openrc:     0.6.6
sys-apps/sandbox:    2.4
sys-devel/autoconf:  2.13, 2.68
sys-devel/automake:  1.10.3, 1.11.1
sys-devel/binutils:  2.20.1-r1
sys-devel/gcc:       4.4.5, 4.5.1-r1
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.4-r1
sys-devel/make:      3.82
virtual/os-headers:  2.6.36.1 (sys-kernel/linux-headers)
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /etc/"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs buildpkg distlocks fixlafiles fixpackages multilib-strict news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="ftp://ftp.gtlib.gatech.edu/pub/gentoo/ ftp://gentoo.chem.wisc.edu/gentoo/ http://mirrors.163.com/gentoo/ ftp://mirror.bih.net.ba/gentoo/"
LDFLAGS="-Wl,--hash-style=gnu,-O1 -Wl,--as-needed"
LINGUAS="en_US"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="   "
SYNC="rsync://rsync.us.gentoo.org/gentoo-portage"
USE="acl alsa amd64 berkdb bzip2 cdr cli cracklib crypt cups cxx dri en fortran gdbm gpm gtk iconv ipv6 midi mmx modules mudflap multilib ncurses nls nptl nptlonly openmp pam pcre perl pic pppd python readline session sse sse2 ssl sysfs tcpd threads unicode xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_US" PHP_TARGETS="php5-2" RUBY_TARGETS="ruby18 ree18" USERLAND="GNU" VIDEO_CARDS="nv nvidia vesa nouveau" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, MAKEOPTS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

=================================================================
                        Package Settings
=================================================================

dev-libs/icu-4.6_rc2 was built with the following:
USE="(multilib) -debug -doc -examples -static-libs"
Comment 1 David J Cozatt 2010-12-05 14:20:16 UTC
Created attachment 256398 [details]
build log
Comment 2 Jeroen Roovers (RETIRED) gentoo-dev 2010-12-05 20:47:39 UTC
Comment on attachment 256398 [details]
build log

That's the unmerge/merge log.
Comment 3 Jeroen Roovers (RETIRED) gentoo-dev 2010-12-05 20:54:35 UTC
@David: Please read the build logs you attach, and read them thoroughly or you tend to miss this kind of template:


 * Please do not file a Gentoo bug and instead report the above QA
 * issues directly to the upstream developers of this software.
 * Homepage: ${HOMEPAGE}
Comment 4 David J Cozatt 2010-12-07 00:01:01 UTC
Created attachment 256555 [details]
build log

Sorry about that ..trying this in another client
Comment 5 Steven R. Loomis 2011-01-28 16:55:23 UTC
Please file upstream http://bugs.icu-project.org/trac/newticket

Note that particular line is fun with endian swapping.

(In reply to comment #0)
> QA: other                                                                    
> │
> │QA Notice: Package has poor programming practices which may compile         
>  │
> │           fine but exhibit random runtime failures. 
> ExtensionSubtables.cpp:32:31: warning: dereferencing type-punned pointer will
> │
> │break strict-aliasing rules  
> 
> http://gcc.gnu.org/ml/gcc-help/2006-08/msg00240.html
> 
> Dereferencing pointer type punned will break strict-aliasing rules
> 
> A quote:
> << The most common warning you will see is probably "dereferencing type-
> punned pointer will break strict-aliasing rules".  The place where it
> warns is in general not wrong -- what gcc tries to tell you is that you
> will break the aliasing rules when you dereference the pointer later
> (unless you cast it back to its original type first).  This warning
> should be interpreted as saying that your interfaces are badly designed,
> and the correct way to avoid the warning is to redesign them in a way
> where you do not need to cast between conflicting types.  (Even if you
> often can make this warning go away by changing void** to void*...) >>
> 
> Please read the actual standard too.  The rules about pointer type
> conversions are at 6.3.2.3.  The appropriate paragraphs are paragraphs
> 1 and 7.
> 
> http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf.
> 
> Reproducible: Always
> 
> 
> 
> 
> david@random ~ $ emerge --info icu  
> Portage 2.1.9.25 (default/linux/amd64/10.0, gcc-4.5.1, glibc-2.12.1-r3,
> 2.6.36-gentoo-r3 x86_64)
> =================================================================
>                         System Settings
> =================================================================
> System uname:
> Linux-2.6.36-gentoo-r3-x86_64-AMD_Athlon-tm-_64_Processor_3200+-with-gentoo-2.0.1
> Timestamp of tree: Sat, 04 Dec 2010 23:45:02 +0000
> app-shells/bash:     4.1_p9
> dev-java/java-config: 2.1.11-r2
> dev-lang/python:     2.6.6-r1, 2.7.1, 3.1.3
> dev-util/cmake:      2.8.1-r2
> sys-apps/baselayout: 2.0.1-r1
> sys-apps/openrc:     0.6.6
> sys-apps/sandbox:    2.4
> sys-devel/autoconf:  2.13, 2.68
> sys-devel/automake:  1.10.3, 1.11.1
> sys-devel/binutils:  2.20.1-r1
> sys-devel/gcc:       4.4.5, 4.5.1-r1
> sys-devel/gcc-config: 1.4.1
> sys-devel/libtool:   2.4-r1
> sys-devel/make:      3.82
> virtual/os-headers:  2.6.36.1 (sys-kernel/linux-headers)
> ACCEPT_KEYWORDS="amd64 ~amd64"
> ACCEPT_LICENSE="*"
> CBUILD="x86_64-pc-linux-gnu"
> CFLAGS="-march=native -O2 -pipe"
> CHOST="x86_64-pc-linux-gnu"
> CONFIG_PROTECT="/etc /etc/"
> CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/
> /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild
> /etc/sandbox.d /etc/terminfo"
> CXXFLAGS="-march=native -O2 -pipe"
> DISTDIR="/usr/portage/distfiles"
> FEATURES="assume-digests binpkg-logs buildpkg distlocks fixlafiles fixpackages
> multilib-strict news parallel-fetch protect-owned sandbox sfperms strict
> unknown-features-warn unmerge-logs unmerge-orphans userfetch"
> GENTOO_MIRRORS="ftp://ftp.gtlib.gatech.edu/pub/gentoo/
> ftp://gentoo.chem.wisc.edu/gentoo/ http://mirrors.163.com/gentoo/
> ftp://mirror.bih.net.ba/gentoo/"
> LDFLAGS="-Wl,--hash-style=gnu,-O1 -Wl,--as-needed"
> LINGUAS="en_US"
> PKGDIR="/usr/portage/packages"
> PORTAGE_CONFIGROOT="/"
> PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress
> --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles
> --exclude=/local --exclude=/packages"
> PORTAGE_TMPDIR="/var/tmp"
> PORTDIR="/usr/portage"
> PORTDIR_OVERLAY="   "
> SYNC="rsync://rsync.us.gentoo.org/gentoo-portage"
> USE="acl alsa amd64 berkdb bzip2 cdr cli cracklib crypt cups cxx dri en fortran
> gdbm gpm gtk iconv ipv6 midi mmx modules mudflap multilib ncurses nls nptl
> nptlonly openmp pam pcre perl pic pppd python readline session sse sse2 ssl
> sysfs tcpd threads unicode xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp
> atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801
> hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem
> ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug
> file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null
> plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic
> authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm
> authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache
> cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter
> file_cache filter headers include info log_config logio mem_cache mime
> mime_magic negotiation rewrite setenvif speling status unique_id userdir
> usertrack vhost_alias" COLLECTD_PLUGINS="df interface irq load memory rrdtool
> swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore
> fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver
> oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt
> ubx" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad
> cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_US"
> PHP_TARGETS="php5-2" RUBY_TARGETS="ruby18 ree18" USERLAND="GNU" VIDEO_CARDS="nv
> nvidia vesa nouveau" XTABLES_ADDONS="quota2 psd pknock lscan length2
> ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal
> rawnat logmark ipmark dhcpmac delude chaos account" 
> Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG,
> LC_ALL, MAKEOPTS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS,
> PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
> 
> =================================================================
>                         Package Settings
> =================================================================
> 
> dev-libs/icu-4.6_rc2 was built with the following:
> USE="(multilib) -debug -doc -examples -static-libs"
> 
Comment 6 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2011-01-28 17:35:41 UTC
https://ssl.icu-project.org/trac/ticket/8310
Comment 7 Matti Bickel (RETIRED) gentoo-dev 2011-08-24 19:47:42 UTC
Sorry, can't help you here..
Comment 8 David J Cozatt 2011-08-25 04:39:02 UTC
Looks as though it is fixed upstream and hasn't trickled down. 

I could file a bunch of these...got one on x86 stable building gcc 4.4.x the other day. lilo and grub both have this report as well as pulseaudio and pango among others

You guys please consider removing the 'file upstream' on these and allow user bug reports and ask maintainers to file upstream. It seems a bit wrong to ask users to report all these upstream. It requires creating an upstream account for each...maintainers should already have one. Not asking you guys to fix them all just open an upstream bug and report them linking back as above.
Comment 9 David J Cozatt 2012-05-12 03:19:26 UTC
Created attachment 311469 [details]
build log

Fixed in icu-49.1.1-r1 Not closing since 4.8.1.1-r1 still has the report and is in tree.