public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: mdeil@pallas.de
To: gcc-gnats@gcc.gnu.org
Subject: c++/6001: g++ problems with nested headers from > egcs-2.91.66 until 3.0.0
Date: Tue, 19 Mar 2002 07:16:00 -0000	[thread overview]
Message-ID: <20020319150827.5024.qmail@sources.redhat.com> (raw)


>Number:         6001
>Category:       c++
>Synopsis:       g++ problems with nested headers from > egcs-2.91.66 until 3.0.0
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Mar 19 07:16:02 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Mario Deilmann
>Release:        gcc version 3.0 and other ...
>Organization:
>Environment:
SunOS pooh 5.7 Generic_106541-19 sun4u sparc SUNW,Ultra-4
>Description:
Hi,

I found some strange behaviour with some of the g++ versions greater than 2.91 on different platforms with a small C++ code (included)
I investigated a little more and found out that in my opinion the program was badly coded. The header files included each others and also some of the system headers. So I cleaned up all headers so that there are no more
includes in the header files. Collected the used system and program header's and added the std namespace. Wow, what a suprise now all gcc versions include 3.0 accepts the code. 

Can you give me some insight's what makes this program so PRBLEMATIC are this ANSI/ISO feature problems ? All compilers that produce errors find them in their own include files which confuses me. I thought that the problems should be located in the original source code. 
 
GCC 3.0 on Solaris for example:
 
poohtmp/mak> g++ -Wall -c buffer.cpp
In file included from
/home/mdeil/bin/../include/g++-v3/bits/basic_file.h:250,
                 from
/home/mdeil/bin/../include/g++-v3/bits/std_fstream.h:41,
                 from
/home/mdeil/bin/../include/g++-v3/backward/fstream.h:32,
                 from buffer.h:4,
                 from buffer.cpp:25:
 /home/mdeil/bin/../include/g++-v3/sparc-sun-solaris2.7/bits/basic_file_model.h:
In constructor 
`std::__basic_file<_CharT>::__basic_file(std::__c_lock*)':
/home/mdeil/bin/../include/g++-v3/sparc-sun-solaris2.7/bits/basic_file_model.h:39:
parse error before `;' token .............
^^^^^^^^^^^^^^^^^^^^^^^^^^^

Here my modification to get the code compile:

buffer.cpp NOW includes:

#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <fstream.h>

#include <iostream>

#include "common.h"
#include "misc.h"
#include "error.h"
#include "buffer.h"

using namespace std ;

What was the problem ? Why are the original include lines wrong ???

buffer.cpp ORIGINAL includes:

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <time.h>

#include "common.h" 
 ---> #include misc.h (no more includes)
#include "buffer.h"
 ---> #include <fstream.h>
 ---> #include <stdio.h>
 ---> #include <string.h>
 ---> #include "misc.h" (no more includes)
 ---> #include "error.h" (no more includes)

Although I seem to have solved the problem I don't understand it ???????
>How-To-Repeat:
simply type
g++ -Wall -ansi buffer.cpp or buffer.cc
>Fix:
Don't use nested header files - but I don't know why :).
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/x-gzip; name="gcc-bug.tar.gz"; name="gcc-bug.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="gcc-bug.tar.gz"

