diff options
Diffstat (limited to 'gcc/java')
-rw-r--r-- | gcc/java/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/java/jcf-parse.c | 2 | ||||
-rw-r--r-- | gcc/java/jcf-write.c | 16 | ||||
-rw-r--r-- | gcc/java/parse.y | 13 |
4 files changed, 25 insertions, 15 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 55b4295..4dfa874 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,12 @@ +2000-08-29 Zack Weinberg <zack@wolery.cumb.org> + + * jcf-parse.c (set_source_filename): Constify a char *. + * jcf-write.c (append_innerclasses_attribute, + make_class_file_name): Constify a char *. Don't recycle a + variable for an unrelated purpose. + * parse.y: (build_alias_initializer_parameter_list): Constify a char *. + (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings. + 2000-08-29 Alexandre Petit-Bianco <apbianco@cygnus.com> * expr.c (can_widen_reference_to): Fixed indentation. diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c index 4b00c43..02becc0 100644 --- a/gcc/java/jcf-parse.c +++ b/gcc/java/jcf-parse.c @@ -99,7 +99,7 @@ set_source_filename (jcf, index) int index; { tree sfname_id = get_name_constant (jcf, index); - char *sfname = IDENTIFIER_POINTER (sfname_id); + const char *sfname = IDENTIFIER_POINTER (sfname_id); if (input_filename != NULL) { int old_len = strlen (input_filename); diff --git a/gcc/java/jcf-write.c b/gcc/java/jcf-write.c index 7ab1518..6a6d7e1 100644 --- a/gcc/java/jcf-write.c +++ b/gcc/java/jcf-write.c @@ -3161,7 +3161,7 @@ append_innerclasses_attribute (state, class) process: itself, up and down. */ while (class && INNER_CLASS_TYPE_P (class)) { - char *n; + const char *n; decl = TYPE_NAME (class); n = IDENTIFIER_POINTER (DECL_NAME (decl)) + @@ -3218,8 +3218,8 @@ static char * make_class_file_name (clas) tree clas; { - const char *dname, *slash; - char *cname, *r; + const char *dname, *cname, *slash; + char *r; struct stat sb; cname = IDENTIFIER_POINTER (identifier_subst (DECL_NAME (TYPE_NAME (clas)), @@ -3261,10 +3261,10 @@ make_class_file_name (clas) dname = r + (slash - dname) + 1; while (1) { - cname = strchr (dname, DIR_SEPARATOR); - if (cname == NULL) + char *s = strchr (dname, DIR_SEPARATOR); + if (s == NULL) break; - *cname = '\0'; + *s = '\0'; if (stat (r, &sb) == -1) { /* Try to make it. */ @@ -3275,9 +3275,9 @@ make_class_file_name (clas) return NULL; } } - *cname = DIR_SEPARATOR; + *s = DIR_SEPARATOR; /* Skip consecutive separators. */ - for (dname = cname + 1; *dname && *dname == DIR_SEPARATOR; ++dname) + for (dname = s + 1; *dname && *dname == DIR_SEPARATOR; ++dname) ; } diff --git a/gcc/java/parse.y b/gcc/java/parse.y index d67b6c7..4676153 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -5014,7 +5014,7 @@ build_alias_initializer_parameter_list (mode, class_type, parm, artificial) for (field = TYPE_FIELDS (class_type); field; field = TREE_CHAIN (field)) if (FIELD_LOCAL_ALIAS (field)) { - char *buffer = IDENTIFIER_POINTER (DECL_NAME (field)); + const char *buffer = IDENTIFIER_POINTER (DECL_NAME (field)); tree purpose = NULL_TREE, value = NULL_TREE, name = NULL_TREE; switch (mode) @@ -10746,12 +10746,14 @@ static int breakdown_qualified (left, right, source) tree *left, *right, source; { - char *p = IDENTIFIER_POINTER (source), *base; + char *p, *base; int l = IDENTIFIER_LENGTH (source); + base = alloca (l + 1); + memcpy (base, IDENTIFIER_POINTER (source), l + 1); + /* Breakdown NAME into REMAINDER . IDENTIFIER */ - base = p; - p += (l-1); + p = base + l - 1; while (*p != '.' && p != base) p--; @@ -10762,8 +10764,7 @@ breakdown_qualified (left, right, source) *p = '\0'; if (right) *right = get_identifier (p+1); - *left = get_identifier (IDENTIFIER_POINTER (source)); - *p = '.'; + *left = get_identifier (base); return 0; } |