| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * Make-lang.in: Remove `rust-hir-typecheck-toplevel` object and add |
| `rust-hir-path-probe` one. |
| * typecheck/rust-hir-dot-operator.cc (MethodResolver::MethodResolver): |
| Remove no longer used `context` and `mapping` fields, and use new |
| `query_type` API. |
| (MethodResolver::MethodResolver): Likewise. |
| (MethodResolver::select): Use new `query_type` API. |
| * typecheck/rust-hir-path-probe.h: New header. |
| * typecheck/rust-hir-path-probe.cc: New file. |
| * typecheck/rust-hir-dot-operator.h (class MethodResolver): Remove no |
| longer used `context` and `mapping` fields, and use new `query_type` API. |
| * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::query_type): New function. |
| * typecheck/rust-hir-type-check-base.h: Declare `query_type` function. |
| * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Add debug print. |
| * typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::Resolve): |
| Refactor and make use of new query system. |
| (TypeCheckTopLevelExternItem::Resolve): Likewise. |
| (TypeCheckTopLevelExternItem::visit): Likewise. |
| (TypeCheckTopLevelImplItem::visit): Likewise. |
| (TypeCheckImplItem::visit): Likewise. |
| (TypeCheckImplItem::TypeCheckImplItem): Likewise. |
| (TypeCheckImplItem::Resolve): Likewise. |
| (TypeCheckImplItemWithTrait::visit): Likewise. |
| * typecheck/rust-hir-type-check-implitem.h (class TypeCheckTopLevelImplItem): Likewise. |
| (class TypeCheckImplItemWithTrait): Likewise. |
| * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::TypeCheckItem): Likewise. |
| (TypeCheckItem::Resolve): Likewise. |
| (TypeCheckItem::ResolveImplItem): Likewise. |
| (TypeCheckItem::ResolveImplBlockSelf): Likewise. |
| (TypeCheckItem::visit): Likewise. |
| (TypeCheckItem::resolve_impl_item): Likewise. |
| (TypeCheckItem::resolve_impl_block_substitutions): Likewise. |
| (TypeCheckItem::resolve_impl_block_self): Likewise. |
| * typecheck/rust-hir-type-check-item.h: Likewise. |
| * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path): Likewise. |
| (TypeCheckExpr::resolve_segments): Likewise. |
| * typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise. |
| * typecheck/rust-hir-type-check-stmt.h: Likewise. |
| * typecheck/rust-hir-type-check-type.cc (TypeCheckType::Resolve): Likewise. |
| (TypeCheckType::visit): Likewise. |
| (TypeCheckType::resolve_root_path): Likewise. |
| * typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): Likewise. |
| * typecheck/rust-hir-type-check.h: Likewise. |
| * typecheck/rust-substitution-mapper.h: Likewise. |
| * typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::scan): Likewise. |
| (TypeCheckBase::get_predicate_from_bound): Likewise. |
| (TypeBoundsMappings::add_bound): Likewise. |
| * typecheck/rust-tyty-cmp.h: Likewise. |
| * typecheck/rust-tyty.h: Likewise. |
| * typecheck/rust-tyty.cc (SubstitutionRef::infer_substitions): Likewise. |
| (ParamType::resolve): Do not infinite loop anymore. |
| * util/rust-hir-map.h: Add new `hirImplBlockTypeMappings` and |
| declare `lookup_impl_block_type`. |
| * util/rust-hir-map.cc (Mappings::insert_hir_impl_block): Use new |
| `hirImplBlockTypeMappings` |
| (Mappings::lookup_impl_block_type): New function. |
| |
| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * backend/rust-compile-context.h: Add new optional `asm_name` string |
| argument to `lookup_function_decl`. |
| * backend/rust-compile-item.cc (CompileItem::visit): Compute assembly |
| name and pass it to `lookup_function_decl` when calling it. |
| |
| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * backend/rust-constexpr.cc (eval_store_expression): Remove invalid |
| assertion on constexpr constructors. |
| |
| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * backend/rust-compile-expr.h: Formatting. |
| |
| 2023-01-31 liushuyu <liushuyu011@gmail.com> |
| |
| * ast/rust-ast.h (class MacroInvocData): Store expander as |
| member of the class. |
| (class Expr): Add `is_literal` virtual method |
| * ast/rust-expr.h: Override `is_literal` for `LiteralExpr`s. |
| * expand/rust-macro-builtins.cc (try_expand_macro_expression): New function. |
| (try_extract_string_literal_from_fragment): Likewise. |
| (try_expand_single_string_literal): Likewise. |
| (try_expand_many_expr): Likewise. |
| (parse_single_string_literal): Add macro expander as argument. |
| (MacroBuiltin::include_bytes): Pass expander as argument to |
| `parse_single_string_literal`. |
| (MacroBuiltin::include_str): Likewise. |
| (MacroBuiltin::compile_error): Likewise. |
| (MacroBuiltin::include): Likewise. |
| (MacroBuiltin::concat): Likewise and add better error handling. |
| (MacroBuiltin::env): Likewise. |
| * expand/rust-macro-expand.cc (MacroExpander::expand_invoc): Expand |
| invocations recursively. |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * lang.opt: Add new ``-frust-compile-until` option. |
| * rust-session-manager.cc (Session::compile_crate): Add stops around |
| various compilation steps in the pipeline. |
| * rust-session-manager.h (struct CompileOptions): Add `CompileStep` enum |
| and field. |
| |
| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * backend/rust-tree.cc (rs_type_quals): Comment out bad assertion |
| |
| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * typecheck/rust-hir-type-check-toplevel.cc (TypeCheckTopLevel::visit): |
| Make static items behave more similarly to const items. |
| |
| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * backend/rust-compile-item.cc (CompileItem::visit): Const evaluate |
| static item expressions. |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Do not lower |
| null items within modules. |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * util/rust-attributes.cc: Add `macro_use` to list of builtin |
| attributes. |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * checks/errors/rust-const-checker.cc (ConstChecker::ctx_to_str): Allow |
| getting an error string from a specific constant context. |
| (ConstChecker::ctx_allows_default): New function, check if a context |
| allows default values for Const generics. |
| (ConstChecker::visit): Call into `ctx_allows_default`. |
| * checks/errors/rust-const-checker.h: Declare `ctx_allows_default`. |
| |
| 2023-01-31 liushuyu <liushuyu011@gmail.com> |
| |
| * backend/rust-compile-expr.cc (CompileExpr::visit): Properly formulate |
| exit condition when compiling while loops. |
| |
| 2023-01-31 Faisal Abbas <90.abbasfaisal@gmail.com> |
| |
| * typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Turn |
| constant item typechecking into a coercion site instead of a unify |
| site. |
| |
| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * typecheck/rust-tyty.h: Fix `is_concrete` for unit types with |
| substitutions. |
| |
| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::contains_associated_types): |
| Check if a type bound predicate contains assocated types. |
| * typecheck/rust-tyty.h: Declare the above mentioned function. |
| * typecheck/rust-hir-trait-resolve.cc: Use `contains_associated_types` |
| function. |
| |
| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Add |
| more calls to `rust_debug` for development. |
| |
| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * backend/rust-compile-base.cc: Improve compilation pipeline and simplify |
| function. |
| |
| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * backend/rust-tree.cc (comptypes): Remove some C++ specific checks in |
| Rust const folder for now. |
| |
| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::unify_site): Add |
| better unification function with debug calls. |
| * typecheck/rust-autoderef.cc (AutoderefCycle::cycle): Add more debug |
| calls and use new unify API. |
| * typecheck/rust-coercion.cc (TypeCoercionRules::do_coercion): Likewise. |
| (TypeCoercionRules::coerce_borrowed_pointer): Likewise. |
| (TypeCoercionRules::select): Likewise. |
| * typecheck/rust-hir-dot-operator.cc (MethodResolver::select): Likewise. |
| * typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item): Likewise. |
| (TypeCheckBase::coercion_site): Likewise. |
| (TypeCheckBase::cast_site): Likewise. |
| * typecheck/rust-hir-type-check-base.h: Likewise. |
| * typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::visit): Likewise. |
| * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise. |
| * typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelImplItem::visit): Likewise. |
| (TypeCheckImplItem::visit): Likewise. |
| * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): Likewise. |
| * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_segments): Likewise. |
| * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): Likewise. |
| * typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise. |
| * typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve): Likewise. |
| * typecheck/rust-hir-type-check-toplevel.cc (TypeCheckTopLevel::visit): Likewise. |
| * typecheck/rust-hir-type-check-type.cc (TypeCheckType::visit): Likewise. |
| * typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): Likewise. |
| * typecheck/rust-tyctx.cc (TypeCheckContext::peek_return_type): Likewise. |
| * typecheck/rust-tyty-call.cc (TypeCheckMethodCallExpr::visit): Likewise. |
| * typecheck/rust-tyty-cmp.h: Likewise. |
| * typecheck/rust-tyty-rules.h: Likewise. |
| * typecheck/rust-tyty.cc (BaseType::mappings_str): Likewise. |
| (BaseType::debug): Print type name more clearly. |
| (BaseType::debug_str): Add new function to print type pointer and name. |
| (TupleType::get_name): Improve type name fetching function. |
| (ReferenceType::get_name): Likewise. |
| (PointerType::get_name): Likewise. |
| * typecheck/rust-tyty.h: Refactor definitions outside of the header. |
| |
| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::TypeCheckBase): |
| Remove constructor. |
| (TypeCheckBase::coercion_site): Add `Location` argument to function. |
| * typecheck/rust-hir-type-check-base.h: Use `TypeCheckBase::coercion_site` |
| function with location argument. |
| * typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::visit): Likewise. |
| * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Likewise. |
| * typecheck/rust-hir-type-check-expr.h (class TypeCheckExpr): Likewise. |
| * typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise. |
| * typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::visit): Likewise. |
| * typecheck/rust-hir-type-check-toplevel.cc (TypeCheckTopLevel::visit): Likewise. |
| * typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Likewise. |
| (TypeCheckMethodCallExpr::visit): Likewise. |
| * typecheck/rust-tyty.h: Add missing locus field. |
| * typecheck/rust-tyty.cc (StructFieldType::clone): Use locus field. |
| (StructFieldType::monomorphized_clone): Likewise. |
| |
| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * typecheck/rust-tyctx.cc (TypeCheckContext::pop_return_type): Add |
| guards around `std::vector<T>.pop_back()`. |
| (TypeCheckContext::peek_context): Likewise for `std::vector<T>.back()`. |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| philberty <philip.herron@embecosm.com> |
| |
| * ast/rust-ast.h: Improve assertions within ASTFragment API. |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * ast/rust-ast.h: Add assertions and accessors for fragment nodes. |
| * expand/rust-attribute-visitor.cc (AttrVisitor::visit): Fix expansion |
| context typo when visiting `InherentImpl` items. |
| (AttrVisitor::maybe_expand_expr): Use new Fragment accessor to fetch |
| properly typed node. |
| (AttrVisitor::maybe_expand_type): Likewise. |
| * expand/rust-macro-expand.cc (transcribe_type): Emit parse errors |
| when trying to parse a type. |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * ast/rust-ast-dump.h: Add shorthand `AST::Dump::debug` function to |
| dump an AST node on `stderr`. |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| philberty <philip.herron@embecosm.com> |
| |
| * expand/rust-macro-expand.cc (parse_many): Return early from parsing |
| loop if we encounter an error, and emit that error in the meantime. |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * expand/rust-macro-expand.cc (MacroExpander::match_matcher): Handle |
| fragments differently based on whether or not we are currently trying |
| to match a matcher in a repetition context. |
| (MacroExpander::match_n_matches): Use new `in_repetition` argument |
| properly when calling `match_matcher`. |
| * expand/rust-macro-expand.h (MacroExpander::match_matcher): Allow |
| passing extra `in_repetition` bool argument |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * parse/rust-parse-impl.h: Allow parsing full range expressions without |
| erroring out. |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * checks/lints/rust-lint-scan-deadcode.h: Do not report public items |
| as dead code. |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * util/rust-attributes.cc: Add `rustc_inherit_overflow_checks` to list |
| of builtin attributes. |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * backend/rust-compile-expr.cc (CompileExpr::visit): Insert overflow |
| checks logic. |
| (CompileExpr::array_copied_expr): Insert overflow checks logic. |
| * backend/rust-compile-item.cc (CompileItem::visit): Insert overflow |
| checks logic. |
| * backend/rust-compile-type.cc (TyTyResolveCompile::visit): Insert |
| overflow checks logic. |
| * rust-gcc.cc (Gcc_backend::arithmetic_or_logical_expression): Differentiate |
| existing function from `arithmetic_or_logical_expression_checked`. |
| This function does insert perform overflow checks. |
| (Gcc_backend::arithmetic_or_logical_expression_checked): New |
| function. |
| (is_overflowing_expr): New function. Check if an expression is an |
| overflowing one (ADD, SUB, MUL). |
| (fetch_overflow_builtins): New function. |
| * rust-backend.h: Declare `arithmetic_or_logical_expression_checked` in |
| abstract `Backend` class. |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * backend/rust-builtins.h: Refactor builtin context class and add |
| overflow builtins. |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * rust-gcc.cc (class Bvariable): Move class to `rust-gcc.h` header. |
| * rust-gcc.h: New file. |
| |
| 2023-01-31 Philip Herron <philip.herron@embecosm.com> |
| |
| * hir/rust-ast-lower-expr.h: Lower double borrow expressions to two |
| `HIR::BorrowExpr`s. |
| * hir/tree/rust-hir-expr.h: Remove `is_double_borrow` field from |
| `HIR::BorrowExpr`. |
| * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Remove |
| call to `gcc_unreachable` on double borrow expressions. |
| |
| 2023-01-31 Faisal Abbas <90.abbasfaisal@gmail.com> |
| |
| * backend/rust-tree.cc : Add new includes. |
| (scope_chain): New. |
| (maybe_add_global): New. |
| (init_modules): New (copied from cp) |
| (var_in_constexpr_fn): Likewise. |
| (member_vec_linear_search): Likewise. |
| (member_vec_binary_search): Likewise. |
| (is_overloaded_fn): Likewise. |
| (ovl_make): Likewise. |
| (lookup_add): Likewise. |
| (type_memfn_quals): Likewise. |
| (struct find_parameter_pack_data): Likewise. |
| (struct conv_type_hasher): Likewise. |
| (make_conv_op_name): Likewise. |
| (builtin_pack_fn_p): Likewise. |
| (builtin_pack_call_p): Likewise. |
| (has_extra_args_mechanism_p): Likewise. |
| (find_parameter_packs_r): Likewise. |
| (WALK_SUBTREE): Likewise. |
| (type_memfn_rqual): Likewise. |
| (maybe_add_lang_type_raw): Likewise. |
| (struct c_fileinfo): Likewise. |
| (get_fileinfo): Likewise. |
| (cxx_make_type): Likewise. |
| (build_min_array_type): Likewise. |
| (fields_linear_search): Likewise. |
| (nothrow_spec_p): Likewise. |
| (maybe_get_fns): Likewise. |
| (get_fns): Likewise. |
| (get_first_fn): Likewise. |
| (dependent_name): Likewise. |
| (called_fns_equal): Likewise. |
| (canonical_eh_spec): Likewise. |
| (rs_tree_code_length): Likewise. |
| (rs_tree_operand_length): Likewise. |
| (rs_tree_equal): Likewise. |
| (publicly_uniquely_derived_p): Likewise. |
| (comp_except_types): Likewise. |
| (comp_except_specs): Likewise. |
| (compparms): Likewise. |
| (set_array_type_canon): Likewise. |
| (struct cplus_array_info): Likewise. |
| (struct cplus_array_hasher): Likewise. |
| (cplus_array_hasher::hash): Likewise. |
| (cplus_array_hasher::equal): Likewise. |
| (is_byte_access_type): Likewise. |
| (build_cplus_array_type): Likewise. |
| (rs_build_qualified_type_real): Likewise. |
| (vector_targets_convertible_p): Likewise. |
| (comp_array_types): Likewise. |
| (same_type_ignoring_top_level_qualifiers_p): Likewise. |
| (comp_ptr_ttypes_const): Likewise. |
| (similar_type_p): Likewise. |
| (structural_comptypes): Likewise. |
| (comptypes): Likewise. |
| (next_initializable_field): Likewise. |
| (sufficient_parms_p): Likewise. |
| (default_ctor_p): Likewise. |
| (user_provided_p): Likewise. |
| (type_has_non_user_provided_default_constructor): Likewise. |
| (default_init_uninitialized_part): Likewise. |
| (extract_conversion_operator): Likewise. |
| (get_class_binding_direct): Likewise. |
| (lang_check_failed): Likewise. |
| (skip_artificial_parms_for): Likewise. |
| (in_class_defaulted_default_constructor): Likewise. |
| (is_instantiation_of_constexpr): Likewise. |
| (check_for_uninitialized_const_var): Likewise. |
| (cv_unqualified): Likewise. |
| (make_tree_vector): Likewise. |
| (release_tree_vector): Likewise. |
| (instantiation_dependent_expression_p): Likewise. |
| (cp_get_callee): Likewise. |
| (build_nop): Likewise. |
| (scalarish_type_p): Likewise. |
| (type_has_nontrivial_copy_init): Likewise. |
| (build_local_temp): Likewise. |
| (is_normal_capture_proxy): Likewise. |
| (reject_gcc_builtin): Likewise. |
| (is_bitfield_expr_with_lowered_type): Likewise. |
| (maybe_undo_parenthesized_ref): Likewise. |
| (fold_offsetof): Likewise. |
| (char_type_p): Likewise. |
| (resolve_nondeduced_context): Likewise. |
| (instantiate_non_dependent_or_null): Likewise. |
| (resolve_nondeduced_context_or_error): Likewise. |
| (really_overloaded_fn): Likewise. |
| (invalid_nonstatic_memfn_p): Likewise. |
| (strip_top_quals): Likewise. |
| (cxx_incomplete_type_inform): Likewise. |
| (cxx_incomplete_type_diagnostic): Likewise. |
| (decl_constant_var_p): Likewise. |
| (undeduced_auto_decl): Likewise. |
| (require_deduced_type): Likewise. |
| * backend/rust-tree.h (enum c_tree_index): Likewise. |
| (GTY): Likewise. |
| (enum cp_tree_index): Likewise. |
| (wchar_decl_node): Likewise. |
| (vtable_entry_type): Likewise. |
| (delta_type_node): Likewise. |
| (vtable_index_type): Likewise. |
| (class_type_node): Likewise. |
| (unknown_type_node): Likewise. |
| (init_list_type_node): Likewise. |
| (explicit_void_list_node): Likewise. |
| (vtbl_type_node): Likewise. |
| (vtbl_ptr_type_node): Likewise. |
| (std_node): Likewise. |
| (abi_node): Likewise. |
| (global_namespace): Likewise. |
| (const_type_info_type_node): Likewise. |
| (conv_op_marker): Likewise. |
| (abort_fndecl): Likewise. |
| (current_aggr): Likewise. |
| (nullptr_node): Likewise. |
| (nullptr_type_node): Likewise. |
| (align_type_node): Likewise. |
| (char8_type_node): Likewise. |
| (char16_type_node): Likewise. |
| (char32_type_node): Likewise. |
| (wchar_type_node): Likewise. |
| (underlying_wchar_type_node): Likewise. |
| (wint_type_node): Likewise. |
| (signed_size_type_node): Likewise. |
| (unsigned_ptrdiff_type_node): Likewise. |
| (intmax_type_node): Likewise. |
| (uintmax_type_node): Likewise. |
| (widest_integer_literal_type_node): Likewise. |
| (widest_unsigned_literal_type_node): Likewise. |
| (sig_atomic_type_node): Likewise. |
| (int8_type_node): Likewise. |
| (int16_type_node): Likewise. |
| (int32_type_node): Likewise. |
| (int64_type_node): Likewise. |
| (uint8_type_node): Likewise. |
| (c_uint16_type_node): Likewise. |
| (c_uint32_type_node): Likewise. |
| (c_uint64_type_node): Likewise. |
| (int_least8_type_node): Likewise. |
| (int_least16_type_node): Likewise. |
| (int_least32_type_node): Likewise. |
| (int_least64_type_node): Likewise. |
| (uint_least8_type_node): Likewise. |
| (uint_least16_type_node): Likewise. |
| (uint_least32_type_node): Likewise. |
| (uint_least64_type_node): Likewise. |
| (int_fast8_type_node): Likewise. |
| (int_fast16_type_node): Likewise. |
| (int_fast32_type_node): Likewise. |
| (int_fast64_type_node): Likewise. |
| (uint_fast8_type_node): Likewise. |
| (uint_fast16_type_node): Likewise. |
| (uint_fast32_type_node): Likewise. |
| (uint_fast64_type_node): Likewise. |
| (intptr_type_node): Likewise. |
| (uintptr_type_node): Likewise. |
| (truthvalue_type_node): Likewise. |
| (truthvalue_true_node): Likewise. |
| (truthvalue_false_node): Likewise. |
| (char_array_type_node): Likewise. |
| (char8_array_type_node): Likewise. |
| (char16_array_type_node): Likewise. |
| (char32_array_type_node): Likewise. |
| (wchar_array_type_node): Likewise. |
| (string_type_node): Likewise. |
| (const_string_type_node): Likewise. |
| (default_function_type): Likewise. |
| (function_name_decl_node): Likewise. |
| (pretty_function_name_decl_node): Likewise. |
| (c99_function_name_decl_node): Likewise. |
| (saved_function_name_decls): Likewise. |
| (null_node): Likewise. |
| (ctor_identifier): Likewise. |
| (complete_ctor_identifier): Likewise. |
| (base_ctor_identifier): Likewise. |
| (dtor_identifier): Likewise. |
| (complete_dtor_identifier): Likewise. |
| (base_dtor_identifier): Likewise. |
| (deleting_dtor_identifier): Likewise. |
| (conv_op_identifier): Likewise. |
| (delta_identifier): Likewise. |
| (in_charge_identifier): Likewise. |
| (vtt_parm_identifier): Likewise. |
| (as_base_identifier): Likewise. |
| (this_identifier): Likewise. |
| (pfn_identifier): Likewise. |
| (vptr_identifier): Likewise. |
| (global_identifier): Likewise. |
| (anon_identifier): Likewise. |
| (auto_identifier): Likewise. |
| (decltype_auto_identifier): Likewise. |
| (init_list_identifier): Likewise. |
| (for_range__identifier): Likewise. |
| (for_begin__identifier): Likewise. |
| (for_end__identifier): Likewise. |
| (for_range_identifier): Likewise. |
| (for_begin_identifier): Likewise. |
| (for_end_identifier): Likewise. |
| (abi_tag_identifier): Likewise. |
| (aligned_identifier): Likewise. |
| (begin_identifier): Likewise. |
| (end_identifier): Likewise. |
| (get__identifier): Likewise. |
| (gnu_identifier): Likewise. |
| (tuple_element_identifier): Likewise. |
| (tuple_size_identifier): Likewise. |
| (type_identifier): Likewise. |
| (value_identifier): Likewise. |
| (fun_identifier): Likewise. |
| (closure_identifier): Likewise. |
| (heap_uninit_identifier): Likewise. |
| (heap_identifier): Likewise. |
| (heap_deleted_identifier): Likewise. |
| (heap_vec_uninit_identifier): Likewise. |
| (heap_vec_identifier): Likewise. |
| (omp_identifier): Likewise. |
| (lang_name_c): Likewise. |
| (lang_name_cplusplus): Likewise. |
| (empty_except_spec): Likewise. |
| (noexcept_true_spec): Likewise. |
| (noexcept_false_spec): Likewise. |
| (noexcept_deferred_spec): Likewise. |
| (terminate_fn): Likewise. |
| (call_unexpected_fn): Likewise. |
| (get_exception_ptr_fn): Likewise. |
| (begin_catch_fn): Likewise. |
| (end_catch_fn): Likewise. |
| (allocate_exception_fn): Likewise. |
| (free_exception_fn): Likewise. |
| (throw_fn): Likewise. |
| (rethrow_fn): Likewise. |
| (atexit_fn_ptr_type_node): Likewise. |
| (atexit_node): Likewise. |
| (dso_handle_node): Likewise. |
| (dynamic_cast_node): Likewise. |
| (cleanup_type): Likewise. |
| (vtt_parm_type): Likewise. |
| (any_targ_node): Likewise. |
| (source_location_impl): Likewise. |
| (OVL_FUNCTION): Likewise. |
| (OVL_CHAIN): Likewise. |
| (OVL_DEDUP_P): Likewise. |
| (OVL_USING_P): Likewise. |
| (OVL_HIDDEN_P): Likewise. |
| (OVL_NESTED_P): Likewise. |
| (OVL_LOOKUP_P): Likewise. |
| (OVL_EXPORT_P): Likewise. |
| (OVL_FIRST): Likewise. |
| (OVL_NAME): Likewise. |
| (OVL_P): Likewise. |
| (OVL_SINGLE_P): Likewise. |
| (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise. |
| (CLASSTYPE_LAZY_DEFAULT_CTOR): Likewise. |
| (CLASSTYPE_CONSTRUCTORS): Likewise. |
| (ATTR_IS_DEPENDENT): Likewise. |
| (ABI_TAG_IMPLICIT): Likewise. |
| (PARENTHESIZED_LIST_P): Likewise. |
| (DECL_DEPENDENT_P): Likewise. |
| (USING_DECL_SCOPE): Likewise. |
| (USING_DECL_DECLS): Likewise. |
| (USING_DECL_TYPENAME_P): Likewise. |
| (USING_DECL_UNRELATED_P): Likewise. |
| (DECL_DECLARES_FUNCTION_P): Likewise. |
| (DECL_DECLARES_TYPE_P): Likewise. |
| (IDENTIFIER_KIND_BIT_0): Likewise. |
| (IDENTIFIER_KIND_BIT_1): Likewise. |
| (IDENTIFIER_KIND_BIT_2): Likewise. |
| (IDENTIFIER_MARKED): Likewise. |
| (IDENTIFIER_VIRTUAL_P): Likewise. |
| (IDENTIFIER_KEYWORD_P): Likewise. |
| (IDENTIFIER_CDTOR_P): Likewise. |
| (IDENTIFIER_CTOR_P): Likewise. |
| (IDENTIFIER_DTOR_P): Likewise. |
| (IDENTIFIER_ANY_OP_P): Likewise. |
| (IDENTIFIER_OVL_OP_P): Likewise. |
| (IDENTIFIER_ASSIGN_OP_P): Likewise. |
| (IDENTIFIER_CONV_OP_P): Likewise. |
| (IDENTIFIER_NEWDEL_OP_P): Likewise. |
| (IDENTIFIER_NEW_OP_P): Likewise. |
| (CLASSTYPE_DIAMOND_SHAPED_P): Likewise. |
| (CLASSTYPE_REPEATED_BASE_P): Likewise. |
| (CLASSTYPE_KEY_METHOD): Likewise. |
| (CLASSTYPE_MEMBER_VEC): Likewise. |
| (CLASSTYPE_DECL_LIST): Likewise. |
| (CLASSTYPE_DESTRUCTOR): Likewise. |
| (CLASSTYPE_HAS_PRIMARY_BASE_P): Likewise. |
| (CLASSTYPE_PRIMARY_BINFO): Likewise. |
| (CLASSTYPE_VBASECLASSES): Likewise. |
| (CLASSTYPE_AS_BASE): Likewise. |
| (DECL_CONV_FN_P): Likewise. |
| (DECL_CONV_FN_TYPE): Likewise. |
| (same_type_p): Likewise. |
| (WILDCARD_TYPE_P): Likewise. |
| (MAYBE_CLASS_TYPE_P): Likewise. |
| (FUNCTION_REF_QUALIFIED): Likewise. |
| (FUNCTION_RVALUE_QUALIFIED): Likewise. |
| (TYPE_PTRMEMFUNC_FN_TYPE): Likewise. |
| (TYPE_PTRMEMFUNC_FN_TYPE_RAW): Likewise. |
| (TYPE_DEPENDENT_P): Likewise. |
| (TYPE_DEPENDENT_P_VALID): Likewise. |
| (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise. |
| (TYPE_RAISES_EXCEPTIONS): Likewise. |
| (IDENTIFIER_BINDING): Likewise. |
| (LANG_IDENTIFIER_CAST): Likewise. |
| (IF_COND): Likewise. |
| (THEN_CLAUSE): Likewise. |
| (ELSE_CLAUSE): Likewise. |
| (IF_SCOPE): Likewise. |
| (IF_STMT_CONSTEXPR_P): Likewise. |
| (IF_STMT_CONSTEVAL_P): Likewise. |
| (DECLTYPE_TYPE_EXPR): Likewise. |
| (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. |
| (CLASSTYPE_INTERFACE_ONLY): Likewise. |
| (TYPE_NAME_STRING): Likewise. |
| (TYPE_NAME_LENGTH): Likewise. |
| (CONSTRAINT_VAR_P): Likewise. |
| (KOENIG_LOOKUP_P): Likewise. |
| (DECL_PARM_INDEX): Likewise. |
| (DECL_PARM_LEVEL): Likewise. |
| (CONV_IMPLICIT): Likewise. |
| (CONV_STATIC): Likewise. |
| (CONV_CONST): Likewise. |
| (CONV_REINTERPRET): Likewise. |
| (CONV_PRIVATE): Likewise. |
| (CONV_FORCE_TEMP): Likewise. |
| (CONV_FOLD): Likewise. |
| (CONV_OLD_CONVERT): Likewise. |
| (CONV_C_CAST): Likewise. |
| (CONV_BACKEND_CONVERT): Likewise. |
| (WANT_INT): Likewise. |
| (WANT_FLOAT): Likewise. |
| (WANT_ENUM): Likewise. |
| (WANT_POINTER): Likewise. |
| (WANT_NULL): Likewise. |
| (WANT_VECTOR_OR_COMPLEX): Likewise. |
| (WANT_ARITH): Likewise. |
| (COMPARE_STRICT): Likewise. |
| (COMPARE_BASE): Likewise. |
| (COMPARE_DERIVED): Likewise. |
| (COMPARE_REDECLARATION): Likewise. |
| (COMPARE_STRUCTURAL): Likewise. |
| (SF_DEFAULT): Likewise. |
| (SF_PRE_PARSED): Likewise. |
| (SF_INCLASS_INLINE): Likewise. |
| (SD_UNINITIALIZED): Likewise. |
| (SD_INITIALIZED): Likewise. |
| (SD_DECOMPOSITION): Likewise. |
| (SD_DEFAULTED): Likewise. |
| (SD_DELETED): Likewise. |
| (TYPE_PTRDATAMEM_P): Likewise. |
| (RS_TYPE_CONST_P): Likewise. |
| (TYPE_MAIN_DECL): Likewise. |
| (DECL_NONTRIVIALLY_INITIALIZED_P): Likewise. |
| (DECL_DEFAULTED_FN): Likewise. |
| (TYPE_HAS_USER_CONSTRUCTOR): Likewise. |
| (DECL_INITIALIZED_IN_CLASS_P): Likewise. |
| (DECL_DEFAULTED_IN_CLASS_P): Likewise. |
| (DECL_NONSTATIC_MEMBER_FUNCTION_P): Likewise. |
| (DECL_HAS_IN_CHARGE_PARM_P): Likewise. |
| (DECL_HAS_VTT_PARM_P): Likewise. |
| (FUNCTION_FIRST_USER_PARMTYPE): Likewise. |
| (FUNCTION_FIRST_USER_PARM): Likewise. |
| (DECL_CONSTRUCTOR_P): Likewise. |
| (DECL_DELETED_FN): Likewise. |
| (BRACE_ENCLOSED_INITIALIZER_P): Likewise. |
| (DECL_IMMEDIATE_FUNCTION_P): Likewise. |
| (SET_DECL_IMMEDIATE_FUNCTION_P): Likewise. |
| (CONSTRUCTOR_MUTABLE_POISON): Likewise. |
| (PTRMEM_CST_MEMBER): Likewise. |
| (REF_PARENTHESIZED_P): Likewise. |
| (TYPE_PTRMEM_P): Likewise. |
| (TYPE_PTR_OR_PTRMEM_P): Likewise. |
| (DECL_DECOMPOSITION_P): Likewise. |
| (DECL_DECOMP_BASE): Likewise. |
| (DECL_MAYBE_IN_CHARGE_CDTOR_P): Likewise. |
| (DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise. |
| (DECL_CLONED_FUNCTION_P): Likewise. |
| (DECL_CLONED_FUNCTION): Likewise. |
| (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise. |
| (cp_function_chain): Likewise. |
| (cdtor_label): Likewise. |
| (current_class_ptr): Likewise. |
| (current_class_ref): Likewise. |
| (current_eh_spec_block): Likewise. |
| (current_in_charge_parm): Likewise. |
| (current_vtt_parm): Likewise. |
| (current_retval_sentinel): Likewise. |
| (current_function_returns_value): Likewise. |
| (current_function_returns_null): Likewise. |
| (current_function_returns_abnormally): Likewise. |
| (current_function_infinite_loop): Likewise. |
| (in_base_initializer): Likewise. |
| (in_function_try_handler): Likewise. |
| (current_function_return_value): Likewise. |
| (current_class_type): Likewise. |
| (TYPE_BEING_DEFINED): Likewise. |
| (DECL_STATIC_FUNCTION_P): Likewise. |
| (DECL_FUNCTION_MEMBER_P): Likewise. |
| (LANG_DECL_MIN_CHECK): Likewise. |
| (LANG_DECL_FN_CHECK): Likewise. |
| (LANG_DECL_NS_CHECK): Likewise. |
| (LANG_DECL_PARM_CHECK): Likewise. |
| (LANG_DECL_DECOMP_CHECK): Likewise. |
| (RS_INTEGRAL_TYPE_P): Likewise. |
| (STAT_HACK_P): Likewise. |
| (STAT_TYPE_VISIBLE_P): Likewise. |
| (STAT_TYPE): Likewise. |
| (STAT_DECL): Likewise. |
| (STAT_VISIBLE): Likewise. |
| (MAYBE_STAT_DECL): Likewise. |
| (MAYBE_STAT_TYPE): Likewise. |
| (STAT_TYPE_HIDDEN_P): Likewise. |
| (STAT_DECL_HIDDEN_P): Likewise. |
| (class warning_sentinel): Likewise. |
| (struct uid_sensitive_constexpr_evaluation_checker): Likewise. |
| (class iloc_sentinel): Likewise. |
| (struct GTY): Likewise. |
| (struct named_decl_hash): Likewise. |
| (enum lang_decl_selector): Likewise. |
| (LANG_DECL_HAS_MIN): Likewise. |
| (struct named_label_entry): Likewise. |
| (struct named_label_hash): Likewise. |
| (enum ref_operator): Likewise. |
| (struct c_fileinfo): Likewise. |
| (class ovl_iterator): Likewise. |
| (class lkp_iterator): Likewise. |
| (enum rs_ref_qualifier): Likewise. |
| (enum tsubst_flags): Likewise. |
| (enum cp_identifier_kind): Likewise. |
| (enum tag_types): Likewise. |
| (enum compare_bounds_t): Likewise. |
| (mark_rvalue_use): Likewise. |
| (type_unknown_p): Likewise. |
| (init_modules): Likewise. |
| (var_in_constexpr_fn): Likewise. |
| (ovl_first): Likewise. |
| (lookup_add): Likewise. |
| (ovl_make): Likewise. |
| (is_overloaded_fn): Likewise. |
| (maybe_add_lang_type_raw): Likewise. |
| (type_memfn_rqual): Likewise. |
| (builtin_pack_fn_p): Likewise. |
| (make_conv_op_name): Likewise. |
| (type_memfn_quals): Likewise. |
| (get_fileinfo): Likewise. |
| (cxx_make_type): Likewise. |
| (build_cplus_array_type): Likewise. |
| (is_byte_access_type): Likewise. |
| (comptypes): Likewise. |
| (canonical_eh_spec): Likewise. |
| (cp_tree_operand_length): Likewise. |
| (rs_tree_equal): Likewise. |
| (compparms): Likewise. |
| (rs_build_qualified_type_real): Likewise. |
| (rs_build_qualified_type): Likewise. |
| (cv_qualified_p): Likewise. |
| (similar_type_p): Likewise. |
| (vector_targets_convertible_p): Likewise. |
| (same_type_ignoring_top_level_qualifiers_p): Likewise. |
| (comp_ptr_ttypes_const): Likewise. |
| (get_class_binding_direct): Likewise. |
| (skip_artificial_parms_for): Likewise. |
| (lang_check_failed): Likewise. |
| (default_init_uninitialized_part): Likewise. |
| (type_has_non_user_provided_default_constructor): Likewise. |
| (default_ctor_p): Likewise. |
| (user_provided_p): Likewise. |
| (sufficient_parms_p): Likewise. |
| (next_initializable_field): Likewise. |
| (in_class_defaulted_default_constructor): Likewise. |
| (is_instantiation_of_constexpr): Likewise. |
| (check_for_uninitialized_const_var): Likewise. |
| (reduced_constant_expression_p): Likewise. |
| (cv_unqualified): Likewise. |
| (cp_get_callee): Likewise. |
| (cp_get_callee_fndecl_nofold): Likewise. |
| (is_nondependent_static_init_expression): Likewise. |
| (maybe_constant_init): Likewise. |
| (build_nop): Likewise. |
| (scalarish_type_p): Likewise. |
| (is_bitfield_expr_with_lowered_type): Likewise. |
| (convert_bitfield_to_declared_type): Likewise. |
| (cp_fold_maybe_rvalue): Likewise. |
| (maybe_undo_parenthesized_ref): Likewise. |
| (fold_offsetof): Likewise. |
| (cp_truthvalue_conversion): Likewise. |
| (fold_non_dependent_expr): Likewise. |
| (char_type_p): Likewise. |
| (instantiation_dependent_expression_p): Likewise. |
| (type_has_nontrivial_copy_init): Likewise. |
| (build_local_temp): Likewise. |
| (is_normal_capture_proxy): Likewise. |
| (reject_gcc_builtin): Likewise. |
| (resolve_nondeduced_context): Likewise. |
| (cxx_incomplete_type_diagnostic): Likewise. |
| (cxx_incomplete_type_error): Likewise. |
| (invalid_nonstatic_memfn_p): Likewise. |
| (really_overloaded_fn): Likewise. |
| (resolve_nondeduced_context_or_error): Likewise. |
| (instantiate_non_dependent_or_null): Likewise. |
| (cxx_incomplete_type_inform): Likewise. |
| (strip_top_quals): Likewise. |
| (undeduced_auto_decl): Likewise. |
| (require_deduced_type): Likewise. |
| (decl_constant_var_p): Likewise. |
| (type_of_this_parm): Likewise. |
| (class_of_this_parm): Likewise. |
| (identifier_p): Likewise. |
| (gnu_vector_type_p): Likewise. |
| (make_tree_vector): Likewise. |
| (release_tree_vector): Likewise. |
| (class releasing_vec): Likewise. |
| (vec_safe_push): Likewise. |
| (null_node_p): Likewise. |
| * backend/rust-compile-base.cc (HIRCompileBase::setup_fndecl): Correctly |
| set fndecl as constexpr from qualifiers. |
| (HIRCompileBase::compile_function): Test if fndecl is constexpr. |
| (HIRCompileBase::compile_constant_item): Set fndecl as constexpr. |
| * backend/rust-compile-intrinsic.cc : Update include. |
| (finalize_intrinsic_block): Set fndecl as constexpr. |
| * backend/rust-constexpr.cc : Update include. |
| (VERIFY_CONSTANT): New. |
| (is_instantiation_of_constexpr): New. |
| (literal_type_p): New. |
| (verify_constant): New. |
| (find_array_ctor_elt): New. |
| (array_index_cmp): New. |
| (potential_constant_expression_1): New. |
| (get_nth_callarg): New. |
| (unshare_constructor): New. |
| (maybe_save_constexpr_fundef): New. |
| (returns): New. |
| (breaks): New. |
| (continues): New. |
| (switches): New. |
| (struct constexpr_global_ctx): Add new fields. |
| (constexpr_fundef): New. |
| (struct constexpr_call): New. |
| (constexpr_call_hasher : ggc_ptr_hash<constexpr_call>): New. |
| (enum constexpr_switch_state): New. |
| (struct constexpr_ctx): Add new fields. |
| (struct constexpr_fundef_hasher): New. |
| (constexpr_fundef_table): New. |
| (constexpr_fundef_hasher::equal): New. |
| (constexpr_fundef_hasher::hash): New. |
| (retrieve_constexpr_fundef): New. |
| (uid_sensitive_constexpr_evaluation_value): New. |
| (uid_sensitive_constexpr_evaluation_true_counter): New. |
| (uid_sensitive_constexpr_evaluation_p): New. |
| (class temp_override): New. |
| (struct uid_sensitive_constexpr_evaluation_sentinel): New. |
| (struct uid_sensitive_constexpr_evaluation_checker): New. |
| (::uid_sensitive_constexpr_evaluation_sentinel): New. |
| (::uid_sensitive_constexpr_evaluation_checker): New. |
| (uid_sensitive_constexpr_evaluation_checker::evaluation_restricted_p): New. |
| (constexpr_call_table): New. |
| (constexpr_call_hasher::hash): New. |
| (constexpr_call_hasher::equal): New. |
| (maybe_initialize_constexpr_call_table): New. |
| (fundef_copies_table): New. |
| (get_fundef_copy): New. |
| (save_fundef_copy): New. |
| (constexpr_expression): Refactor in ... |
| (eval_constant_expression): ...this. |
| (eval_store_expression): Add 3 bool params. |
| (eval_call_expression): Likewise. |
| (eval_binary_expression): Likewise. |
| (eval_statement_list): New. |
| (extract_string_elt): New. |
| (eval_conditional_expression): New. |
| (eval_bit_field_ref): New. |
| (eval_loop_expr): New. |
| (eval_switch_expr): New. |
| (eval_unary_expression): New. |
| (call_stack): New. |
| (call_stack_tick): New. |
| (last_cx_error_tick): New. |
| (push_cx_call_context): New. |
| (pop_cx_call_context): New. |
| (cx_error_context): New. |
| (fold_expr): Adjust call to eval_constant_expression. |
| (same_type_ignoring_tlq_and_bounds_p): New. |
| (union_active_member): Port more for cxx constexpr. |
| (fold_indirect_ref_1): New. |
| (rs_fold_indirect_ref): Likewise. |
| (rs_eval_indirect_ref): New (from corresponding cxx FE file). |
| (eval_logical_expression): Adjust parameter list. |
| (lookup_placeholder): New (from corresponding cxx FE file). |
| (constant_value_1): Remove. |
| (inline_asm_in_constexpr_error): New (from corresponding cxx FE file). |
| (verify_ctor_sanity): New. |
| (get_callee): Remove. |
| (initialized_type): New. |
| (maybe_constexpr_fn): Remove. |
| (init_subob_ctx): New. |
| (base_field_constructor_elt): New. |
| (get_or_insert_ctor_field): New. |
| (eval_vector_conditional_expression): New (from correponding cxx FE file). |
| (eval_bare_aggregate): New. |
| (cxx_eval_trinary_expression): New. |
| (reduced_constant_expression_p): New. |
| (adjust_temp_type): New. |
| (free_constructor): New. |
| (eval_and_check_array_index): New. |
| (eval_array_reference): New. |
| (eval_component_reference): New. |
| (label_matches): New. |
| (eval_constant_expression): New. |
| (modifying_const_object_error): New. |
| (is_empty_field): New. |
| (eval_store_expression): New. |
| (eval_binary_expression): New. |
| (addr_of_non_const_var): New. |
| (rs_bind_parameters_in_call): New. |
| (eval_builtin_function_call): New. |
| (eval_call_expression): New. |
| (build_anon_member_initialization): New. |
| (build_data_member_initialization): New. |
| (constexpr_fn_retval): New. |
| (constant_value_1): New. |
| (decl_constant_value): New. |
| (non_const_var_error): New. |
| (get_callee): New. |
| (get_function_named_in_call): New. |
| (maybe_constexpr_fn): New. |
| (get_nth_callarg): New. |
| (var_in_maybe_constexpr_fn): New. |
| (instantiate_cx_fn_r): New. |
| (instantiate_constexpr_fns): New. |
| (array_index_cmp): New. |
| (unshare_constructor): New. |
| (find_array_ctor_elt): New. |
| (verify_constant): New. |
| (find_heap_var_refs): New. |
| (find_immediate_fndecl): New. |
| (diag_array_subscript): New. |
| (get_array_or_vector_nelts): New. |
| (eval_and_check_array_index): New. |
| (extract_string_elt): New. |
| (is_valid_constexpr_fn): New. |
| (explain_invalid_constexpr_fn): New. |
| (register_constexpr_fundef): New. |
| (maybe_save_constexpr_fundef): New. |
| (eval_statement_list): New. |
| (eval_conditional_expression): New. |
| (eval_bit_field_ref): New. |
| (returns): New. |
| (breaks): New. |
| (continues): New. |
| (switches): New. |
| (eval_loop_expr): New. |
| (eval_switch_expr): New. |
| (eval_unary_expression): New. |
| (cxx_eval_outermost_constant_expr): New. |
| (is_static_init_expression): New. |
| (is_constant_expression): New. |
| (is_nondependent_static_init_expression): New. |
| (maybe_constant_init_1): New. |
| (maybe_constant_init): New. |
| (is_nondependent_constant_expression): New. |
| (cv_cache): New. |
| (maybe_constant_value): New. |
| (potential_constant_expression): New. |
| (struct check_for_return_continue_data): New. |
| (check_for_return_continue): New. |
| (decl_namespace_context): New. |
| (decl_in_std_namespace_p): New. |
| (is_std_construct_at): New. |
| (cxx_dynamic_cast_fn_p): New. |
| (is_std_allocator_allocate): New. |
| (is_std_allocator_allocate): New. |
| (potential_constant_expression_1): New. |
| (potential_constant_expression_1): New. |
| (fold_non_dependent_init): New. |
| * backend/rust-constexpr.h (maybe_save_constexpr_fundef): New. |
| |
| 2023-01-31 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * rust-session-manager.cc (Session::compile_crate): Allow the dump of prettified AST |
| (Session::dump_ast_pretty): New |
| * rust-session-manager.h: Add new output file for pretty AST dump |
| |
| 2023-01-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * resolve/rust-ast-resolve-item.cc (selftest::rust_flatten_list): |
| Remove output to stderr. |
| |
| 2023-01-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * Make-lang.in (selftest-rust-gdb): New. |
| (selftest-rust-valgrind): New. |
| |
| 2022-12-20 Marc Poulhiès <dkm@kataplop.net> |
| |
| PR rust/108113 |
| * Make-lang.in (rust.serial): New variable. |
| (rust1$(exeext)): Depend on $(rust.prev). Call LINK_PROGRESS. |
| |
| 2022-12-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rust/106072 |
| * parse/rust-parse-impl.h (parse_closure_param): Store |
| pattern->get_locus () in a temporary before std::move (pattern) is |
| invoked. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * CONTRIBUTING.md: New. |
| * README.md: New. |
| * logo.png: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * config-lang.in: New. |
| |
| 2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * lang.opt (-frust-incomplete-and-experimental-compiler-do-not-use): |
| New. |
| * rust-session-manager.cc (Session::compile_crate): Check it. |
| * Make-lang.in (RUST_SELFTEST_FLAGS): Add it. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * Make-lang.in: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * lang.opt: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * lang-specs.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * rust-lang.cc: New. |
| * rust-session-manager.cc: New. |
| * rust-session-manager.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * rustspec.cc: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * rust-diagnostics.cc: New. |
| * rust-diagnostics.h: New. |
| * rust-gcc-diagnostics.cc: New. |
| * rust-linemap.cc: New. |
| * rust-linemap.h: New. |
| * rust-location.h: New. |
| * rust-system.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| David Faust <david.faust@oracle.com> |
| Faisal Abbas <90.abbasfaisal@gmail.com> |
| |
| * backend/rust-compile-context.cc: New. |
| * backend/rust-compile-context.h: New. |
| * backend/rust-compile.cc: New. |
| * backend/rust-compile.h: New. |
| * backend/rust-constexpr.cc: New. |
| * backend/rust-constexpr.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| David Faust <david.faust@oracle.com> |
| |
| * backend/rust-compile-block.cc: New. |
| * backend/rust-compile-block.h: New. |
| * backend/rust-compile-expr.cc: New. |
| * backend/rust-compile-expr.h: New. |
| * backend/rust-compile-extern.h: New. |
| * backend/rust-compile-fnparam.cc: New. |
| * backend/rust-compile-fnparam.h: New. |
| * backend/rust-compile-implitem.cc: New. |
| * backend/rust-compile-implitem.h: New. |
| * backend/rust-compile-intrinsic.cc: New. |
| * backend/rust-compile-intrinsic.h: New. |
| * backend/rust-compile-item.cc: New. |
| * backend/rust-compile-item.h: New. |
| * backend/rust-compile-pattern.cc: New. |
| * backend/rust-compile-pattern.h: New. |
| * backend/rust-compile-resolve-path.cc: New. |
| * backend/rust-compile-resolve-path.h: New. |
| * backend/rust-compile-stmt.cc: New. |
| * backend/rust-compile-stmt.h: New. |
| * backend/rust-compile-struct-field-expr.cc: New. |
| * backend/rust-compile-struct-field-expr.h: New. |
| * backend/rust-compile-type.cc: New. |
| * backend/rust-compile-type.h: New. |
| * backend/rust-compile-var-decl.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| David Faust <david.faust@oracle.com> |
| |
| * backend/rust-builtins.h: New. |
| * backend/rust-compile-base.cc: New. |
| * backend/rust-compile-base.h: New. |
| * backend/rust-mangle.cc: New. |
| * backend/rust-mangle.h: New. |
| * backend/rust-tree.cc: New. |
| * backend/rust-tree.h: New. |
| * rust-backend.h: New. |
| * rust-gcc.cc: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * metadata/rust-export-metadata.cc: New. |
| * metadata/rust-export-metadata.h: New. |
| * metadata/rust-extern-crate.cc: New. |
| * metadata/rust-extern-crate.h: New. |
| * metadata/rust-import-archive.cc: New. |
| * metadata/rust-imports.cc: New. |
| * metadata/rust-imports.h: New. |
| * rust-object-export.cc: New. |
| * rust-object-export.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * checks/lints/rust-lint-unused-var.cc: New. |
| * checks/lints/rust-lint-unused-var.h: New. |
| |
| 2022-12-13 Thomas Young <wenzhang5800@gmail.com> |
| |
| * checks/lints/rust-lint-marklive-base.h: New. |
| * checks/lints/rust-lint-marklive.cc: New. |
| * checks/lints/rust-lint-marklive.h: New. |
| * checks/lints/rust-lint-scan-deadcode.h: New. |
| |
| 2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * checks/errors/privacy/rust-privacy-check.cc: New. |
| * checks/errors/privacy/rust-privacy-check.h: New. |
| * checks/errors/privacy/rust-privacy-common.h: New. |
| * checks/errors/privacy/rust-privacy-ctx.cc: New. |
| * checks/errors/privacy/rust-privacy-ctx.h: New. |
| * checks/errors/privacy/rust-privacy-reporter.cc: New. |
| * checks/errors/privacy/rust-privacy-reporter.h: New. |
| * checks/errors/privacy/rust-pub-restricted-visitor.cc: New. |
| * checks/errors/privacy/rust-pub-restricted-visitor.h: New. |
| * checks/errors/privacy/rust-reachability.cc: New. |
| * checks/errors/privacy/rust-reachability.h: New. |
| * checks/errors/privacy/rust-visibility-resolver.cc: New. |
| * checks/errors/privacy/rust-visibility-resolver.h: New. |
| |
| 2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * checks/errors/rust-const-checker.cc: New. |
| * checks/errors/rust-const-checker.h: New. |
| |
| 2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * checks/errors/rust-unsafe-checker.cc: New. |
| * checks/errors/rust-unsafe-checker.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * typecheck/rust-autoderef.cc: New. |
| * typecheck/rust-autoderef.h: New. |
| * typecheck/rust-casts.cc: New. |
| * typecheck/rust-casts.h: New. |
| * typecheck/rust-coercion.cc: New. |
| * typecheck/rust-coercion.h: New. |
| * typecheck/rust-hir-dot-operator.cc: New. |
| * typecheck/rust-hir-dot-operator.h: New. |
| * typecheck/rust-hir-inherent-impl-overlap.h: New. |
| * typecheck/rust-hir-path-probe.h: New. |
| * typecheck/rust-hir-trait-ref.h: New. |
| * typecheck/rust-hir-type-bounds.h: New. |
| * typecheck/rust-substitution-mapper.cc: New. |
| * typecheck/rust-substitution-mapper.h: New. |
| * typecheck/rust-tycheck-dump.h: New. |
| * typecheck/rust-tyctx.cc: New. |
| * typecheck/rust-tyty-bounds.cc: New. |
| * typecheck/rust-tyty-call.cc: New. |
| * typecheck/rust-tyty-call.h: New. |
| * typecheck/rust-tyty-cmp.h: New. |
| * typecheck/rust-tyty-rules.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * typecheck/rust-tyty.cc: New. |
| * typecheck/rust-tyty.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * typecheck/rust-hir-trait-resolve.cc: New. |
| * typecheck/rust-hir-trait-resolve.h: New. |
| * typecheck/rust-hir-type-check-base.cc: New. |
| * typecheck/rust-hir-type-check-base.h: New. |
| * typecheck/rust-hir-type-check-enumitem.cc: New. |
| * typecheck/rust-hir-type-check-enumitem.h: New. |
| * typecheck/rust-hir-type-check-expr.cc: New. |
| * typecheck/rust-hir-type-check-expr.h: New. |
| * typecheck/rust-hir-type-check-implitem.cc: New. |
| * typecheck/rust-hir-type-check-implitem.h: New. |
| * typecheck/rust-hir-type-check-item.cc: New. |
| * typecheck/rust-hir-type-check-item.h: New. |
| * typecheck/rust-hir-type-check-path.cc: New. |
| * typecheck/rust-hir-type-check-pattern.cc: New. |
| * typecheck/rust-hir-type-check-pattern.h: New. |
| * typecheck/rust-hir-type-check-stmt.cc: New. |
| * typecheck/rust-hir-type-check-stmt.h: New. |
| * typecheck/rust-hir-type-check-struct-field.h: New. |
| * typecheck/rust-hir-type-check-struct.cc: New. |
| * typecheck/rust-hir-type-check-toplevel.cc: New. |
| * typecheck/rust-hir-type-check-toplevel.h: New. |
| * typecheck/rust-hir-type-check-type.cc: New. |
| * typecheck/rust-hir-type-check-type.h: New. |
| * typecheck/rust-hir-type-check-util.cc: New. |
| * typecheck/rust-hir-type-check-util.h: New. |
| * typecheck/rust-hir-type-check.cc: New. |
| * typecheck/rust-hir-type-check.h: New. |
| * typecheck/rust-tyty-visitor.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * util/rust-canonical-path.h: New. |
| * util/rust-common.h: New. |
| * util/rust-hir-map.cc: New. |
| * util/rust-hir-map.h: New. |
| * util/rust-identifier.h: New. |
| * util/rust-lang-item.h: New. |
| * util/rust-mapping-common.h: New. |
| * util/rust-stacked-contexts.h: New. |
| |
| 2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * util/rust-attributes.cc: New. |
| * util/rust-attributes.h: New. |
| |
| 2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * util/rust-optional-test.cc: New. |
| * util/rust-optional.h: New. |
| |
| 2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * util/rust-base62.cc: New. |
| * util/rust-base62.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * util/rust-abi.cc: New. |
| * util/rust-abi.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * util/fnv-hash.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * util/rust-make-unique.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * hir/rust-ast-lower-base.cc: New. |
| * hir/rust-ast-lower-base.h: New. |
| * hir/rust-ast-lower-block.h: New. |
| * hir/rust-ast-lower-enumitem.h: New. |
| * hir/rust-ast-lower-expr.h: New. |
| * hir/rust-ast-lower-extern.h: New. |
| * hir/rust-ast-lower-implitem.h: New. |
| * hir/rust-ast-lower-item.cc: New. |
| * hir/rust-ast-lower-item.h: New. |
| * hir/rust-ast-lower-pattern.cc: New. |
| * hir/rust-ast-lower-pattern.h: New. |
| * hir/rust-ast-lower-stmt.h: New. |
| * hir/rust-ast-lower-struct-field-expr.h: New. |
| * hir/rust-ast-lower-type.h: New. |
| * hir/rust-ast-lower.cc: New. |
| * hir/rust-ast-lower.h: New. |
| * hir/rust-hir-dump.cc: New. |
| * hir/rust-hir-dump.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * hir/tree/rust-hir-full-decls.h: New. |
| * hir/tree/rust-hir-full-test.cc: New. |
| * hir/tree/rust-hir-full.h: New. |
| * hir/tree/rust-hir-visitor.h: New. |
| * hir/tree/rust-hir.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * hir/tree/rust-hir-expr.h: New. |
| * hir/tree/rust-hir-item.h: New. |
| * hir/tree/rust-hir-path.h: New. |
| * hir/tree/rust-hir-pattern.h: New. |
| * hir/tree/rust-hir-stmt.h: New. |
| * hir/tree/rust-hir-type.h: New. |
| |
| 2022-12-13 Philip Herron <philip.herron@embecosm.com> |
| |
| * resolve/rust-ast-resolve-base.cc: New. |
| * resolve/rust-ast-resolve-base.h: New. |
| * resolve/rust-ast-resolve-expr.cc: New. |
| * resolve/rust-ast-resolve-expr.h: New. |
| * resolve/rust-ast-resolve-implitem.h: New. |
| * resolve/rust-ast-resolve-item.cc: New. |
| * resolve/rust-ast-resolve-item.h: New. |
| * resolve/rust-ast-resolve-path.cc: New. |
| * resolve/rust-ast-resolve-path.h: New. |
| * resolve/rust-ast-resolve-pattern.cc: New. |
| * resolve/rust-ast-resolve-pattern.h: New. |
| * resolve/rust-ast-resolve-stmt.cc: New. |
| * resolve/rust-ast-resolve-stmt.h: New. |
| * resolve/rust-ast-resolve-struct-expr-field.cc: New. |
| * resolve/rust-ast-resolve-struct-expr-field.h: New. |
| * resolve/rust-ast-resolve-toplevel.h: New. |
| * resolve/rust-ast-resolve-type.cc: New. |
| * resolve/rust-ast-resolve-type.h: New. |
| * resolve/rust-ast-resolve.cc: New. |
| * resolve/rust-ast-resolve.h: New. |
| * resolve/rust-ast-verify-assignee.h: New. |
| * resolve/rust-name-resolver.cc: New. |
| * resolve/rust-name-resolver.h: New. |
| |
| 2022-12-13 Arthur Cohen <arthur.cohen@embecosm.com> |
| Philip Herron <philip.herron@embecosm.com> |
| Joel Phillips <simplytheother@gmail.com> |
| |
| * expand/rust-attribute-visitor.cc: New. |
| * expand/rust-attribute-visitor.h: New. |
| * expand/rust-macro-builtins.cc: New. |
| * expand/rust-macro-builtins.h: New. |
| * expand/rust-macro-expand.cc: New. |
| * expand/rust-macro-expand.h: New. |
| * expand/rust-macro-invoc-lexer.cc: New. |
| * expand/rust-macro-invoc-lexer.h: New. |
| * expand/rust-macro-substitute-ctx.cc: New. |
| * expand/rust-macro-substitute-ctx.h: New. |
| |
| 2022-12-13 Joel Phillips <simplytheother@gmail.com> |
| Philip Herron <philip.herron@embecosm.com> |
| Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * parse/rust-parse-impl.h: New, second half. |
| |
| 2022-12-13 Joel Phillips <simplytheother@gmail.com> |
| Philip Herron <philip.herron@embecosm.com> |
| Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * parse/rust-cfg-parser.cc: New. |
| * parse/rust-cfg-parser.h: New. |
| * parse/rust-parse-impl.h: New. |
| * parse/rust-parse.cc: New. |
| * parse/rust-parse.h: New. |
| |
| 2022-12-13 Joel Phillips <simplytheother@gmail.com> |
| Philip Herron <philip.herron@embecosm.com> |
| Arthur Cohen <arthur.cohen@embecosm.com> |
| Mark Wielaard <mark@klomp.org> |
| |
| * lex/rust-codepoint.h: New. |
| * lex/rust-lex.cc: New. |
| * lex/rust-lex.h: New. |
| * lex/rust-token.cc: New. |
| * lex/rust-token.h: New. |
| * rust-buffered-queue.h: New. |
| |
| 2022-12-13 Joel Phillips <simplytheother@gmail.com> |
| Philip Herron <philip.herron@embecosm.com> |
| Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * ast/rust-ast-dump.cc: New. |
| * ast/rust-ast-dump.h: New. |
| * ast/rust-ast-visitor.h: New. |
| * ast/rust-cond-compilation.h: New. |
| |
| 2022-12-13 Joel Phillips <simplytheother@gmail.com> |
| Philip Herron <philip.herron@embecosm.com> |
| |
| * ast/rust-expr.h: New. |
| * ast/rust-macro.h: New. |
| * ast/rust-path.h: New. |
| * ast/rust-pattern.h: New. |
| * ast/rust-stmt.h: New. |
| * ast/rust-type.h: New. |
| |
| 2022-12-13 Joel Phillips <simplytheother@gmail.com> |
| Philip Herron <philip.herron@embecosm.com> |
| |
| * ast/rust-item.h: New. |
| |
| 2022-12-13 Joel Phillips <simplytheother@gmail.com> |
| Philip Herron <philip.herron@embecosm.com> |
| Arthur Cohen <arthur.cohen@embecosm.com> |
| |
| * ast/rust-ast-full-decls.h: New. |
| * ast/rust-ast-full-test.cc: New. |
| * ast/rust-ast-full.h: New. |
| * ast/rust-ast.h: New. |
| * operator.h: New. |
| |
| |
| Copyright (C) 2022-2023 Free Software Foundation, Inc. |
| |
| Copying and distribution of this file, with or without modification, |
| are permitted in any medium without royalty provided the copyright |
| notice and this notice are preserved. |