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
86e6f22f
Commit
86e6f22f
authored
Jul 30, 1997
by
Jason Merrill
Committed by
Mike Stump
Jul 30, 1997
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
92th Cygnus<->FSF quick merge
From-SVN: r14566
parent
a29f4129
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
48 additions
and
15 deletions
+48
-15
gcc/cp/ChangeLog
+11
-0
gcc/cp/call.c
+37
-15
No files found.
gcc/cp/ChangeLog
View file @
86e6f22f
Tue Jul 29 21:17:29 1997 Jason Merrill <jason@yorick.cygnus.com>
* call.c (resolve_args): New fn.
(build_new_function_call): Use it.
(build_object_call): Likewise.
(build_new_method_call): Likewise.
Mon Jul 28 16:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
* call.c (build_over_call): tsubst all default parms from templates.
Wed Jul 23 13:36:25 1997 Jason Merrill <jason@yorick.cygnus.com>
* decl.c (struct cp_function): Add static_labelno.
...
...
gcc/cp/call.c
View file @
86e6f22f
...
...
@@ -4338,6 +4338,28 @@ build_user_type_conversion (totype, expr, flags)
return
NULL_TREE
;
}
/* Do any initial processing on the arguments to a function call. */
static
tree
resolve_args
(
args
)
tree
args
;
{
tree
t
;
for
(
t
=
args
;
t
;
t
=
TREE_CHAIN
(
t
))
{
if
(
TREE_VALUE
(
t
)
==
error_mark_node
)
return
error_mark_node
;
else
if
(
TREE_CODE
(
TREE_TYPE
(
TREE_VALUE
(
t
)))
==
VOID_TYPE
)
{
error
(
"invalid use of void expression"
);
return
error_mark_node
;
}
else
if
(
TREE_CODE
(
TREE_VALUE
(
t
))
==
OFFSET_REF
)
TREE_VALUE
(
t
)
=
resolve_offset_ref
(
TREE_VALUE
(
t
));
}
return
args
;
}
tree
build_new_function_call
(
fn
,
args
,
obj
)
tree
fn
,
args
,
obj
;
...
...
@@ -4349,17 +4371,11 @@ build_new_function_call (fn, args, obj)
tree
t
;
tree
templates
=
NULL_TREE
;
for
(
t
=
args
;
t
;
t
=
TREE_CHAIN
(
t
))
{
if
(
TREE_VALUE
(
t
)
==
error_mark_node
)
return
error_mark_node
;
else
if
(
TREE_CODE
(
TREE_TYPE
(
TREE_VALUE
(
t
)))
==
VOID_TYPE
)
{
error
(
"invalid use of void expression"
);
return
error_mark_node
;
}
}
args
=
resolve_args
(
args
);
if
(
args
==
error_mark_node
)
return
error_mark_node
;
for
(
t
=
TREE_VALUE
(
fn
);
t
;
t
=
DECL_CHAIN
(
t
))
{
if
(
TREE_CODE
(
t
)
==
TEMPLATE_DECL
)
...
...
@@ -4416,6 +4432,11 @@ build_object_call (obj, args)
fns
=
lookup_fnfields
(
TYPE_BINFO
(
type
),
ansi_opname
[
CALL_EXPR
],
0
);
args
=
resolve_args
(
args
);
if
(
args
==
error_mark_node
)
return
error_mark_node
;
if
(
fns
)
{
tree
fn
=
TREE_VALUE
(
fns
);
...
...
@@ -5113,7 +5134,7 @@ build_over_call (fn, convs, args, flags)
{
tree
arg
=
TREE_PURPOSE
(
parm
);
if
(
DECL_TEMPLATE_INFO
(
fn
)
&&
uses_template_parms
(
arg
)
)
if
(
DECL_TEMPLATE_INFO
(
fn
))
/* This came from a template. Instantiate the default arg here,
not in tsubst. */
arg
=
tsubst_expr
(
arg
,
...
...
@@ -5266,9 +5287,10 @@ build_new_method_call (instance, name, args, basetype_path, flags)
if
(
flags
&
LOOKUP_HAS_IN_CHARGE
)
user_args
=
TREE_CHAIN
(
args
);
for
(
fns
=
args
;
fns
;
fns
=
TREE_CHAIN
(
fns
))
if
(
TREE_VALUE
(
fns
)
==
error_mark_node
)
return
error_mark_node
;
args
=
resolve_args
(
args
);
if
(
args
==
error_mark_node
)
return
error_mark_node
;
if
(
instance
==
NULL_TREE
)
basetype
=
BINFO_TYPE
(
basetype_path
);
...
...
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