aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/parse
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2023-11-21 17:56:10 +0100
committerP-E-P <32375388+P-E-P@users.noreply.github.com>2023-11-29 23:37:08 +0000
commit2ab87ee89a3c5351d83e465e4061b40a51bb6c97 (patch)
tree284e84490e0807fd1743ae14ad0507245bceb926 /gcc/rust/parse
parent2b754940080609639c2ee78ef0b1a430f0d7b678 (diff)
downloadgcc-2ab87ee89a3c5351d83e465e4061b40a51bb6c97.zip
gcc-2ab87ee89a3c5351d83e465e4061b40a51bb6c97.tar.gz
gcc-2ab87ee89a3c5351d83e465e4061b40a51bb6c97.tar.bz2
Add unsafety member to modules
The rust syntax allows unsafe module even if those are rejected at a later stage. gcc/rust/ChangeLog: * ast/rust-item.h: Add safety status to Modules in the AST. * parse/rust-parse-impl.h (Parser::parse_module): Adapt constructors. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Diffstat (limited to 'gcc/rust/parse')
-rw-r--r--gcc/rust/parse/rust-parse-impl.h8
1 files changed, 5 insertions, 3 deletions
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: