compile error for mkString on alpha (PR#332)

About this list Date view Thread view Subject view Author view Other groups

Subject: compile error for mkString on alpha (PR#332)
albrecht.gebhardt@uni-klu.ac.at
Date: Wed 24 Nov 1999 - 00:14:01 EST


Message-Id: <199911231414.PAA25164@pubhealth.ku.dk>

Full_Name: Albrecht Gebhardt
Version: 0.90.0
OS: osf4.0
Submission from: (NULL) (143.205.61.73)

I had to apply the following patch to be able to compile on
an alpha with DU 4.0E:
###############################################
--- ./src/main/gram.y.mkString-patch Tue Nov 23 12:16:29 1999
+++ ./src/main/gram.y Tue Nov 23 12:16:59 1999
@@ -56,7 +56,8 @@
 SEXP mkFloat(char *);
 SEXP mkInteger(char *);
 SEXP mkNA(void);
-SEXP mkString(const char *);
+typedef const char cchar;
+SEXP mkString(cchar *);
 SEXP mkTrue(void);
 
 /* Internal lexer / parser state variables */
@@ -1362,7 +1363,7 @@
 }
 
 
-SEXP mkString(const char *s)
+SEXP mkString(cchar *s)
 {
     SEXP t;
 
################################################
Without the patch I got:

cc -I. -I../include -I../../src/include -I/usr/local/include -DHAVE_CONFIG_H
-ieee_with_inexact -g -c gram.c -o gram.o
cc: Warning: ../../../R/src/main/gram.y, line 1626: # not in column 1 is
ignored, skipping to end of line. (ignoretokens)
            #if 0
------------^
cc: Warning: ../../../R/src/main/gram.y, line 1628: # not in column 1 is
ignored, skipping to end of line. (ignoretokens)
            #endif
------------^
cc: Warning: ../../../R/src/main/gram.y, line 644: In this statement, the
referenced type of the pointer value "SourceLine" is "unsigned char", which is
not compatible
with "const signed char". (ptrmismatch)
                    STRING(source)[lines++] = mkChar(SourceLine);
------------------------------------------------------^
cc: Warning: ../../../R/src/main/gram.y, line 1144: In this statement, the
referenced type of the pointer value "buf" is "signed char", which is not
compatible with "un
signed char". (ptrmismatch)
                                 buf, 1024, 1) == 0) return R_NilValue;
---------------------------------^
cc: Warning: ../../../R/src/main/gram.y, line 1177: In this statement, the
referenced type of the pointer value "buf" is "signed char", which is not
compatible with "un
signed char". (ptrmismatch)
                                 buf, 1024, 1) == 0) return R_NilValue;
---------------------------------^
cc: Error: ../../../R/src/main/gram.y, line 1365: In this declaration, parameter
1 has a different type than specified in an earlier declaration of this
function. (mism
atparam)
SEXP mkString(const char *s)
-----^
cc: Error: ../../../R/src/main/gram.y, line 1365: In this declaration, the type
of "mkString" is not compatible with the type of a previous declaration of
"mkString" at
 line number 59 in file ../../../R/src/main/gram.y. (notcompat)
SEXP mkString(const char *s)
-----^

Then I looked at the preprocessed sources:
cc -I. -I../include -I../../src/include -I/usr/local/include -DHAVE_CONFIG_H
-ieee_with_inexact -g -E gram.c > gram.E

grep -n mkString gram.E
8915:SEXP mkString(const char*);
9564:SEXP mkString(const char *);
11995:SEXP mkString( char *s)
12179: protect(yylval = mkString(yytext));

I don't know why the third occurrence of "mkString(const char*);"
(line 11995 of preproccessor output) has the "const" removed, it is present in
the
source! But the trick with typedefing "const char" to "cconst" in the patch
above works.

BTW, there are many warnings about mixing "char" and "unsigned char",
not only in gram.c!

Albrecht

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._


About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b25 : Tue 04 Jan 2000 - 14:16:10 EST