Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Jul 2003 10:32:51 +0200
From:      Michael Nottebrock <michaelnottebrock@gmx.net>
To:        Mikhail Teterin <mi+mx@aldan.algebra.com>, Alexander Kabaev <ak03@gte.com>, Daniel Eischen <eischen@vigrid.com>, Kris Kennaway <kris@obsecurity.org>
Cc:        kde@freebsd.org
Subject:   Re: gcc-3.3 issues
Message-ID:  <200307181032.59474.michaelnottebrock@gmx.net>
In-Reply-To: <200307171650.15405@misha-mx.virtual-estates.net>
References:  <1058366903.81198.18.camel@skeeve> <20030717162554.680475cc.ak03@gte.com> <200307171650.15405@misha-mx.virtual-estates.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--Boundary-02=_7C7F/SYedgjHKOC
Content-Type: text/plain;
  charset="koi8-u"
Content-Transfer-Encoding: quoted-printable
Content-Description: signed data
Content-Disposition: inline

On Thursday 17 July 2003 22:50, Mikhail Teterin wrote:

> Here is how to reproduce the problem, Michael is talking about. Simply
> try to build the kdelibs3 (or kdegraphic3, or kdenetwork3) port.

I've tried to come up with a less obscure testcase:

#include <string>
#include <iostream>
using namespace std;

int main ()
{

  string astring=3D"Hello World";
  cout << astring << endl;
}

Now, if I compile this on 5.1-RELEASE with=20

c++ -Wnon-virtual-dtor -Wno-long-long -Wall -pedantic -W -Wpointer-arith=20
=2DWmissing-prototypes -Wwrite-strings -DNDEBUG -DNO_DEBUG -O -pipe=20
=2Dmcpu=3Dpentiumpro -fno-check-new -L/usr/local/lib -I/usr/local/include=20
=2DI/usr/local/include -I/usr/X11R6/include -D_GETOPT_H -o helloworld=20
helloworld.cc

I get a plethora of warnings:

In file included from /usr/include/g++/memory:55,
                 from /usr/include/g++/string:48,
                 from helloworld.cc:1:
/usr/include/g++/bits/stl_alloc.h:979: warning: ISO C++ forbids the use of `
   extern' on explicit instantiations
/usr/include/g++/bits/stl_alloc.h:980: warning: ISO C++ forbids the use of `
   extern' on explicit instantiations
/usr/include/g++/bits/stl_alloc.h:981: warning: ISO C++ forbids the use of `
   extern' on explicit instantiations
/usr/include/g++/bits/stl_alloc.h:981: warning: ISO C++ forbids the use of `
   extern' on explicit instantiations
/usr/include/g++/bits/stl_alloc.h:981: warning: ISO C++ forbids the use of `
   extern' on explicit instantiations

[and many, many more]

but it will compile. If I omit -pedantic, none of these warnings occur. The=
=20
thing is, in -CURRENT with the new gcc, all these warnings for some reason=
=20
become errors. The other thing is, if I try this with with a ports-compiled=
=20
g++32 on 4-STABLE, I don't get warnings at all, no matter if -pedantic is=20
specified or not.

So here's the questions for the experts:

=2D Why errors instead of warnings?
=2D Why do gcc's own bits seem to not conform to some kind of standard that=
 it=20
tries to adhere to in 5-CURRENT but not in 4-STABLE?
=2D Who's to blame?

=2D-=20
Michael Nottebrock \        KDE on FreeBSD    \            ,ww =20
                    \            ---           \   ,wWWCybaWW_)=20
                     \  http://freebsd.kde.org  \   `WSheepW'    free
                                                 \    II  II     node

--Boundary-02=_7C7F/SYedgjHKOC
Content-Type: application/pgp-signature
Content-Description: signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (FreeBSD)

iD8DBQA/F7C7Xhc68WspdLARAkpgAKCkJYNAwtLDk/7J8rhhyqPEqSWlZgCfYyHy
U+NBy6G1IRP6sW74a3QqvAM=
=JeB5
-----END PGP SIGNATURE-----

--Boundary-02=_7C7F/SYedgjHKOC--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200307181032.59474.michaelnottebrock>