aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/ast/rust-item.h13
-rw-r--r--gcc/rust/parse/rust-parse-impl.h8
2 files changed, 13 insertions, 8 deletions
diff --git a/gcc/rust/ast/rust-item.h b/gcc/rust/ast/rust-item.h
index dc37afe..fa136a0 100644
--- a/gcc/rust/ast/rust-item.h
+++ b/gcc/rust/ast/rust-item.h
@@ -736,6 +736,7 @@ private:
Identifier module_name;
location_t locus;
ModuleKind kind;
+ Unsafety safety;
// Name of the file including the module
std::string outer_filename;
@@ -766,11 +767,12 @@ public:
// Unloaded module constructor
Module (Identifier module_name, Visibility visibility,
- std::vector<Attribute> outer_attrs, location_t locus,
+ std::vector<Attribute> outer_attrs, location_t locus, Unsafety safety,
std::string outer_filename, std::vector<std::string> module_scope)
: VisItem (std::move (visibility), std::move (outer_attrs)),
module_name (module_name), locus (locus), kind (ModuleKind::UNLOADED),
- outer_filename (outer_filename), inner_attrs (std::vector<Attribute> ()),
+ safety (safety), outer_filename (outer_filename),
+ inner_attrs (std::vector<Attribute> ()),
items (std::vector<std::unique_ptr<Item>> ()),
module_scope (std::move (module_scope))
{}
@@ -779,18 +781,19 @@ public:
Module (Identifier name, location_t locus,
std::vector<std::unique_ptr<Item>> items,
Visibility visibility = Visibility::create_error (),
+ Unsafety safety = Unsafety::Normal,
std::vector<Attribute> inner_attrs = std::vector<Attribute> (),
std::vector<Attribute> outer_attrs = std::vector<Attribute> ())
: VisItem (std::move (visibility), std::move (outer_attrs)),
module_name (name), locus (locus), kind (ModuleKind::LOADED),
- outer_filename (std::string ()), inner_attrs (std::move (inner_attrs)),
- items (std::move (items))
+ safety (safety), outer_filename (std::string ()),
+ inner_attrs (std::move (inner_attrs)), items (std::move (items))
{}
// Copy constructor with vector clone
Module (Module const &other)
: VisItem (other), module_name (other.module_name), locus (other.locus),
- kind (other.kind), inner_attrs (other.inner_attrs),
+ kind (other.kind), safety (other.safety), inner_attrs (other.inner_attrs),
module_scope (other.module_scope)
{
// We need to check whether we are copying a loaded module or an unloaded
diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h
index 90dfc46..dfa0805 100644
--- a/gcc/rust/parse/rust-parse-impl.h
+++ b/gcc/rust/parse/rust-parse-impl.h
@@ -22,6 +22,7 @@
/* DO NOT INCLUDE ANYWHERE - this is automatically included with rust-parse.h
* This is also the reason why there are no include guards. */
+#include "rust-common.h"
#include "rust-item.h"
#include "rust-token.h"
#define INCLUDE_ALGORITHM
@@ -2446,8 +2447,8 @@ Parser<ManagedTokenSource>::parse_module (AST::Visibility vis,
// Construct an external module
return std::unique_ptr<AST::Module> (
new AST::Module (std::move (name), std::move (vis),
- std::move (outer_attrs), locus, lexer.get_filename (),
- inline_module_stack));
+ std::move (outer_attrs), locus, Unsafety::Normal,
+ lexer.get_filename (), inline_module_stack));
case LEFT_CURLY: {
lexer.skip_token ();
@@ -2503,7 +2504,8 @@ Parser<ManagedTokenSource>::parse_module (AST::Visibility vis,
return std::unique_ptr<AST::Module> (
new AST::Module (std::move (name), locus, std::move (items),
- std::move (vis), std::move (inner_attrs),
+ std::move (vis), Unsafety::Normal,
+ std::move (inner_attrs),
std::move (outer_attrs))); // module name?
}
default: