summaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>2012-01-29 19:01:09 +0000
committerjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>2012-01-29 19:01:09 +0000
commit1d8a57d8194b752bdfe871ea907aa8cb621b0df0 (patch)
tree23b6045fb8229578f5f13d9f3ea7b8ffd9821851 /gcc/fortran
parent1aaa0f21c75df5b83ef73c6293339cedc2cdd55c (diff)
downloadgcc-1d8a57d8194b752bdfe871ea907aa8cb621b0df0.tar.gz
PR 51808 Constify binding_label.
2012-01-29 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/51808 * decl.c (set_binding_label): Make binding_label argument const. (curr_binding_label): Constify. * gfortran.h (gfc_symbol): Constify binding_label. (gfc_common_head): Likewise. (get_iso_c_sym): Likewise. * match.c (gfc_match_name_C): Constify buffer argument. * match.h (gfc_match_name_C): Likewise. * resolve.c (set_name_and_label): Constify binding_label argument. (gfc_iso_c_sub_interface): Constify binding_label variable. * symbol.c (get_iso_c_sym): Constify binding_label argument. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183679 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog14
-rw-r--r--gcc/fortran/decl.c9
-rw-r--r--gcc/fortran/gfortran.h6
-rw-r--r--gcc/fortran/match.c2
-rw-r--r--gcc/fortran/match.h2
-rw-r--r--gcc/fortran/resolve.c4
-rw-r--r--gcc/fortran/symbol.c2
7 files changed, 27 insertions, 12 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 25ba3d37fdc..447479d631d 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,6 +1,20 @@
2012-01-29 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/51808
+ * decl.c (set_binding_label): Make binding_label argument const.
+ (curr_binding_label): Constify.
+ * gfortran.h (gfc_symbol): Constify binding_label.
+ (gfc_common_head): Likewise.
+ (get_iso_c_sym): Likewise.
+ * match.c (gfc_match_name_C): Constify buffer argument.
+ * match.h (gfc_match_name_C): Likewise.
+ * resolve.c (set_name_and_label): Constify binding_label argument.
+ (gfc_iso_c_sub_interface): Constify binding_label variable.
+ * symbol.c (get_iso_c_sym): Constify binding_label argument.
+
+2012-01-29 Janne Blomqvist <jb@gcc.gnu.org>
+
+ PR fortran/51808
* decl.c (set_binding_label): Move prototype from match.h to here.
(curr_binding_label): Make a pointer rather than static array.
(build_sym): Check sym->binding_label pointer rather than array,
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index 0cfb0ef3831..c87fc1b1ac4 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -35,7 +35,7 @@ along with GCC; see the file COPYING3. If not see
#define gfc_get_data() XCNEW (gfc_data)
-static gfc_try set_binding_label (char **, const char *, int);
+static gfc_try set_binding_label (const char **, const char *, int);
/* This flag is set if an old-style length selector is matched
@@ -55,7 +55,7 @@ static gfc_array_spec *current_as;
static int colon_seen;
/* The current binding label (if any). */
-static char* curr_binding_label;
+static const char* curr_binding_label;
/* Need to know how many identifiers are on the current data declaration
line in case we're given the BIND(C) attribute with a NAME= specifier. */
static int num_idents_on_line;
@@ -3808,7 +3808,8 @@ cleanup:
there is more than one argument (num_idents), it is an error. */
static gfc_try
-set_binding_label (char **dest_label, const char *sym_name, int num_idents)
+set_binding_label (const char **dest_label, const char *sym_name,
+ int num_idents)
{
if (num_idents > 1 && has_name_equals)
{
@@ -5713,7 +5714,7 @@ match
gfc_match_bind_c (gfc_symbol *sym, bool allow_binding_name)
{
/* binding label, if exists */
- char* binding_label = NULL;
+ const char* binding_label = NULL;
match double_quote;
match single_quote;
diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h
index bf9a1f9074b..6f49d6146ba 100644
--- a/gcc/fortran/gfortran.h
+++ b/gcc/fortran/gfortran.h
@@ -1237,7 +1237,7 @@ typedef struct gfc_symbol
/* This may be repetitive, since the typespec now has a binding
label field. */
- char* binding_label;
+ const char* binding_label;
/* Store a reference to the common_block, if this symbol is in one. */
struct gfc_common_head *common_block;
@@ -1254,7 +1254,7 @@ typedef struct gfc_common_head
char use_assoc, saved, threadprivate;
char name[GFC_MAX_SYMBOL_LEN + 1];
struct gfc_symbol *head;
- char* binding_label;
+ const char* binding_label;
int is_bind_c;
}
gfc_common_head;
@@ -2595,7 +2595,7 @@ gfc_try verify_bind_c_sym (gfc_symbol *, gfc_typespec *, int, gfc_common_head *)
gfc_try verify_bind_c_derived_type (gfc_symbol *);
gfc_try verify_com_block_vars_c_interop (gfc_common_head *);
void generate_isocbinding_symbol (const char *, iso_c_binding_symbol, const char *);
-gfc_symbol *get_iso_c_sym (gfc_symbol *, char *, char *, int);
+gfc_symbol *get_iso_c_sym (gfc_symbol *, char *, const char *, int);
int gfc_get_sym_tree (const char *, gfc_namespace *, gfc_symtree **, bool);
int gfc_get_ha_symbol (const char *, gfc_symbol **);
int gfc_get_ha_sym_tree (const char *, gfc_symtree **);
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c
index 3024cc7b9c9..89b59bc8036 100644
--- a/gcc/fortran/match.c
+++ b/gcc/fortran/match.c
@@ -581,7 +581,7 @@ gfc_match_name (char *buffer)
we successfully match a C name. */
match
-gfc_match_name_C (char **buffer)
+gfc_match_name_C (const char **buffer)
{
locus old_loc;
size_t i = 0;
diff --git a/gcc/fortran/match.h b/gcc/fortran/match.h
index 642c4373ac7..029faf77e7b 100644
--- a/gcc/fortran/match.h
+++ b/gcc/fortran/match.h
@@ -52,7 +52,7 @@ match gfc_match_label (void);
match gfc_match_small_int (int *);
match gfc_match_small_int_expr (int *, gfc_expr **);
match gfc_match_name (char *);
-match gfc_match_name_C (char **buffer);
+match gfc_match_name_C (const char **buffer);
match gfc_match_symbol (gfc_symbol **, int);
match gfc_match_sym_tree (gfc_symtree **, int);
match gfc_match_intrinsic_op (gfc_intrinsic_op *);
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 30980d21b8b..0560261be8d 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -3356,7 +3356,7 @@ generic:
static void
set_name_and_label (gfc_code *c, gfc_symbol *sym,
- char *name, char **binding_label)
+ char *name, const char **binding_label)
{
gfc_expr *arg = NULL;
char type;
@@ -3420,7 +3420,7 @@ gfc_iso_c_sub_interface (gfc_code *c, gfc_symbol *sym)
gfc_symbol *new_sym;
/* this is fine, since we know the names won't use the max */
char name[GFC_MAX_SYMBOL_LEN + 1];
- char* binding_label;
+ const char* binding_label;
/* default to success; will override if find error */
match m = MATCH_YES;
diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c
index e13e1df0d33..0cd7cc8d3e3 100644
--- a/gcc/fortran/symbol.c
+++ b/gcc/fortran/symbol.c
@@ -4683,7 +4683,7 @@ generate_isocbinding_symbol (const char *mod_name, iso_c_binding_symbol s,
gfc_symbol *
get_iso_c_sym (gfc_symbol *old_sym, char *new_name,
- char *new_binding_label, int add_optional_arg)
+ const char *new_binding_label, int add_optional_arg)
{
gfc_symtree *new_symtree = NULL;