Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
7da551a2
Commit
7da551a2
authored
May 22, 1992
by
Richard Stallman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*** empty log message ***
From-SVN: r1052
parent
88d92ca5
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
54 additions
and
46 deletions
+54
-46
gcc/c-common.c
+47
-0
gcc/c-decl.c
+7
-46
No files found.
gcc/c-common.c
View file @
7da551a2
...
@@ -27,6 +27,53 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
...
@@ -27,6 +27,53 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef NULL
#undef NULL
#define NULL 0
#define NULL 0
/* Make bindings for __NAME__ and __PRINTABLE_NAME__. */
void
declare_function_name
()
{
tree
decl
,
init
;
char
*
name
,
*
printable_name
;
if
(
current_function_decl
==
NULL
)
{
name
=
""
;
printable_name
=
"top level"
;
}
else
{
char
*
kind
=
"function"
;
if
(
TREE_CODE
(
TREE_TYPE
(
current_function_decl
))
==
METHOD_TYPE
)
kind
=
"method"
;
name
=
IDENTIFIER_POINTER
(
DECL_NAME
(
current_function_decl
));
printable_name
=
(
*
decl_printable_name
)
(
current_function_decl
,
&
kind
);
}
push_obstacks_nochange
();
decl
=
build_decl
(
VAR_DECL
,
get_identifier
(
"__NAME__"
),
char_array_type_node
);
TREE_STATIC
(
decl
)
=
1
;
TREE_READONLY
(
decl
)
=
1
;
TREE_NO_UNUSED_WARNING
(
decl
)
=
1
;
DECL_IGNORED_P
(
decl
)
=
1
;
init
=
build_string
(
strlen
(
name
)
+
1
,
name
);
TREE_TYPE
(
init
)
=
char_array_type_node
;
DECL_INITIAL
(
decl
)
=
init
;
finish_decl
(
pushdecl
(
decl
),
init
,
NULL_TREE
);
push_obstacks_nochange
();
decl
=
build_decl
(
VAR_DECL
,
get_identifier
(
"__PRINTABLE_NAME__"
),
char_array_type_node
);
TREE_STATIC
(
decl
)
=
1
;
TREE_READONLY
(
decl
)
=
1
;
TREE_NO_UNUSED_WARNING
(
decl
)
=
1
;
DECL_IGNORED_P
(
decl
)
=
1
;
init
=
build_string
(
strlen
(
printable_name
)
+
1
,
printable_name
);
TREE_TYPE
(
init
)
=
char_array_type_node
;
DECL_INITIAL
(
decl
)
=
init
;
finish_decl
(
pushdecl
(
decl
),
init
,
NULL_TREE
);
}
/* Given a chain of STRING_CST nodes,
/* Given a chain of STRING_CST nodes,
concatenate them into one STRING_CST
concatenate them into one STRING_CST
and give it a suitable array-of-chars data type. */
and give it a suitable array-of-chars data type. */
...
...
gcc/c-decl.c
View file @
7da551a2
...
@@ -381,7 +381,6 @@ static struct binding_level *label_level_chain;
...
@@ -381,7 +381,6 @@ static struct binding_level *label_level_chain;
static
tree
grokparms
(),
grokdeclarator
();
static
tree
grokparms
(),
grokdeclarator
();
tree
pushdecl
();
tree
pushdecl
();
tree
builtin_function
();
tree
builtin_function
();
static
void
declare_function_name
();
static
tree
lookup_tag
();
static
tree
lookup_tag
();
static
tree
lookup_tag_reverse
();
static
tree
lookup_tag_reverse
();
...
@@ -1790,7 +1789,10 @@ pushdecl (x)
...
@@ -1790,7 +1789,10 @@ pushdecl (x)
/* No shadow warnings for internally generated vars. */
/* No shadow warnings for internally generated vars. */
&&
!
DECL_IGNORED_P
(
x
)
&&
!
DECL_IGNORED_P
(
x
)
/* No shadow warnings for vars made for inlining. */
/* No shadow warnings for vars made for inlining. */
&&
!
DECL_FROM_INLINE
(
x
))
&&
!
DECL_FROM_INLINE
(
x
)
/* No shadow warnings for user-invisible decls. */
&&
!
(
TREE_CODE
(
x
)
==
VAR_DECL
&&
DECL_IGNORED_P
(
x
)
&&
TREE_READONLY
(
x
)))
{
{
char
*
warnstring
=
0
;
char
*
warnstring
=
0
;
...
@@ -2598,46 +2600,13 @@ init_decl_processing ()
...
@@ -2598,46 +2600,13 @@ init_decl_processing ()
#endif
#endif
/* Create the global bindings of __NAME__ and __PRINTABLE_NAME__. */
/* Create the global bindings of __NAME__ and __PRINTABLE_NAME__. */
declare_function_name
(
""
,
"top level"
);
declare_function_name
();
start_identifier_warnings
();
start_identifier_warnings
();
init_format_info_table
();
init_format_info_table
();
}
}
/* Make bindings for __NAME__ and __PRINTABLE_NAME__. */
static
void
declare_function_name
(
name
,
printable_name
)
char
*
name
,
*
printable_name
;
{
tree
decl
,
init
;
push_obstacks_nochange
();
decl
=
pushdecl
(
build_decl
(
VAR_DECL
,
get_identifier
(
"__NAME__"
),
char_array_type_node
));
TREE_STATIC
(
decl
)
=
1
;
TREE_READONLY
(
decl
)
=
1
;
DECL_IGNORED_P
(
decl
)
=
1
;
init
=
build_string
(
strlen
(
name
)
+
1
,
name
);
TREE_TYPE
(
init
)
=
char_array_type_node
;
DECL_INITIAL
(
decl
)
=
init
;
finish_decl
(
decl
,
init
,
NULL_TREE
);
push_obstacks_nochange
();
decl
=
pushdecl
(
build_decl
(
VAR_DECL
,
get_identifier
(
"__PRINTABLE_NAME__"
),
char_array_type_node
));
TREE_STATIC
(
decl
)
=
1
;
TREE_READONLY
(
decl
)
=
1
;
DECL_IGNORED_P
(
decl
)
=
1
;
init
=
build_string
(
strlen
(
printable_name
)
+
1
,
printable_name
);
TREE_TYPE
(
init
)
=
char_array_type_node
;
DECL_INITIAL
(
decl
)
=
init
;
finish_decl
(
decl
,
init
,
NULL_TREE
);
}
/* Return a definition for a builtin function named NAME and whose data type
/* Return a definition for a builtin function named NAME and whose data type
is TYPE. TYPE should be a function type with argument types.
is TYPE. TYPE should be a function type with argument types.
FUNCTION_CODE tells later passes how to compile calls to this function.
FUNCTION_CODE tells later passes how to compile calls to this function.
...
@@ -5488,16 +5457,8 @@ store_parm_decls ()
...
@@ -5488,16 +5457,8 @@ store_parm_decls ()
mark_varargs
();
mark_varargs
();
/* Declare __NAME__ and __PRINTABLE_NAME__ for this function. */
/* Declare __NAME__ and __PRINTABLE_NAME__ for this function. */
{
char
*
kind
=
"function"
;
declare_function_name
();
char
*
name
;
if
(
current_function_decl
!=
0
&&
TREE_CODE
(
TREE_TYPE
(
current_function_decl
))
==
METHOD_TYPE
)
kind
=
"method"
;
name
=
(
*
decl_printable_name
)
(
current_function_decl
,
&
kind
);
declare_function_name
(
name
,
IDENTIFIER_POINTER
(
DECL_NAME
(
current_function_decl
)));
}
/* Set up parameters and prepare for return, for the function. */
/* Set up parameters and prepare for return, for the function. */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment