home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / gnu / gcc / bug / 3124 < prev    next >
Encoding:
Text File  |  1993-01-07  |  13.9 KB  |  324 lines

  1. Newsgroups: gnu.gcc.bug
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!vki68.aar-vki.DK!eks
  3. From: eks@vki68.aar-vki.DK (Eigil Krogh Sorensen)
  4. Subject: gcc-2.3.3 error when making groff-1.06
  5. Message-ID: <m0n9a37-0000tlC@vki68.aar-vki.dk>
  6. Sender: gnulists@ai.mit.edu
  7. Organization: GNUs Not Usenet
  8. Distribution: gnu
  9. Date: Wed, 6 Jan 1993 11:39:53 GMT
  10. Approved: bug-gcc@prep.ai.mit.edu
  11. Lines: 311
  12.  
  13. Now gcc-2.3.3 is installed on this Motorola sysV68 R3V5.1 (mvme147/
  14. 68030 based) system. But I still get the error enclosed (screendump)
  15. when makeing groff-1.06. The same error which came when gcc-2.3.2
  16. was used.
  17.  
  18. The error comes when libgroff/errarg.cc is compiled.
  19.  
  20. I'm not the best in understanding C++. All the files are
  21. enclosed to so that you can se if something's wrong.
  22.  
  23. Is it possible to give any hints about what is wrong and what I
  24. can do about it.
  25.  
  26.  
  27. Best,
  28. Eigil Krogh Sorensen.
  29.  
  30.  
  31.  
  32. --------------------------------------------------------------------
  33. Screendump of error ("vki68 eks $" is prompt).
  34. -----------------------------------------------
  35.  
  36. make
  37. Making all in include
  38. Making all in libgroff
  39.         gcc -O2 -v -I. -I. -I../include -I./../include -DHAVE_UNISTD_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_CC_LIMITS_H=1 -DHAVE_CC_UNISTD_H=1 -DSTDLIB_H_DECLARES_GETOPT=1 -DSTDLIB_H_DECLARES_PUTENV=1 -DLONG_FOR_TIME_T=1 -Dvfork=fork   -c assert.cc
  40. Reading specs from /usr/local/lib/gcc-lib/3300/2.3.3/specs
  41. gcc version 2.3.3
  42.  /usr/local/lib/gcc-lib/3300/2.3.3/cpp -lang-c++ -v -I. -I. -I../include -I./../include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Dm68k -Dunix -DsysV68 -D__m68k__ -D__unix__ -D__sysV68__ -D__m68k -D__unix -D__sysV68 -D__OPTIMIZE__ -D__HAVE_68881__ -DHAVE_UNISTD_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_CC_LIMITS_H=1 -DHAVE_CC_UNISTD_H=1 -DSTDLIB_H_DECLARES_GETOPT=1 -DSTDLIB_H_DECLARES_PUTENV=1 -DLONG_FOR_TIME_T=1 -Dvfork=fork assert.cc /usr/tmp/cca20792.i
  43. GNU CPP version 2.3.3 (68k, SGS/AT&T sysV68 syntax)
  44.  /usr/local/lib/gcc-lib/3300/2.3.3/cc1plus /usr/tmp/cca20792.i -quiet -dumpbase assert.cc -O2 -version -o /usr/tmp/cca20792.s
  45. GNU C++ version 2.3.3 (68k, SGS/AT&T sysV68 syntax) compiled by GNU C version 2.3.3.
  46.  as -o assert.o /usr/tmp/cca20792.s
  47.         gcc -O2 -v -I. -I. -I../include -I./../include -DHAVE_UNISTD_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_CC_LIMITS_H=1 -DHAVE_CC_UNISTD_H=1 -DSTDLIB_H_DECLARES_GETOPT=1 -DSTDLIB_H_DECLARES_PUTENV=1 -DLONG_FOR_TIME_T=1 -Dvfork=fork   -c change_lf.cc
  48. Reading specs from /usr/local/lib/gcc-lib/3300/2.3.3/specs
  49. gcc version 2.3.3
  50.  /usr/local/lib/gcc-lib/3300/2.3.3/cpp -lang-c++ -v -I. -I. -I../include -I./../include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Dm68k -Dunix -DsysV68 -D__m68k__ -D__unix__ -D__sysV68__ -D__m68k -D__unix -D__sysV68 -D__OPTIMIZE__ -D__HAVE_68881__ -DHAVE_UNISTD_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_CC_LIMITS_H=1 -DHAVE_CC_UNISTD_H=1 -DSTDLIB_H_DECLARES_GETOPT=1 -DSTDLIB_H_DECLARES_PUTENV=1 -DLONG_FOR_TIME_T=1 -Dvfork=fork change_lf.cc /usr/tmp/cca20797.i
  51. GNU CPP version 2.3.3 (68k, SGS/AT&T sysV68 syntax)
  52.  /usr/local/lib/gcc-lib/3300/2.3.3/cc1plus /usr/tmp/cca20797.i -quiet -dumpbase change_lf.cc -O2 -version -o /usr/tmp/cca20797.s
  53. GNU C++ version 2.3.3 (68k, SGS/AT&T sysV68 syntax) compiled by GNU C version 2.3.3.
  54.  as -o change_lf.o /usr/tmp/cca20797.s
  55.         gcc -O2 -v -I. -I. -I../include -I./../include -DHAVE_UNISTD_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_CC_LIMITS_H=1 -DHAVE_CC_UNISTD_H=1 -DSTDLIB_H_DECLARES_GETOPT=1 -DSTDLIB_H_DECLARES_PUTENV=1 -DLONG_FOR_TIME_T=1 -Dvfork=fork   -c cmap.cc
  56. Reading specs from /usr/local/lib/gcc-lib/3300/2.3.3/specs
  57. gcc version 2.3.3
  58.  /usr/local/lib/gcc-lib/3300/2.3.3/cpp -lang-c++ -v -I. -I. -I../include -I./../include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Dm68k -Dunix -DsysV68 -D__m68k__ -D__unix__ -D__sysV68__ -D__m68k -D__unix -D__sysV68 -D__OPTIMIZE__ -D__HAVE_68881__ -DHAVE_UNISTD_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_CC_LIMITS_H=1 -DHAVE_CC_UNISTD_H=1 -DSTDLIB_H_DECLARES_GETOPT=1 -DSTDLIB_H_DECLARES_PUTENV=1 -DLONG_FOR_TIME_T=1 -Dvfork=fork cmap.cc /usr/tmp/cca20802.i
  59. GNU CPP version 2.3.3 (68k, SGS/AT&T sysV68 syntax)
  60.  /usr/local/lib/gcc-lib/3300/2.3.3/cc1plus /usr/tmp/cca20802.i -quiet -dumpbase cmap.cc -O2 -version -o /usr/tmp/cca20802.s
  61. GNU C++ version 2.3.3 (68k, SGS/AT&T sysV68 syntax) compiled by GNU C version 2.3.3.
  62.  as -o cmap.o /usr/tmp/cca20802.s
  63.         gcc -O2 -v -I. -I. -I../include -I./../include -DHAVE_UNISTD_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_CC_LIMITS_H=1 -DHAVE_CC_UNISTD_H=1 -DSTDLIB_H_DECLARES_GETOPT=1 -DSTDLIB_H_DECLARES_PUTENV=1 -DLONG_FOR_TIME_T=1 -Dvfork=fork   -c cset.cc
  64. Reading specs from /usr/local/lib/gcc-lib/3300/2.3.3/specs
  65. gcc version 2.3.3
  66.  /usr/local/lib/gcc-lib/3300/2.3.3/cpp -lang-c++ -v -I. -I. -I../include -I./../include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Dm68k -Dunix -DsysV68 -D__m68k__ -D__unix__ -D__sysV68__ -D__m68k -D__unix -D__sysV68 -D__OPTIMIZE__ -D__HAVE_68881__ -DHAVE_UNISTD_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_CC_LIMITS_H=1 -DHAVE_CC_UNISTD_H=1 -DSTDLIB_H_DECLARES_GETOPT=1 -DSTDLIB_H_DECLARES_PUTENV=1 -DLONG_FOR_TIME_T=1 -Dvfork=fork cset.cc /usr/tmp/cca20807.i
  67. GNU CPP version 2.3.3 (68k, SGS/AT&T sysV68 syntax)
  68.  /usr/local/lib/gcc-lib/3300/2.3.3/cc1plus /usr/tmp/cca20807.i -quiet -dumpbase cset.cc -O2 -version -o /usr/tmp/cca20807.s
  69. GNU C++ version 2.3.3 (68k, SGS/AT&T sysV68 syntax) compiled by GNU C version 2.3.3.
  70.  as -o cset.o /usr/tmp/cca20807.s
  71.         gcc -O2 -v -I. -I. -I../include -I./../include -DHAVE_UNISTD_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_CC_LIMITS_H=1 -DHAVE_CC_UNISTD_H=1 -DSTDLIB_H_DECLARES_GETOPT=1 -DSTDLIB_H_DECLARES_PUTENV=1 -DLONG_FOR_TIME_T=1 -Dvfork=fork   -c device.cc
  72. Reading specs from /usr/local/lib/gcc-lib/3300/2.3.3/specs
  73. gcc version 2.3.3
  74.  /usr/local/lib/gcc-lib/3300/2.3.3/cpp -lang-c++ -v -I. -I. -I../include -I./../include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Dm68k -Dunix -DsysV68 -D__m68k__ -D__unix__ -D__sysV68__ -D__m68k -D__unix -D__sysV68 -D__OPTIMIZE__ -D__HAVE_68881__ -DHAVE_UNISTD_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_CC_LIMITS_H=1 -DHAVE_CC_UNISTD_H=1 -DSTDLIB_H_DECLARES_GETOPT=1 -DSTDLIB_H_DECLARES_PUTENV=1 -DLONG_FOR_TIME_T=1 -Dvfork=fork device.cc /usr/tmp/cca20812.i
  75. GNU CPP version 2.3.3 (68k, SGS/AT&T sysV68 syntax)
  76.  /usr/local/lib/gcc-lib/3300/2.3.3/cc1plus /usr/tmp/cca20812.i -quiet -dumpbase device.cc -O2 -version -o /usr/tmp/cca20812.s
  77. GNU C++ version 2.3.3 (68k, SGS/AT&T sysV68 syntax) compiled by GNU C version 2.3.3.
  78.  as -o device.o /usr/tmp/cca20812.s
  79.         gcc -O2 -v -I. -I. -I../include -I./../include -DHAVE_UNISTD_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_CC_LIMITS_H=1 -DHAVE_CC_UNISTD_H=1 -DSTDLIB_H_DECLARES_GETOPT=1 -DSTDLIB_H_DECLARES_PUTENV=1 -DLONG_FOR_TIME_T=1 -Dvfork=fork   -c errarg.cc
  80. Reading specs from /usr/local/lib/gcc-lib/3300/2.3.3/specs
  81. gcc version 2.3.3
  82.  /usr/local/lib/gcc-lib/3300/2.3.3/cpp -lang-c++ -v -I. -I. -I../include -I./../include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Dm68k -Dunix -DsysV68 -D__m68k__ -D__unix__ -D__sysV68__ -D__m68k -D__unix -D__sysV68 -D__OPTIMIZE__ -D__HAVE_68881__ -DHAVE_UNISTD_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_CC_LIMITS_H=1 -DHAVE_CC_UNISTD_H=1 -DSTDLIB_H_DECLARES_GETOPT=1 -DSTDLIB_H_DECLARES_PUTENV=1 -DLONG_FOR_TIME_T=1 -Dvfork=fork errarg.cc /usr/tmp/cca20817.i
  83. GNU CPP version 2.3.3 (68k, SGS/AT&T sysV68 syntax)
  84.  /usr/local/lib/gcc-lib/3300/2.3.3/cc1plus /usr/tmp/cca20817.i -quiet -dumpbase errarg.cc -O2 -version -o /usr/tmp/cca20817.s
  85. GNU C++ version 2.3.3 (68k, SGS/AT&T sysV68 syntax) compiled by GNU C version 2.3.3.
  86. errarg.cc: In method `errarg::errarg (const char *)':
  87. errarg.cc:25: class `errarg' does not have any field named `s'
  88. errarg.cc: In method `errarg::errarg (unsigned char)':
  89. errarg.cc:35: `c' undeclared (first use this function)
  90. errarg.cc:35: (Each undeclared identifier is reported only once
  91. errarg.cc:35: for each function it appears in.)
  92. errarg.cc: In method `errarg::errarg (int)':
  93. errarg.cc:38: class `errarg' does not have any field named `n'
  94. errarg.cc: In method `errarg::errarg (char)':
  95. errarg.cc:42: class `errarg' does not have any field named `c'
  96. errarg.cc: In method `errarg::errarg (double)':
  97. errarg.cc:46: class `errarg' does not have any field named `d'
  98. errarg.cc: In method `void  errarg::print ()const ':
  99. errarg.cc:63: `n' undeclared (first use this function)
  100. errarg.cc:56: too few arguments to function `const char * itoa (int)'
  101. errarg.cc:63: at this point in file
  102. errarg.cc:66: `c' undeclared (first use this function)
  103. errarg.cc:69: `s' undeclared (first use this function)
  104. errarg.cc:69: incompatible pointer types for argument 1 of `int  fputs (const char *, struct _%_0*)'
  105. /usr/local/lib/g++-include/stdio.h:120: too few arguments to function `int  fputs (const char *, struct _%_0*)'
  106. errarg.cc:69: at this point in file
  107. errarg.cc:72: `d' undeclared (first use this function)
  108. *** Error code 1
  109.  
  110. Stop.
  111. *** Error code 1
  112.  
  113. Stop.
  114. *** Error code 1
  115.  
  116. Stop.
  117. vki68 eks $ cat libgroff/errarg.cc
  118. // -*- C++ -*-
  119. /* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
  120.      Written by James Clark (jjc@jclark.com)
  121.  
  122. This file is part of groff.
  123.  
  124. groff is free software; you can redistribute it and/or modify it under
  125. the terms of the GNU General Public License as published by the Free
  126. Software Foundation; either version 2, or (at your option) any later
  127. version.
  128.  
  129. groff is distributed in the hope that it will be useful, but WITHOUT ANY
  130. WARRANTY; without even the implied warranty of MERCHANTABILITY or
  131. FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  132. for more details.
  133.  
  134. You should have received a copy of the GNU General Public License along
  135. with groff; see the file COPYING.  If not, write to the Free Software
  136. Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
  137.  
  138. #include <stdio.h>
  139. #include "assert.h"
  140. #include "errarg.h"
  141.  
  142. errarg::errarg(const char *p) : s(p ? p : "(null)"), type(STRING)
  143. {
  144. }
  145.  
  146. errarg::errarg() : type(EMPTY)
  147. {
  148. }
  149.  
  150. errarg::errarg(unsigned char cc) : type(CHAR)
  151. {
  152.   c = cc;
  153. }
  154.  
  155. errarg::errarg(int nn) : type(INTEGER), n(nn)
  156. {
  157. }
  158.  
  159. errarg::errarg(char cc) : type(CHAR), c(cc)
  160. {
  161. }
  162.  
  163. errarg::errarg(double dd) : type(DOUBLE), d(dd)
  164. {
  165. }
  166.  
  167. int errarg::empty() const
  168. {
  169.   return type == EMPTY;
  170. }
  171.  
  172. extern "C" {
  173.   const char *itoa(int);
  174. }
  175.             
  176. void errarg::print() const
  177. {
  178.   switch (type) {
  179.   case INTEGER:
  180.     fputs(itoa(n), stderr);
  181.     break;
  182.   case CHAR:
  183.     putc(c, stderr);
  184.     break;
  185.   case STRING:
  186.     fputs(s, stderr);
  187.     break;
  188.   case DOUBLE:
  189.     fprintf(stderr, "%g", d);
  190.     break;
  191.   case EMPTY:
  192.     break;
  193.   }
  194. }
  195.  
  196. errarg empty_errarg;
  197.  
  198. void errprint(const char *format, 
  199.               const errarg &arg1,
  200.               const errarg &arg2,
  201.               const errarg &arg3)
  202. {
  203.   assert(format != 0);
  204.   char c;
  205.   while ((c = *format++) != '\0') {
  206.     if (c == '%') {
  207.       c = *format++;
  208.       switch(c) {
  209.       case '%':
  210.         fputc('%', stderr);
  211.         break;
  212.       case '1':
  213.         assert(!arg1.empty());
  214.         arg1.print();
  215.         break;
  216.       case '2':
  217.         assert(!arg2.empty());
  218.         arg2.print();
  219.         break;
  220.       case '3':
  221.         assert(!arg3.empty());
  222.         arg3.print();
  223.         break;
  224.       default:
  225.         assert(0);
  226.       }
  227.     }
  228.     else
  229.       putc(c, stderr);
  230.   }
  231. }
  232. vki68 eks $ cat include           cat include/errarg.h
  233. // -*- C++ -*-
  234. /* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
  235.      Written by James Clark (jjc@jclark.com)
  236.  
  237. This file is part of groff.
  238.  
  239. groff is free software; you can redistribute it and/or modify it under
  240. the terms of the GNU General Public License as published by the Free
  241. Software Foundation; either version 2, or (at your option) any later
  242. version.
  243.  
  244. groff is distributed in the hope that it will be useful, but WITHOUT ANY
  245. WARRANTY; without even the implied warranty of MERCHANTABILITY or
  246. FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  247. for more details.
  248.  
  249. You should have received a copy of the GNU General Public License along
  250. with groff; see the file COPYING.  If not, write to the Free Software
  251. Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
  252.  
  253. class errarg {
  254.   enum { EMPTY, STRING, CHAR, INTEGER, DOUBLE } type;
  255.   union {
  256.     const char *s;
  257.     int n;
  258.     char c;
  259.     double d;
  260.   };
  261.  public:
  262.   errarg();
  263.   errarg(const char *);
  264.   errarg(char);
  265.   errarg(unsigned char);
  266.   errarg(int);
  267.   errarg(double);
  268.   int empty() const;
  269.   void print() const;
  270. };
  271.  
  272. extern errarg empty_errarg;
  273.  
  274. extern void errprint(const char *,
  275.                      const errarg &arg1 = empty_errarg,
  276.                      const errarg &arg2 = empty_errarg,
  277.                      const errarg &arg3 = empty_errarg);
  278.  
  279. vki68 eks $ cay   
  280. vki68 eks $ cat include/assert.h
  281. // -*- C++ -*-
  282. /* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
  283.      Written by James Clark (jjc@jclark.com)
  284.  
  285. This file is part of groff.
  286.  
  287. groff is free software; you can redistribute it and/or modify it under
  288. the terms of the GNU General Public License as published by the Free
  289. Software Foundation; either version 2, or (at your option) any later
  290. version.
  291.  
  292. groff is distributed in the hope that it will be useful, but WITHOUT ANY
  293. WARRANTY; without even the implied warranty of MERCHANTABILITY or
  294. FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  295. for more details.
  296.  
  297. You should have received a copy of the GNU General Public License along
  298. with groff; see the file COPYING.  If not, write to the Free Software
  299. Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
  300.  
  301. #ifndef ASSERT_H
  302. #define ASSERT_H
  303. #ifdef __GNUG__
  304. volatile
  305. #endif
  306. void assertion_failed(int, const char *);
  307.  
  308. inline void do_assert(int expr, int line, const char *file)
  309. {
  310.   if (!expr)
  311.     assertion_failed(line, file);
  312. }
  313. #endif /* ASSERT_H */
  314.  
  315. #undef assert
  316.  
  317. #ifdef NDEBUG
  318. #define assert(ignore) /* as nothing */
  319. #else
  320. #define assert(expr) do_assert(expr, __LINE__, __FILE__)
  321. #endif
  322. vki68 eks $
  323.  
  324.