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
8c0d1865
Commit
8c0d1865
authored
14 years ago
by
Ian Lance Taylor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Define go_unreachable to replace gcc_unreachable.
From Evan Shaw. From-SVN: r172882
parent
632b4f8e
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
153 additions
and
155 deletions
+153
-155
gcc/go/gofrontend/README
+0
-2
gcc/go/gofrontend/dataflow.cc
+1
-1
gcc/go/gofrontend/expressions.cc
+56
-56
gcc/go/gofrontend/expressions.h
+3
-3
gcc/go/gofrontend/gogo-tree.cc
+3
-3
gcc/go/gofrontend/gogo.cc
+21
-21
gcc/go/gofrontend/lex.cc
+4
-4
gcc/go/gofrontend/parse.cc
+8
-8
gcc/go/gofrontend/runtime.cc
+2
-2
gcc/go/gofrontend/statements.cc
+21
-21
gcc/go/gofrontend/statements.h
+6
-6
gcc/go/gofrontend/types.cc
+27
-27
gcc/go/gofrontend/types.h
+1
-1
No files found.
gcc/go/gofrontend/README
View file @
8c0d1865
...
...
@@ -24,8 +24,6 @@ Issues to be faced in this transition:
features such as %<%> for appropriate quoting.
+ Localization may be an issue.
* Use of gcc_unreachable.
This compiler works, but the code is a work in progress. Notably, the
support for garbage collection is ineffective and needs a complete
rethinking. The frontend pays little attention to its memory usage
...
...
This diff is collapsed.
Click to expand it.
gcc/go/gofrontend/dataflow.cc
View file @
8c0d1865
...
...
@@ -201,7 +201,7 @@ Dataflow::Compare_vars::operator()(const Named_object* no1,
// We can't have two variables with the same name in the same
// location.
g
cc
_unreachable
();
g
o
_unreachable
();
}
// Class Dataflow.
...
...
This diff is collapsed.
Click to expand it.
gcc/go/gofrontend/expressions.cc
View file @
8c0d1865
This diff is collapsed.
Click to expand it.
gcc/go/gofrontend/expressions.h
View file @
8c0d1865
...
...
@@ -877,15 +877,15 @@ class Parser_expression : public Expression
void
do_determine_type
(
const
Type_context
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
void
do_check_types
(
Gogo
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
tree
do_get_tree
(
Translate_context
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
};
// An expression which is simply a variable.
...
...
This diff is collapsed.
Click to expand it.
gcc/go/gofrontend/gogo-tree.cc
View file @
8c0d1865
...
...
@@ -972,7 +972,7 @@ Named_object::get_tree(Gogo* gogo, Named_object* function)
case
NAMED_OBJECT_VAR
:
case
NAMED_OBJECT_RESULT_VAR
:
case
NAMED_OBJECT_SINK
:
g
cc
_unreachable
();
g
o
_unreachable
();
case
NAMED_OBJECT_FUNC
:
{
...
...
@@ -1005,7 +1005,7 @@ Named_object::get_tree(Gogo* gogo, Named_object* function)
break
;
default
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
if
(
TREE_TYPE
(
decl
)
==
error_mark_node
)
...
...
@@ -2424,7 +2424,7 @@ Gogo::interface_method_table_for_type(const Interface_type* interface,
fndecl
=
no
->
func_declaration_value
()
->
get_or_make_decl
(
this
,
no
,
fnid
);
else
g
cc
_unreachable
();
g
o
_unreachable
();
fndecl
=
build_fold_addr_expr
(
fndecl
);
elt
=
VEC_quick_push
(
constructor_elt
,
pointers
,
NULL
);
...
...
This diff is collapsed.
Click to expand it.
gcc/go/gofrontend/gogo.cc
View file @
8c0d1865
...
...
@@ -748,7 +748,7 @@ Gogo::start_function(const std::string& name, Function_type* type,
function
);
}
else
g
cc
_unreachable
();
g
o
_unreachable
();
}
this
->
package_
->
bindings
()
->
add_method
(
ret
);
}
...
...
@@ -849,7 +849,7 @@ Gogo::declare_function(const std::string& name, Function_type* type,
return
ftype
->
add_method_declaration
(
name
,
type
,
location
);
}
else
g
cc
_unreachable
();
g
o
_unreachable
();
}
}
...
...
@@ -3211,7 +3211,7 @@ Block::traverse(Traverse* traverse)
case
Named_object
:
:
NAMED_OBJECT_FUNC
:
case
Named_object
:
:
NAMED_OBJECT_FUNC_DECLARATION
:
// FIXME: Where will nested functions be found?
g
cc
_unreachable
();
g
o
_unreachable
();
case
Named_object
:
:
NAMED_OBJECT_TYPE
:
if
((
traverse_mask
&
Traverse
::
traverse_types
)
!=
0
...
...
@@ -3229,10 +3229,10 @@ Block::traverse(Traverse* traverse)
case
Named_object
:
:
NAMED_OBJECT_PACKAGE
:
case
Named_object
:
:
NAMED_OBJECT_SINK
:
g
cc
_unreachable
();
g
o
_unreachable
();
default
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
}
}
...
...
@@ -4109,7 +4109,7 @@ Named_object::location() const
{
default
:
case
NAMED_OBJECT_UNINITIALIZED
:
g
cc
_unreachable
();
g
o
_unreachable
();
case
NAMED_OBJECT_UNKNOWN
:
return
this
->
unknown_value
()
->
location
();
...
...
@@ -4130,7 +4130,7 @@ Named_object::location() const
return
this
->
result_var_value
()
->
location
();
case
NAMED_OBJECT_SINK
:
g
cc
_unreachable
();
g
o
_unreachable
();
case
NAMED_OBJECT_FUNC
:
return
this
->
func_value
()
->
location
();
...
...
@@ -4153,7 +4153,7 @@ Named_object::export_named_object(Export* exp) const
default
:
case
NAMED_OBJECT_UNINITIALIZED
:
case
NAMED_OBJECT_UNKNOWN
:
g
cc
_unreachable
();
g
o
_unreachable
();
case
NAMED_OBJECT_CONST
:
this
->
const_value
()
->
export_const
(
exp
,
this
->
name_
);
...
...
@@ -4179,7 +4179,7 @@ Named_object::export_named_object(Export* exp) const
case
NAMED_OBJECT_RESULT_VAR
:
case
NAMED_OBJECT_SINK
:
g
cc
_unreachable
();
g
o
_unreachable
();
case
NAMED_OBJECT_FUNC
:
this
->
func_value
()
->
export_func
(
exp
,
this
->
name_
);
...
...
@@ -4199,7 +4199,7 @@ Named_object::get_backend_variable(Gogo* gogo, Named_object* function)
return
this
->
result_var_value
()
->
get_backend_variable
(
gogo
,
function
,
this
->
name_
);
else
g
cc
_unreachable
();
g
o
_unreachable
();
}
// Class Bindings.
...
...
@@ -4280,7 +4280,7 @@ Bindings::remove_binding(Named_object* no)
return
;
}
}
g
cc
_unreachable
();
g
o
_unreachable
();
}
// Add a method to the list of objects. This is not added to the
...
...
@@ -4346,7 +4346,7 @@ Bindings::new_definition(Named_object* old_object, Named_object* new_object)
{
default
:
case
Named_object
:
:
NAMED_OBJECT_UNINITIALIZED
:
g
cc
_unreachable
();
g
o
_unreachable
();
case
Named_object
:
:
NAMED_OBJECT_UNKNOWN
:
{
...
...
@@ -4386,7 +4386,7 @@ Bindings::new_definition(Named_object* old_object, Named_object* new_object)
break
;
case
Named_object
:
:
NAMED_OBJECT_SINK
:
g
cc
_unreachable
();
g
o
_unreachable
();
case
Named_object
:
:
NAMED_OBJECT_FUNC
:
if
(
new_object
->
is_function_declaration
())
...
...
@@ -4595,7 +4595,7 @@ Bindings::traverse(Traverse* traverse, bool is_global)
case
Named_object
:
:
NAMED_OBJECT_SINK
:
default
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
}
...
...
@@ -4756,41 +4756,41 @@ Traverse::remember_expression(const Expression* expression)
int
Traverse
::
variable
(
Named_object
*
)
{
g
cc
_unreachable
();
g
o
_unreachable
();
}
int
Traverse
::
constant
(
Named_object
*
,
bool
)
{
g
cc
_unreachable
();
g
o
_unreachable
();
}
int
Traverse
::
function
(
Named_object
*
)
{
g
cc
_unreachable
();
g
o
_unreachable
();
}
int
Traverse
::
block
(
Block
*
)
{
g
cc
_unreachable
();
g
o
_unreachable
();
}
int
Traverse
::
statement
(
Block
*
,
size_t
*
,
Statement
*
)
{
g
cc
_unreachable
();
g
o
_unreachable
();
}
int
Traverse
::
expression
(
Expression
**
)
{
g
cc
_unreachable
();
g
o
_unreachable
();
}
int
Traverse
::
type
(
Type
*
)
{
g
cc
_unreachable
();
g
o
_unreachable
();
}
This diff is collapsed.
Click to expand it.
gcc/go/gofrontend/lex.cc
View file @
8c0d1865
...
...
@@ -198,7 +198,7 @@ Token::Token(const Token& tok)
mpfr_init_set
(
this
->
u_
.
float_value
,
tok
.
u_
.
float_value
,
GMP_RNDN
);
break
;
default
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
}
...
...
@@ -237,7 +237,7 @@ Token::operator=(const Token& tok)
mpfr_init_set
(
this
->
u_
.
float_value
,
tok
.
u_
.
float_value
,
GMP_RNDN
);
break
;
default
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
return
*
this
;
}
...
...
@@ -422,11 +422,11 @@ Token::print(FILE* file) const
fprintf
(
file
,
"]"
);
break
;
default
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
break
;
default
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
}
...
...
This diff is collapsed.
Click to expand it.
gcc/go/gofrontend/parse.cc
View file @
8c0d1865
...
...
@@ -35,7 +35,7 @@ Parse::Enclosing_var_comparison::operator()(const Enclosing_var& v1,
// If we get here it means that a single nested function refers to
// two different variables defined in enclosing functions, and both
// variables have the same name. I think this is impossible.
g
cc
_unreachable
();
g
o
_unreachable
();
}
// Class Parse.
...
...
@@ -362,7 +362,7 @@ Parse::type_name(bool issue_error)
else
if
(
named_object
->
is_unknown
()
||
named_object
->
is_type_declaration
())
return
Type
::
make_forward_declaration
(
named_object
);
else
g
cc
_unreachable
();
g
o
_unreachable
();
}
// ArrayType = "[" [ ArrayLength ] "]" ElementType .
...
...
@@ -2323,10 +2323,10 @@ Parse::operand(bool may_be_sink)
case
Named_object
:
:
NAMED_OBJECT_UNKNOWN
:
return
Expression
::
make_unknown_reference
(
named_object
,
location
);
default
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
}
g
cc
_unreachable
();
g
o
_unreachable
();
case
Token
:
:
TOKEN_STRING
:
ret
=
Expression
::
make_string
(
token
->
string_value
(),
token
->
location
());
...
...
@@ -3068,7 +3068,7 @@ Parse::expression_may_start_here()
case
Token
:
:
TOKEN_IMAGINARY
:
return
true
;
default
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
}
...
...
@@ -3493,7 +3493,7 @@ Parse::inc_dec_stat(Expression* exp)
else
if
(
token
->
is_op
(
OPERATOR_MINUSMINUS
))
this
->
gogo_
->
add_statement
(
Statement
::
make_dec_statement
(
exp
));
else
g
cc
_unreachable
();
g
o
_unreachable
();
this
->
advance_token
();
}
...
...
@@ -4858,7 +4858,7 @@ Parse::break_stat()
else
if
(
enclosing
->
classification
()
==
Statement
::
STATEMENT_SELECT
)
label
=
enclosing
->
select_statement
()
->
break_label
();
else
g
cc
_unreachable
();
g
o
_unreachable
();
this
->
gogo_
->
add_statement
(
Statement
::
make_break_statement
(
label
,
location
));
...
...
@@ -4907,7 +4907,7 @@ Parse::continue_stat()
else
if
(
enclosing
->
classification
()
==
Statement
::
STATEMENT_FOR_RANGE
)
label
=
enclosing
->
for_range_statement
()
->
continue_label
();
else
g
cc
_unreachable
();
g
o
_unreachable
();
this
->
gogo_
->
add_statement
(
Statement
::
make_continue_statement
(
label
,
location
));
...
...
This diff is collapsed.
Click to expand it.
gcc/go/gofrontend/runtime.cc
View file @
8c0d1865
...
...
@@ -86,7 +86,7 @@ runtime_function_type(Runtime_function_type bft)
{
default:
case
RFT_VOID
:
g
cc
_unreachable
();
g
o
_unreachable
();
case
RFT_BOOL
:
t
=
Type
::
lookup_bool_type
();
...
...
@@ -193,7 +193,7 @@ convert_to_runtime_function_type(Runtime_function_type bft, Expression* e,
{
default:
case
RFT_VOID
:
g
cc
_unreachable
();
g
o
_unreachable
();
case
RFT_BOOL
:
case
RFT_BOOLPTR
:
...
...
This diff is collapsed.
Click to expand it.
gcc/go/gofrontend/statements.cc
View file @
8c0d1865
...
...
@@ -177,7 +177,7 @@ class Error_statement : public Statement
Bstatement
*
do_get_backend
(
Translate_context
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
};
// Make an error statement.
...
...
@@ -595,14 +595,14 @@ class Assignment_operation_statement : public Statement
bool
do_traverse_assignments
(
Traverse_assignments
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
Statement
*
do_lower
(
Gogo
*
,
Named_object
*
,
Block
*
);
Bstatement
*
do_get_backend
(
Translate_context
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
private
:
// The operator (OPERATOR_PLUSEQ, etc.).
...
...
@@ -677,7 +677,7 @@ Assignment_operation_statement::do_lower(Gogo*, Named_object*,
op
=
OPERATOR_BITCLEAR
;
break
;
default
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
Expression
*
binop
=
Expression
::
make_binary
(
op
,
lval
,
this
->
rhs_
,
loc
);
...
...
@@ -722,14 +722,14 @@ class Tuple_assignment_statement : public Statement
bool
do_traverse_assignments
(
Traverse_assignments
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
Statement
*
do_lower
(
Gogo
*
,
Named_object
*
,
Block
*
);
Bstatement
*
do_get_backend
(
Translate_context
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
private
:
// Left hand side--a list of lvalues.
...
...
@@ -849,14 +849,14 @@ public:
bool
do_traverse_assignments
(
Traverse_assignments
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
Statement
*
do_lower
(
Gogo
*
,
Named_object
*
,
Block
*
);
Bstatement
*
do_get_backend
(
Translate_context
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
private
:
// Lvalue which receives the value from the map.
...
...
@@ -976,14 +976,14 @@ class Map_assignment_statement : public Statement
bool
do_traverse_assignments
(
Traverse_assignments
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
Statement
*
do_lower
(
Gogo
*
,
Named_object
*
,
Block
*
);
Bstatement
*
do_get_backend
(
Translate_context
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
private
:
// A reference to the map index which should be set or deleted.
...
...
@@ -1090,14 +1090,14 @@ class Tuple_receive_assignment_statement : public Statement
bool
do_traverse_assignments
(
Traverse_assignments
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
Statement
*
do_lower
(
Gogo
*
,
Named_object
*
,
Block
*
);
Bstatement
*
do_get_backend
(
Translate_context
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
private
:
// Lvalue which receives the value from the channel.
...
...
@@ -1214,14 +1214,14 @@ class Tuple_type_guard_assignment_statement : public Statement
bool
do_traverse_assignments
(
Traverse_assignments
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
Statement
*
do_lower
(
Gogo
*
,
Named_object
*
,
Block
*
);
Bstatement
*
do_get_backend
(
Translate_context
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
private
:
Call_expression
*
...
...
@@ -1510,14 +1510,14 @@ class Inc_dec_statement : public Statement
bool
do_traverse_assignments
(
Traverse_assignments
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
Statement
*
do_lower
(
Gogo
*
,
Named_object
*
,
Block
*
);
Bstatement
*
do_get_backend
(
Translate_context
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
private
:
// The l-value to increment or decrement.
...
...
@@ -1830,7 +1830,7 @@ Thunk_statement::simplify_statement(Gogo* gogo, Named_object* function,
vals
->
push_back
(
first_arg
);
}
else
g
cc
_unreachable
();
g
o
_unreachable
();
if
(
ce
->
args
()
!=
NULL
)
{
...
...
@@ -1866,7 +1866,7 @@ Thunk_statement::simplify_statement(Gogo* gogo, Named_object* function,
else
if
(
this
->
classification
()
==
STATEMENT_DEFER
)
s
=
Statement
::
make_defer_statement
(
call
,
location
);
else
g
cc
_unreachable
();
g
o
_unreachable
();
// The current block should end with the go statement.
go_assert
(
block
->
statements
()
->
size
()
>=
1
);
...
...
@@ -2750,7 +2750,7 @@ Case_clauses::Hash_integer_value::operator()(Expression* pe) const
mpz_t
ival
;
mpz_init
(
ival
);
if
(
!
pe
->
integer_constant_value
(
true
,
ival
,
&
itype
))
g
cc
_unreachable
();
g
o
_unreachable
();
size_t
ret
=
mpz_get_ui
(
ival
);
mpz_clear
(
ival
);
return
ret
;
...
...
@@ -2776,7 +2776,7 @@ Case_clauses::Eq_integer_value::operator()(Expression* a, Expression* b) const
mpz_init
(
bval
);
if
(
!
a
->
integer_constant_value
(
true
,
aval
,
&
atype
)
||
!
b
->
integer_constant_value
(
true
,
bval
,
&
btype
))
g
cc
_unreachable
();
g
o
_unreachable
();
bool
ret
=
mpz_cmp
(
aval
,
bval
)
==
0
;
mpz_clear
(
aval
);
mpz_clear
(
bval
);
...
...
@@ -4597,7 +4597,7 @@ For_range_statement::do_lower(Gogo* gogo, Named_object*, Block* enclosing)
index_temp
,
value_temp
,
&
init
,
&
cond
,
&
iter_init
,
&
post
);
else
g
cc
_unreachable
();
g
o
_unreachable
();
if
(
iter_init
!=
NULL
)
body
->
add_statement
(
Statement
::
make_block_statement
(
iter_init
,
loc
));
...
...
This diff is collapsed.
Click to expand it.
gcc/go/gofrontend/statements.h
View file @
8c0d1865
...
...
@@ -990,14 +990,14 @@ class For_statement : public Statement
bool
do_traverse_assignments
(
Traverse_assignments
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
Statement
*
do_lower
(
Gogo
*
,
Named_object
*
,
Block
*
);
Bstatement
*
do_get_backend
(
Translate_context
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
private
:
// The initialization statements. This may be NULL.
...
...
@@ -1048,14 +1048,14 @@ class For_range_statement : public Statement
bool
do_traverse_assignments
(
Traverse_assignments
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
Statement
*
do_lower
(
Gogo
*
,
Named_object
*
,
Block
*
);
Bstatement
*
do_get_backend
(
Translate_context
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
private
:
Expression
*
...
...
@@ -1284,7 +1284,7 @@ class Switch_statement : public Statement
Bstatement
*
do_get_backend
(
Translate_context
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
private
:
// The value to switch on. This may be NULL.
...
...
@@ -1430,7 +1430,7 @@ class Type_switch_statement : public Statement
Bstatement
*
do_get_backend
(
Translate_context
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
private
:
// The variable holding the value we are switching on.
...
...
This diff is collapsed.
Click to expand it.
gcc/go/gofrontend/types.cc
View file @
8c0d1865
...
...
@@ -157,7 +157,7 @@ Type::is_basic_type() const
return
this
->
base
()
->
is_basic_type
();
default
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
}
...
...
@@ -202,7 +202,7 @@ Type::make_non_abstract_type()
case
TYPE_BOOLEAN
:
return
Type
::
lookup_bool_type
();
default
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
}
...
...
@@ -407,7 +407,7 @@ Type::are_identical(const Type* t1, const Type* t2, bool errors_are_identical,
return
false
;
default
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
}
...
...
@@ -774,7 +774,7 @@ Type::hash_string(const std::string& s, unsigned int h)
bool
Type
::
do_check_make_expression
(
Expression_list
*
,
source_location
)
{
g
cc
_unreachable
();
g
o
_unreachable
();
}
// Return whether an expression has an integer value. Report an error
...
...
@@ -929,7 +929,7 @@ tree
Type
::
do_make_expression_tree
(
Translate_context
*
,
Expression_list
*
,
source_location
)
{
g
cc
_unreachable
();
g
o
_unreachable
();
}
// Return a pointer to the type descriptor for this type.
...
...
@@ -1194,10 +1194,10 @@ Type::type_functions(const char** hash_fn, const char** equal_fn) const
case
Type
:
:
TYPE_NAMED
:
case
Type
:
:
TYPE_FORWARD
:
g
cc
_unreachable
();
g
o
_unreachable
();
default
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
}
...
...
@@ -1543,7 +1543,7 @@ Type::mangled_name(Gogo* gogo) const
void
Type
::
do_export
(
Export
*
)
const
{
g
cc
_unreachable
();
g
o
_unreachable
();
}
// Import a type.
...
...
@@ -1627,11 +1627,11 @@ class Void_type : public Type
tree
do_get_init_tree
(
Gogo
*
,
tree
,
bool
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
Expression
*
do_type_descriptor
(
Gogo
*
,
Named_type
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
void
do_reflection
(
Gogo
*
,
std
::
string
*
)
const
...
...
@@ -2363,23 +2363,23 @@ class Sink_type : public Type
protected
:
tree
do_get_tree
(
Gogo
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
tree
do_get_init_tree
(
Gogo
*
,
tree
,
bool
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
Expression
*
do_type_descriptor
(
Gogo
*
,
Named_type
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
void
do_reflection
(
Gogo
*
,
std
::
string
*
)
const
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
void
do_mangled_name
(
Gogo
*
,
std
::
string
*
)
const
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
};
// Make the sink type.
...
...
@@ -3298,11 +3298,11 @@ class Nil_type : public Type
Expression
*
do_type_descriptor
(
Gogo
*
,
Named_type
*
)
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
void
do_reflection
(
Gogo
*
,
std
::
string
*
)
const
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
void
do_mangled_name
(
Gogo
*
,
std
::
string
*
ret
)
const
...
...
@@ -3434,7 +3434,7 @@ Struct_field::field_name() const
else
if
(
t
->
named_type
()
!=
NULL
)
return
t
->
named_type
()
->
name
();
else
g
cc
_unreachable
();
g
o
_unreachable
();
}
}
}
...
...
@@ -5837,7 +5837,7 @@ Interface_type::method_index(const std::string& name) const
++
p
,
++
ret
)
if
(
p
->
name
()
==
name
)
return
ret
;
g
cc
_unreachable
();
g
o
_unreachable
();
}
// Return whether NAME is an unexported method, for better error
...
...
@@ -6621,7 +6621,7 @@ Named_method::do_type() const
else
if
(
this
->
named_object_
->
is_function_declaration
())
return
this
->
named_object_
->
func_declaration_value
()
->
type
();
else
g
cc
_unreachable
();
g
o
_unreachable
();
}
// Return the location of the method receiver.
...
...
@@ -7024,7 +7024,7 @@ Find_type_use::type(Type* type)
case
Type
:
:
TYPE_NAMED
:
case
Type
:
:
TYPE_FORWARD
:
default
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
}
...
...
@@ -7190,7 +7190,7 @@ Named_type::convert(Gogo* gogo)
case
TYPE_CALL_MULTIPLE_RESULT
:
case
TYPE_NAMED
:
case
TYPE_FORWARD
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
this
->
named_tree_
=
t
;
...
...
@@ -7294,7 +7294,7 @@ Named_type::create_placeholder(Gogo* gogo)
case
TYPE_CALL_MULTIPLE_RESULT
:
case
TYPE_NAMED
:
case
TYPE_FORWARD
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
// Create the named type.
...
...
@@ -7424,10 +7424,10 @@ Named_type::do_get_tree(Gogo* gogo)
case
TYPE_CALL_MULTIPLE_RESULT
:
case
TYPE_NAMED
:
case
TYPE_FORWARD
:
g
cc
_unreachable
();
g
o
_unreachable
();
}
g
cc
_unreachable
();
g
o
_unreachable
();
}
// Build a type descriptor for a named type.
...
...
@@ -7964,7 +7964,7 @@ Type::method_expects_pointer(const Named_object* no)
else
if
(
no
->
is_function_declaration
())
fntype
=
no
->
func_declaration_value
()
->
type
();
else
g
cc
_unreachable
();
g
o
_unreachable
();
return
fntype
->
receiver
()
->
type
()
->
points_to
()
!=
NULL
;
}
...
...
@@ -8061,7 +8061,7 @@ Type::bind_field_or_method(Gogo* gogo, const Type* type, Expression* expr,
else
if
(
st
!=
NULL
)
m
=
st
->
method_function
(
name
,
NULL
);
else
g
cc
_unreachable
();
g
o
_unreachable
();
go_assert
(
m
!=
NULL
);
if
(
!
m
->
is_value_method
()
&&
expr
->
type
()
->
points_to
()
==
NULL
)
expr
=
Expression
::
make_unary
(
OPERATOR_AND
,
expr
,
location
);
...
...
This diff is collapsed.
Click to expand it.
gcc/go/gofrontend/types.h
View file @
8c0d1865
...
...
@@ -272,7 +272,7 @@ class Interface_method : public Method
// called, as we always create a stub.
Named_object
*
do_named_object
()
const
{
g
cc
_unreachable
();
}
{
g
o
_unreachable
();
}
// The type of the method.
Function_type
*
...
...
This diff is collapsed.
Click to expand it.
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