projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Power10 Copy/Paste Extensions
[deliverable/binutils-gdb.git]
/
gas
/
cond.c
diff --git
a/gas/cond.c
b/gas/cond.c
index 4b6326f463c7a597c2da90cd08e3fe847433f0da..9753369e1882cf4f8a244b7720f0c3e3ca2adacd 100644
(file)
--- a/
gas/cond.c
+++ b/
gas/cond.c
@@
-1,6
+1,5
@@
/* cond.c - conditional assembly pseudo-ops, and .include
/* cond.c - conditional assembly pseudo-ops, and .include
- Copyright 1990, 1991, 1992, 1993, 1995, 1997, 1998, 2000, 2001, 2002,
- 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1990-2020 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
This file is part of GAS, the GNU Assembler.
@@
-29,15
+28,17
@@
scanned. */
struct obstack cond_obstack;
scanned. */
struct obstack cond_obstack;
-struct file_line {
- char *file;
+struct file_line
+{
+ const char *file;
unsigned int line;
};
/* We push one of these structures for each .if, and pop it at the
.endif. */
unsigned int line;
};
/* We push one of these structures for each .if, and pop it at the
.endif. */
-struct conditional_frame {
+struct conditional_frame
+{
/* The source file & line number of the "if". */
struct file_line if_file_line;
/* The source file & line of the "else". */
/* The source file & line number of the "if". */
struct file_line if_file_line;
/* The source file & line of the "else". */
@@
-78,7
+79,7
@@
s_ifdef (int test_defined)
SKIP_WHITESPACE ();
name = input_line_pointer;
SKIP_WHITESPACE ();
name = input_line_pointer;
- if (!is_name_beginner (*name))
+ if (!is_name_beginner (*name)
&& *name != '"'
)
{
as_bad (_("invalid identifier for \".ifdef\""));
obstack_1grow (&cond_obstack, 0);
{
as_bad (_("invalid identifier for \".ifdef\""));
obstack_1grow (&cond_obstack, 0);
@@
-86,12
+87,12
@@
s_ifdef (int test_defined)
return;
}
return;
}
- c = get_symbol_
end (
);
+ c = get_symbol_
name (& name
);
symbolP = symbol_find (name);
symbolP = symbol_find (name);
-
*input_line_pointer = c
;
+
(void) restore_line_pointer (c)
;
initialize_cframe (&cframe);
initialize_cframe (&cframe);
-
+
if (cframe.dead_tree)
cframe.ignoring = 1;
else
if (cframe.dead_tree)
cframe.ignoring = 1;
else
@@
-109,9
+110,9
@@
s_ifdef (int test_defined)
cframe.ignoring = ! (test_defined ^ is_defined);
}
cframe.ignoring = ! (test_defined ^ is_defined);
}
- current_cframe =
((struct conditional_frame *)
- obstack_copy (&cond_obstack, &cframe,
-
sizeof (cframe))
);
+ current_cframe =
+ (struct conditional_frame *) obstack_alloc (&cond_obstack, sizeof cframe);
+
memcpy (current_cframe, &cframe, sizeof cframe
);
if (LISTING_SKIP_COND ()
&& cframe.ignoring
if (LISTING_SKIP_COND ()
&& cframe.ignoring
@@
-129,7
+130,7
@@
s_if (int arg)
struct conditional_frame cframe;
int t;
char *stop = NULL;
struct conditional_frame cframe;
int t;
char *stop = NULL;
- char stopc;
+ char stopc
= 0
;
if (flag_mri)
stop = mri_comment_field (&stopc);
if (flag_mri)
stop = mri_comment_field (&stopc);
@@
-167,8
+168,9
@@
s_if (int arg)
using an undefined result. No big deal. */
initialize_cframe (&cframe);
cframe.ignoring = cframe.dead_tree || ! t;
using an undefined result. No big deal. */
initialize_cframe (&cframe);
cframe.ignoring = cframe.dead_tree || ! t;
- current_cframe = ((struct conditional_frame *)
- obstack_copy (&cond_obstack, &cframe, sizeof (cframe)));
+ current_cframe =
+ (struct conditional_frame *) obstack_alloc (&cond_obstack, sizeof cframe);
+ memcpy (current_cframe, & cframe, sizeof cframe);
if (LISTING_SKIP_COND ()
&& cframe.ignoring
if (LISTING_SKIP_COND ()
&& cframe.ignoring
@@
-191,7
+193,7
@@
s_ifb (int test_blank)
struct conditional_frame cframe;
initialize_cframe (&cframe);
struct conditional_frame cframe;
initialize_cframe (&cframe);
-
+
if (cframe.dead_tree)
cframe.ignoring = 1;
else
if (cframe.dead_tree)
cframe.ignoring = 1;
else
@@
-203,9
+205,9
@@
s_ifb (int test_blank)
cframe.ignoring = (test_blank == !is_eol);
}
cframe.ignoring = (test_blank == !is_eol);
}
- current_cframe =
((struct conditional_frame *)
- obstack_copy (&cond_obstack, &cframe,
-
sizeof (cframe))
);
+ current_cframe =
+ (struct conditional_frame *) obstack_alloc (&cond_obstack, sizeof cframe);
+
memcpy (current_cframe, &cframe, sizeof cframe
);
if (LISTING_SKIP_COND ()
&& cframe.ignoring
if (LISTING_SKIP_COND ()
&& cframe.ignoring
@@
-262,7
+264,7
@@
void
s_ifc (int arg)
{
char *stop = NULL;
s_ifc (int arg)
{
char *stop = NULL;
- char stopc;
+ char stopc
= 0
;
char *s1, *s2;
int len1, len2;
int res;
char *s1, *s2;
int len1, len2;
int res;
@@
-284,10
+286,11
@@
s_ifc (int arg)
initialize_cframe (&cframe);
cframe.ignoring = cframe.dead_tree || ! (res ^ arg);
initialize_cframe (&cframe);
cframe.ignoring = cframe.dead_tree || ! (res ^ arg);
- current_cframe = ((struct conditional_frame *)
- obstack_copy (&cond_obstack, &cframe, sizeof (cframe)));
-
- if (LISTING_SKIP_COND ()
+ current_cframe =
+ (struct conditional_frame *) obstack_alloc (&cond_obstack, sizeof cframe);
+ memcpy (current_cframe, &cframe, sizeof cframe);
+
+ if (LISTING_SKIP_COND ()
&& cframe.ignoring
&& (cframe.previous_cframe == NULL
|| ! cframe.previous_cframe->ignoring))
&& cframe.ignoring
&& (cframe.previous_cframe == NULL
|| ! cframe.previous_cframe->ignoring))
@@
-318,8
+321,8
@@
s_elseif (int arg)
}
else
{
}
else
{
- as_where (¤t_cframe->else_file_line.file,
- ¤t_cframe->else_file_line.line);
+ current_cframe->else_file_line.file
+
= as_where (
¤t_cframe->else_file_line.line);
current_cframe->dead_tree |= !current_cframe->ignoring;
current_cframe->ignoring = current_cframe->dead_tree;
current_cframe->dead_tree |= !current_cframe->ignoring;
current_cframe->ignoring = current_cframe->dead_tree;
@@
-424,8
+427,8
@@
s_else (int arg ATTRIBUTE_UNUSED)
}
else
{
}
else
{
- as_where (¤t_cframe->else_file_line.file,
- ¤t_cframe->else_file_line.line);
+ current_cframe->else_file_line.file
+
= as_where (
¤t_cframe->else_file_line.line);
current_cframe->ignoring =
current_cframe->dead_tree | !current_cframe->ignoring;
current_cframe->ignoring =
current_cframe->dead_tree | !current_cframe->ignoring;
@@
-478,8
+481,9
@@
s_ifeqs (int arg)
initialize_cframe (&cframe);
cframe.ignoring = cframe.dead_tree || ! (res ^ arg);
initialize_cframe (&cframe);
cframe.ignoring = cframe.dead_tree || ! (res ^ arg);
- current_cframe = ((struct conditional_frame *)
- obstack_copy (&cond_obstack, &cframe, sizeof (cframe)));
+ current_cframe =
+ (struct conditional_frame *) obstack_alloc (&cond_obstack, sizeof cframe);
+ memcpy (current_cframe, &cframe, sizeof cframe);
if (LISTING_SKIP_COND ()
&& cframe.ignoring
if (LISTING_SKIP_COND ()
&& cframe.ignoring
@@
-528,8
+532,8
@@
static void
initialize_cframe (struct conditional_frame *cframe)
{
memset (cframe, 0, sizeof (*cframe));
initialize_cframe (struct conditional_frame *cframe)
{
memset (cframe, 0, sizeof (*cframe));
- as_where (&cframe->if_file_line.file,
- &cframe->if_file_line.line);
+ cframe->if_file_line.file
+
= as_where (
&cframe->if_file_line.line);
cframe->previous_cframe = current_cframe;
cframe->dead_tree = current_cframe != NULL && current_cframe->ignoring;
cframe->macro_nest = macro_nest;
cframe->previous_cframe = current_cframe;
cframe->dead_tree = current_cframe != NULL && current_cframe->ignoring;
cframe->macro_nest = macro_nest;
@@
-549,6
+553,7
@@
cond_finish_check (int nest)
as_bad (_("end of macro inside conditional"));
else
as_bad (_("end of file inside conditional"));
as_bad (_("end of macro inside conditional"));
else
as_bad (_("end of file inside conditional"));
+
as_bad_where (current_cframe->if_file_line.file,
current_cframe->if_file_line.line,
_("here is the start of the unterminated conditional"));
as_bad_where (current_cframe->if_file_line.file,
current_cframe->if_file_line.line,
_("here is the start of the unterminated conditional"));
This page took
0.027968 seconds
and
4
git commands to generate.