H4sICD1SlzwAA2djYy1idWcudGFyAO1cbVPbSBLOV/Qr5kgl2MEY29hmDy9XlWXDHlXsQgX2025q
S8hjUK0sqfRCwuVyv/26e0bSjCS/EITzITOpim2pZ6bVb/P0jJru/i8nJ3s36e3+i2drvd6wdzga
wWdv0Bsc4id8G4pP0V70DofD0XjU7x0gXf+gdzB4MXo+loqWxokdwZTzKXe9JXSh7Xl2vPg+PkV/
QA/ZO+j3GufzmVo31z+PoiB6Fiv4Cv0P++MDo/8NtLL+b9LZjEddJwybm6PX74F6ewv03x8fjseZ
/nuHh3i9P0b9b0SI37n+9/cZe/OUZtEI7OtbMcIZ22cX8PkT+52dwr937D27etQIT+fhMgocHscs
4Z8SdrZ/wWaux+MuMOc7XjrlU2ZHnM35/IZHbJb6TuIGfqyOkAQs4vaUJXecxUEaOZzGYLY/ZR8j
N+FIgTc9N07oVrfxpzg5f3t19e7qiF1fw3Oc+T+RV3cYu74ijsTvZSPkjUa4SJNsiOtzYHtR/2af
4vTs/N0RXiqC0iNHeDoPv178/DtxsfiRn5eHJ/mm9dIVZst+jJOpG3Tv/qVdilz/Vr/mBnCV23P1
WuLOuUa17QTzeeB377aVa1JJcA0ZT2MYmvn2nMehDS4A07MJ3dEfcklQ0eiWiKhEd02e64dpkuvs
CeMtEqxzZ0eMB7MT/DxmvU+HpxOgh/5xyB3X9hj3p3vBbI98H6ltJ+GR5foJYy5ydxnELgYP7Ib9
tu/dKEltb5uF8g4LZhQonDSKOPTDUaytLckaser6REEDSjdhrY9ucscS+yZm/FMIYYdP22JejDin
nn0LDCdRyic0CH5j7kyEIxmwPNfncYdxL4bgZcP/qLm9JzUS7QnESpjPSQLhSflvZstnoLgrH+Tm
gQUh99GQ4CErumFMSlIEUbifk4Sk/1O4/BtYIDtiYRJlYRdtMpNs0T3vajvaBEfMvgkikH0wpcCd
xiQs5AskAx2nT5eMpUXpoyPtZ8tBGZHu2Rv9uSAYv0XmTpA322lbguEwu9/y+Ufq+AcI2eN+S+/e
Zrus/6FtfbaEOe3tnQThQ0kuJK4uUcAgTvjQCovpS+OBf2cjXaB89JFglSNuUXxCcl0rt2NBgVJV
x4dgdHTk+v+lTz9wIDAlOM2qDpIEJmr9g+hug2DaarcFA9eR7ceejR7WAqlNrC8NWfcvPKFwkLVT
njh3tO5HPEkjIRAfDTyPB2wWBfOF1q04AyKQGbMTGgNCS2bB4m6ntnsOQ2hOxbVrBquf/05gl476
ALVxLfe+90R4tOgxVUSkTQkBYeHgDXgYuU/JzaS6WveBO828QDgbBkuIn1fufziEyh9EnIzxF0od
AqugxTGdu0lZakBbPDihQRSJlZkktdabUKwcx9ki0s5kLH+LSaWmSVzYjyIy2nXRf+fP3k5b8APM
wkOdg4Zbba0/Kr3o/7mq6doG/XM1Wlu7uzTlBL/pC5i1RVO/kfex65ciFJyRyAqRgJf64MlzXNG0
cfIADXPmveepl7ihl0keVdLNnRunRQEkIAB9qN3jXIF7+q1X8roMVlLooMbGwsAlgGXb+TsPBZdp
UlnGhXHcABkaW7BifZPrYYx00muFYiAnBanV9syC0UcXaGYUiZI7N1ZclrUufO+htjMODKkOMEbT
I5s22+nutMtujqyEEb93gzR+dodVBKs57d6eYnl7eyXjVNWcmeiXtZDoGqixlkbkWI9Cn2shzw2A
MBme1wdgSjynJBmEbnvodlqG28FVcPkaNXMjIMZAVbtY6PBOSLiK7zJsp68yT7VFLWkGeKb+1OGZ
zlcGyHQ8VyLqCIBZXETodEr4SIVmiyQr4YUmRHWlz2Nlhv3b1LdbjFdmSIKnYiFpEh/hkLnu32v4
ZKHqFxtPGOFK7SaVHRWMSQ7H3Zqbh4WmSxP6Ke3koBTVGA3pT4Jm7/F77lXAjRBzEcclFlPk3pGA
Rpu4FtygcqqwriHLFVFUN99MsWoEBflzCI8oTeT+NxJKJ5PGb0IY5yiLibawVxnX9LYENRaGSd4N
oAfxuQQ17HUGgorZ3iFyWYhoSYELzaGrYB9rS2QEPMF+LYTYHTa3P1EqI2SE8ADMfivjBmlkch8G
hA2DqqcJlGRt1fgarFvnxVy7u1Ks54WkIaunvL5G4G0NUOko55j1Jl+7vK1clGopcPPvEQvbGssa
GGmOuUENl6hDlMw5928ThJU/wDNqJHg3vuTRpX1LseSYjYDEUjcmUexSY3pcEAtbU0APeUUu/g1m
KfcGrxI7woUUU+8QGZR+oQXs2nCETVgwgSrse0fjdhsIBOjs6tYtgCmd+ZosiILHLIjmp5xPpSvs
/DnbkU7pBAANf/xRp4Df26SXbYbfIWeAH8LIrS26Cz238Ut5DVfvTSHNF+QQNjyWfZETo7edBCkI
iuy/qdVJWWGp1a24eS5+xYWaiNM6bc5kQqvosaMEqXyxru1c6L2APFWwox4uEPBp4aTKhO1nMRwF
OWjYp0A9wogw2v3R+yA8FJNUEaoKgxDqW3PzqWwux6yyuaXva020Pasy5goVtJNzoCpVzIo7338l
9CHTC/zaek0X2toU2Ak0HDtE4QWQQqm0bUmNZBnH+L0N+Wn/QyYhiliQGwf3HC74O7jAguULFsse
2yAykytUboA0FUQxWtgwguFyW11VnyUupVV4QsopB1ZX3xwPgFNIb2ep51VBL3v9Gn/kceO4vI4A
9qgRbz75dZT6jp1kkcCn2d1kJwahBMwL/NtuYfPVVSzXbzHiZR4Gkgz8djIU6rMbz/b/ZkFaUHS1
mEt98qioeps20e5u/sxoK/v7QD9zby2rOP9dcP5/1+QZM57/jxee//dGhwdDcf4/7A37wzGe/4/G
vbE5/99Ae+nO/CmfyZXtrzvrJfxCA88vKAeBM3E2WD5FXOdgcXvuxo5+YEgGl50Xam09mFp7Txz8
LYWmS0GpZclcSD3gm1hKglQ6vdNuZfGmdFUmThqKLeUb4LiD0XjSUDzXdhzkQ769AbVAyimCh7ax
6IBlx02EcxqoNPtnywqjIOGQ7E6PxNGNMCNxhlPZPhcNnkI5EMz3vx25qfpGyDJfxid6V+W4L8cR
Wv88UpfU8GFSnlpmDNrkodygr+dbmbx0cgtNPbVVx6cJ5AmwmEjL0yVWCtMbz3WEFL/2lHCiz/U/
fRyx7CJBlik7XhDTNtDWlHsc1sBC6GpmSlMrx1+Sb8HX51KGCp3yPsqpmegzKe5VdnxhGWvMR2pe
hbnStj/j9EYYNCAgTUoNuorGBEB7UnDFg5YbR9kw1t6fzKS5MBouzfBrb16kycoAvGJboMkYmL+4
JKbRY2AgeH3GIFhM/1nXEeljQQzC9GUsA5FkcWGkIPysQWYlq9JuanaAvOVeLhMYsTslboGzZ/3y
/afmHK/mDbLzIruuul0uxQa1o/Cge52qslxTZc+ZqIF+jTw8H0jkfwNSr2wwEF5kAjSxUl+56wce
pWTOk6JrtsJQF7GZrXQp4L8ym0M5kDwVjrPFSB1INZ+6baJSwCmWkkKq0hg/s2zRKAvwizLJgi2F
mX4isdjmH2fvupqLjDMzfWHua4zYqWyYu8XRgdi8zX2Mtn1m0sm2Xw2n7NX0iL2KtzvaAGrnVc4o
IWZl3xMQO+R57sxajf6r+V/2Zl+TOcaK/A8ujov8bzwU+V9/YPK/DbQs/xN6V/K//EJNDqdmN5XD
jEnN3dIJkrTPuv0I0zbbyv4vk/JG51jh//2DwUHu/yNR/zMajsz+zyZa5v+kd8X9s9+qM9M1uZvY
DBR8m79bGxPwmdkJLPCJfEETLtCUjaByiwM6UlNhAe/o5Ysz/x7Qx/QEQp7tTzGUvY1uY8JLx2yv
3yko617TkMgKKAcK5dkpnovVESLlgUL5No75/MZ7qCEGyqFCeR0Ev9r+w9WDn9if3pFolDFHKp8J
pM0X9zyaecFHPdUCyrFCibK44rf4Ol6ZHigPFUoZxIGJnzkPy2P+oFC+BxNx55w41CdHyn8qlL/7
7jz06GVAPj3ldpJGvKDs96wvWDVAMKzy7m5lW+MRsMc02crxXyzxzc6xCv/1BwNZ/wdx/0Dgv4GJ
/xtpWfxHvSvhX/7Mf1MRCG4sZBeoaoT1a8Dct34i0x7TCv/3g7+eqQT8a+q/x6NDU/+9gVaj/6za
0mlqjuXxv3/Y7w+z+D8cjA6o/nuIdtAUA8vad65/U/+tj2Dqv0399/dc/12p9V63o/JuSG05+Yrq
8SWvh9SWmJv6clNfXt1PMvXltXtfpr7c1Jeb+nJTX27qy019ud5MfbmpL1dQp6kvp2bqy019OdmB
qS9fbrmmvtzUly9YTkx9+ZPjmakvN/Xlpr7c1Jeb+vIGzcvUlz9bffm3Pss27fFt8fsfzb0EuKr+
f3RYvP/XHw7o/Y+Dnqn/2ERbo/7fVOeb6vxSM9X5pjrfVOeb6vwn6NdU55vq/IXaMdX5pjrfVOdv
otXkf43/CYCV9V+jfpb/DUYHfZn/DU3+t4G2Rv1/M8X+3/pBTattNf7f+J8AWLv+H/1f7v9QTGiO
hcXN+L+p/zf1/6b+/zttNfG/8T8BsBL/9RX8NxJ///dwZPb/N9Eaq///1g9immmmmWbao9r/Aa/V
GBAAhAAA


             reply	other threads:[~2002-03-19 15:16 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-03-19  7:16 mdeil [this message]
2002-03-19 11:56 Neil Booth
2002-03-20  1:46 Mario Deilmann
2002-03-20 10:16 Neil Booth
2002-03-21  1:36 Mario Deilmann
2002-03-21 10:32 neil
2002-03-21 10:36 Neil Booth
2002-03-22  1:56 Mario Deilmann
2002-03-22 11:36 Neil Booth
2002-03-25 10:36 Neil Booth
2002-03-26  2:16 Mario Deilmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020319150827.5024.qmail@sources.redhat.com \
    --to=mdeil@pallas.de \
    --cc=gcc-gnats@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).