Commit 967d49d1 by Ian Lance Taylor

compiler: Add Backend Function type.

From-SVN: r206611
parent d126a4ae
......@@ -4066,6 +4066,17 @@ Type::make_function_type(Typed_identifier* receiver,
return new Function_type(receiver, parameters, results, location);
}
// Make a backend function type.
Backend_function_type*
Type::make_backend_function_type(Typed_identifier* receiver,
Typed_identifier_list* parameters,
Typed_identifier_list* results,
Location location)
{
return new Backend_function_type(receiver, parameters, results, location);
}
// Class Pointer_type.
// Traversal.
......
......@@ -19,6 +19,7 @@ class Float_type;
class Complex_type;
class String_type;
class Function_type;
class Backend_function_type;
class Struct_field;
class Struct_field_list;
class Struct_type;
......@@ -484,6 +485,12 @@ class Type
Typed_identifier_list* results,
Location);
static Backend_function_type*
make_backend_function_type(Typed_identifier* receiver,
Typed_identifier_list* parameters,
Typed_identifier_list* results,
Location);
static Pointer_type*
make_pointer_type(Type*);
......@@ -1896,6 +1903,23 @@ class Function_type : public Type
Btype* fnbtype_;
};
// The type of a function's backend representation.
class Backend_function_type : public Function_type
{
public:
Backend_function_type(Typed_identifier* receiver,
Typed_identifier_list* parameters,
Typed_identifier_list* results, Location location)
: Function_type(receiver, parameters, results, location)
{ }
protected:
Btype*
do_get_backend(Gogo* gogo)
{ return this->get_backend_fntype(gogo); }
};
// The type of a pointer.
class Pointer_type : public Type
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment