1*81418a27Smrg2017-12-23 Iain Buclaw <ibuclaw@gdcproject.org> 2*81418a27Smrg 3*81418a27Smrg * intrinsics.def (INTRINSIC_MULUI): Declare. 4*81418a27Smrg 5*81418a27Smrg2017-12-19 Iain Buclaw <ibuclaw@gdcproject.org> 6*81418a27Smrg 7*81418a27Smrg * d-codegen.cc (build_target_expr): Update signature. 8*81418a27Smrg (force_target_expr): New function. 9*81418a27Smrg (build_address): Use force_target_expr to store temporary. 10*81418a27Smrg (d_build_call): Likewise. 11*81418a27Smrg * d-lang.cc (d_gimplify_expr): Likewise. 12*81418a27Smrg * d-tree.h (language_function): Update type for vars_in_scope from 13*81418a27Smrg vec<VarDeclaration*> to vec<tree>. 14*81418a27Smrg (force_target_expr): Declare. 15*81418a27Smrg * decl.cc (DeclVisitor::visit(VarDeclaration)): Put vars with scope 16*81418a27Smrg destructors into a TARGET_EXPR, setting its cleanup. 17*81418a27Smrg (declare_local_var): Don't push vars with scope destructors into the 18*81418a27Smrg function binding level. 19*81418a27Smrg * expr.cc (ExprVisitor::visit(DeclarationExp)): Don't handle scope 20*81418a27Smrg destructors. 21*81418a27Smrg (ExprVisitor::visit(CallExp)): Handle calling constructors using 22*81418a27Smrg temporary objects. 23*81418a27Smrg (build_dtor_list): Remove function. 24*81418a27Smrg (build_expr_dtor): Put result into a CLEANUP_POINT_EXPR if any new 25*81418a27Smrg temporaries needing destruction were added to scope. 26*81418a27Smrg (build_return_dtor): Likewise. 27*81418a27Smrg * toir.cc (add_stmt): Set CLEANUP_POINT_EXPR type as void. 28*81418a27Smrg 29*81418a27Smrg2017-12-19 Iain Buclaw <ibuclaw@gdcproject.org> 30*81418a27Smrg 31*81418a27Smrg * d-attribs.c (attr_noreturn_exclusions): New array. 32*81418a27Smrg (attr_returns_twice_exclusions, attr_const_pure_exclusions): Likewise. 33*81418a27Smrg (attr_inline_exclusions, attr_noinline_exclusions): Likewise. 34*81418a27Smrg (d_langhook_common_attribute_table): Swap affects_identity and handler 35*81418a27Smrg fields. Initialize new member of struct attribute_spec. 36*81418a27Smrg (d_langhook_attribute_table): Likewise. 37*81418a27Smrg (handle_weakref_attribute): Remove function. 38*81418a27Smrg 39*81418a27Smrg2017-12-17 Iain Buclaw <ibuclaw@gdcproject.org> 40*81418a27Smrg 41*81418a27Smrg * d-codegen.cc (stabilize_expr): Handle assignment expressions. 42*81418a27Smrg (get_frame_for_symbol): Adjust the 'this' field of frames of 43*81418a27Smrg overridden interface functions. 44*81418a27Smrg * d-diagnostic.cc (expand_format): Rewrite '%X' format as '%x'. 45*81418a27Smrg * decl.cc (DeclVisitor::visit(ClassDeclaration)): Handle future 46*81418a27Smrg attribute. 47*81418a27Smrg * expr.cc (ExprVisitor::binop_assignment): Ensure RHS is evaluated 48*81418a27Smrg before LHS. 49*81418a27Smrg (ExprVisitor::visit(SliceExp)): Always save lower bounds if upper has 50*81418a27Smrg any side effects. 51*81418a27Smrg * typeinfo.cc (TypeInfoVisitor::TypeInfoClassDeclaration): Use 52*81418a27Smrg ClassDeclaration::isAbstract. 53*81418a27Smrg (TypeInfoVisitor::visit(TypeInfoTupleDeclaration)): Mark internal 54*81418a27Smrg reference as public and hidden. 55*81418a27Smrg 56*81418a27Smrg2017-12-10 Iain Buclaw <ibuclaw@gdcproject.org> 57*81418a27Smrg 58*81418a27Smrg * d-codegen.cc (build_alignment_field): Set DECL_PADDING_P and 59*81418a27Smrg DECL_FIELD_CONTEXT on generated fields. 60*81418a27Smrg (build_struct_literal): Use build_zero_cst to generate padding. 61*81418a27Smrg * decl.cc (build_type_decl): Set public and decl assembler name. 62*81418a27Smrg 63*81418a27Smrg2017-12-10 Iain Buclaw <ibuclaw@gdcproject.org> 64*81418a27Smrg 65*81418a27Smrg * types.cc (TypeVisitor::visit(TypeClass)): Check for duplicate 66*81418a27Smrg declarations before adding method. 67*81418a27Smrg 68*81418a27Smrg2017-12-09 Iain Buclaw <ibuclaw@gdcproject.org> 69*81418a27Smrg 70*81418a27Smrg * expr.cc (ExprVisitor::visit(AddrExp)): Build internal struct literal 71*81418a27Smrg symbol before generating its initializer. 72*81418a27Smrg 73*81418a27Smrg2017-12-09 Iain Buclaw <ibuclaw@gdcproject.org> 74*81418a27Smrg 75*81418a27Smrg * d-lang.cc (d_parse_file): Set first_global_object_name. 76*81418a27Smrg 77*81418a27Smrg2017-12-09 Iain Buclaw <ibuclaw@gdcproject.org> 78*81418a27Smrg 79*81418a27Smrg * lang.opt (fmodule-filepath=): Rename to fmodule-file. 80*81418a27Smrg * d-lang.cc (d_handle_option): Update case for OPT_fmodule_file_. 81*81418a27Smrg 82*81418a27Smrg2017-12-09 Iain Buclaw <ibuclaw@gdcproject.org> 83*81418a27Smrg 84*81418a27Smrg * d-tree.h (CALL_EXPR_ARGS_ORDERED): Define. 85*81418a27Smrg * d-codegen.cc (d_build_call): Set CALL_EXPR_ARGS_ORDERED for 86*81418a27Smrg functions with D linkage. 87*81418a27Smrg * d-lang.cc (d_gimplify_expr): Handle CALL_EXPR_ARGS_ORDERED. 88*81418a27Smrg 89*81418a27Smrg2017-12-09 Eugene Wissner <belka@caraus.de> 90*81418a27Smrg 91*81418a27Smrg * toir.cc (IRVisitor::visit(SwitchStatement)): Set SWITCH_ALL_CASES_P on 92*81418a27Smrg switch statements. Set SWITCH_BREAK_LABEL_P on the artificial label 93*81418a27Smrg created for break statements from a switch. 94*81418a27Smrg 95*81418a27Smrg2017-12-04 Eugene Wissner <belka@caraus.de> 96*81418a27Smrg 97*81418a27Smrg * toir.cc (IRVisitor::visit(SwitchStatement)): Build SWITCH_EXPR using build2 instead 98*81418a27Smrg of build3. 99*81418a27Smrg 100*81418a27Smrg2017-11-14 Eugene Wissner <belka@caraus.de> 101*81418a27Smrg 102*81418a27Smrg * decl.cc (finish_thunk): Drop frequency argument from 103*81418a27Smrg symbol_table::create_edge. 104*81418a27Smrg * d-lang.cc (d_post_options): Set default value of 105*81418a27Smrg -Wreturn-type to false. 106*81418a27Smrg 107*81418a27Smrg2017-11-11 Iain Buclaw <ibuclaw@gdcproject.org> 108*81418a27Smrg 109*81418a27Smrg * d-codegen.cc (build_float_cst): Remove float rounding check. 110*81418a27Smrg * d-longdouble.cc (longdouble::to_int): Don't round floats before int 111*81418a27Smrg conversion. 112*81418a27Smrg * expr.cc (ExprVisitor::binary_op): Handle excess precision. 113*81418a27Smrg (ExprVisitor::visit(NegExp)): Likwise. 114*81418a27Smrg 115*81418a27Smrg2017-10-31 Iain Buclaw <ibuclaw@gdcproject.org> 116*81418a27Smrg 117*81418a27Smrg * d-codegen.cc (build_address): Store CST nodes into a TARGET_EXPR 118*81418a27Smrg before taking its address. 119*81418a27Smrg 120*81418a27Smrg2017-10-08 Iain Buclaw <ibuclaw@gdcproject.org> 121*81418a27Smrg 122*81418a27Smrg * Make-lang.in (D_FRONTEND_OBJS): Remove newdelete.o. 123*81418a27Smrg * d-incpath.cc (add_globalpaths): Handle NULL target path. 124*81418a27Smrg 125*81418a27Smrg2017-10-01 Iain Buclaw <ibuclaw@gdcproject.org> 126*81418a27Smrg 127*81418a27Smrg * typeinfo.cc (TypeInfoVisitor::visit(TypeInfoClassDeclaration)): 128*81418a27Smrg Properly check base classes for pointers. 129*81418a27Smrg 130*81418a27Smrg2017-09-28 Iain Buclaw <ibuclaw@gdcproject.org> 131*81418a27Smrg 132*81418a27Smrg * expr.cc (ExprVisitor::visit(StringExp)): Add extra null terminator 133*81418a27Smrg onto string type, not the literal. 134*81418a27Smrg 135*81418a27Smrg2017-09-26 Iain Buclaw <ibuclaw@gdcproject.org> 136*81418a27Smrg 137*81418a27Smrg * types.cc (make_array_type): Move checking of void static arrays 138*81418a27Smrg here. 139*81418a27Smrg 140*81418a27Smrg2017-09-24 Iain Buclaw <ibuclaw@gdcproject.org> 141*81418a27Smrg 142*81418a27Smrg * d-attribs.c: Add include for attribs.h. 143*81418a27Smrg * d-codegen.cc (copy_aggregate_type): Remove TYPE_METHODS. 144*81418a27Smrg (lower_struct_comparison): Use opt_scalar_int_mode. 145*81418a27Smrg * d-target.cc (Target::_init): Use TYPE_MAX_VALUE instead of 146*81418a27Smrg TYPE_MAXVAL. 147*81418a27Smrg (Target::isVectorTypeSupported): Update call to 148*81418a27Smrg scalar_mode_supported_p. 149*81418a27Smrg * decl.cc (DeclVisitor::visit(Import)): Pass false as new argument to 150*81418a27Smrg the imported_module_or_decl hook. 151*81418a27Smrg * types.cc (TypeVisitor::visit(TypeClass)): Remove TYPE_METHODS. 152*81418a27Smrg 153*81418a27Smrg2017-09-14 Iain Buclaw <ibuclaw@gdcproject.org> 154*81418a27Smrg 155*81418a27Smrg * Make-lang.in (D_FRONTEND_OBJS): Add blockexit.o, initsem.o, 156*81418a27Smrg inlinecost.o, safe.o, staticcond.o, and typesem.o. 157*81418a27Smrg * d-attribs.c (uda_attribute_p): Use get_identifier to compare 158*81418a27Smrg strings. 159*81418a27Smrg (build_attributes): Handle empty string expressions. 160*81418a27Smrg * d-builtins.cc (build_frontend_type): Use static create methods to 161*81418a27Smrg 'new' front-end types, expressions, and declarations. 162*81418a27Smrg (d_eval_constant_expression): Likewise. 163*81418a27Smrg (build_alias_declaration): Likewise. 164*81418a27Smrg (d_build_builtins_module): Likewise. 165*81418a27Smrg * d-codegen.cc (declaration_type): Likewise. 166*81418a27Smrg (type_passed_as): Likewise. 167*81418a27Smrg (get_frame_for_symbol): Remove dependency on id.h. 168*81418a27Smrg (get_frameinfo): Don't overwrite FRAMEINFO_CREATES_FRAME if function 169*81418a27Smrg has nested frame references. 170*81418a27Smrg * d-convert.cc (convert_for_assignment): Allow static arrays to be 171*81418a27Smrg initialized with a zero integer value. 172*81418a27Smrg * d-frontend.cc (genCmain): Remove dependency on id.h. 173*81418a27Smrg * d-frontend.h (initializerToExpression): Add declaration. 174*81418a27Smrg (gendocfile): Add declaration. 175*81418a27Smrg (initTraitsStringTable): Remove. 176*81418a27Smrg * d-lang.cc (deps_write): Remove dependency on id.h. 177*81418a27Smrg (deps_add_target): Don't call StringTables's destructor. 178*81418a27Smrg (d_init): Remove calls to deleted front-end initialize functions. 179*81418a27Smrg * decl.cc (DeclVisitor::visit(PragmaDeclaration)): Remove dependency 180*81418a27Smrg on id.h. 181*81418a27Smrg (DeclVisitor::visit(VarDeclaration)): Call initializerToExpression to 182*81418a27Smrg get the initializer of decl. 183*81418a27Smrg (build_decl_tree): Remove dependency on id.h. 184*81418a27Smrg (layout_class_initializer): Use static create method to 'new' 185*81418a27Smrg front-end expression. 186*81418a27Smrg * expr.cc (ExprVisitor::visit(AssignExp)): Handle static array 187*81418a27Smrg assignment where RHS is integer zero. 188*81418a27Smrg (ExprVisitor::visit(VarExp)): Remove dependency on id.h. 189*81418a27Smrg (ExprVisitor::visit(StringExp)): Handle empty string expressions. 190*81418a27Smrg * modules.cc (get_internal_fn): Use FuncDeclaration::genCfunc to 191*81418a27Smrg create function decl. 192*81418a27Smrg (build_module_tree): Remove dependency on id.h. 193*81418a27Smrg * toir.cc (IRVisitor::visit(ExtAsmStatement)): Handle empty string 194*81418a27Smrg expressions. 195*81418a27Smrg * typeinfo.cc (make_frontend_typeinfo): Use static create methods to 196*81418a27Smrg 'new' front-end declarations. 197*81418a27Smrg (create_tinfo_types): Remove dependency on id.h. 198*81418a27Smrg (get_cpp_typeinfo_decl): Likewise. 199*81418a27Smrg (create_typeinfo): Likewise. 200*81418a27Smrg 201*81418a27Smrg2017-08-23 Johannes Pfau <johannespfau@gmail.com> 202*81418a27Smrg 203*81418a27Smrg * typeinfo.cc (TypeInfoVisitor::visit(TypeInfoStructDeclaration)): Do 204*81418a27Smrg not send member functions to backend here. 205*81418a27Smrg 206*81418a27Smrg2017-08-19 Iain Buclaw <ibuclaw@gdcproject.org> 207*81418a27Smrg 208*81418a27Smrg * d-convert.cc (convert_expr): Use build_zero_cst for casts from 209*81418a27Smrg typeof(null). 210*81418a27Smrg 211*81418a27Smrg2017-08-13 Iain Buclaw <ibuclaw@gdcproject.org> 212*81418a27Smrg 213*81418a27Smrg * d-target.cc (Target::isVectorOpSupported): Disallow vectors in 214*81418a27Smrg conditional and logical operators. 215*81418a27Smrg 216*81418a27Smrg2017-08-08 Iain Buclaw <ibuclaw@gdcproject.org> 217*81418a27Smrg 218*81418a27Smrg * intrinsics.cc (maybe_expand_intrinsic): Handle isNaN(), isInfinity() 219*81418a27Smrg and isFinite() intrinsics. 220*81418a27Smrg * intrinsics.def: Add INTRINSIC_ISNAN, INTRINSIC_ISINFINITY, and 221*81418a27Smrg INTRINSIC_ISFINITE. 222*81418a27Smrg 223*81418a27Smrg2017-08-08 Iain Buclaw <ibuclaw@gdcproject.org> 224*81418a27Smrg 225*81418a27Smrg * intrinsics.cc (expand_intrinsic_popcnt): New function. 226*81418a27Smrg (maybe_expand_intrinsic): Handle INTRINSIC_POPCNT. 227*81418a27Smrg * intrinsics.def (INTRINSIC_POPCNT): Declare. 228*81418a27Smrg 229*81418a27Smrg2017-08-06 Iain Buclaw <ibuclaw@gdcproject.org> 230*81418a27Smrg 231*81418a27Smrg * d-frontend.cc (isBuiltin): Remove restriction on builtins. 232*81418a27Smrg (eval_builtin): Check DECL_INTRINSIC_CODE. 233*81418a27Smrg * d-tree.h (intrinsic_code): Add enum declaration. 234*81418a27Smrg (lang_decl): Add intrinsic field. 235*81418a27Smrg (DECL_INTRINSIC_CODE): New macro. 236*81418a27Smrg (DECL_BUILT_IN_CTFE): New macro. 237*81418a27Smrg * decls.cc (get_symbol_decl): Initialize DECL_INTRINSIC_CODE. 238*81418a27Smrg * intrinsics.cc (intrinsic_decl): Add ctfeonly field. 239*81418a27Smrg (maybe_set_intrinsic): Set frontend builtin flag only if the function 240*81418a27Smrg is CTFE-able. Set BUILT_IN_FRONTEND if function has no body. 241*81418a27Smrg (clear_intrinsic_flag): Clear DECL_INTRINSIC_CODE instead of frontend 242*81418a27Smrg builtin flag. 243*81418a27Smrg (maybe_expand_intrinsic): Handle INTRINSIC_TAN intrinsics. 244*81418a27Smrg Call clear_intrinsic_flag on CTFE built-ins if semantic has finished. 245*81418a27Smrg * intrinsics.def: Add INTRINSIC_TAN. 246*81418a27Smrg (DEF_D_BUILTIN): New macro. 247*81418a27Smrg (DEF_CTFE_BUILTIN): New macro. 248*81418a27Smrg 249*81418a27Smrg2017-08-06 Iain Buclaw <ibuclaw@gdcproject.org> 250*81418a27Smrg 251*81418a27Smrg * decl.cc (DeclVisitor::visit): Don't set input_location. 252*81418a27Smrg (build_decl_tree): Handle set and restore of input_location. 253*81418a27Smrg (declare_local_var): Don't set input_location. 254*81418a27Smrg * expr.cc (build_expr): Handle set and restore of input_location. 255*81418a27Smrg * imports.cc (build_import_decl): Likewise. 256*81418a27Smrg * modules.cc (get_dso_registry_fn): Use UNKNOWN_LOCATION for 257*81418a27Smrg declaration of _d_dso_registry. 258*81418a27Smrg * runtime.cc (build_libcall_decl): Use UNKNOWN_LOCATION for 259*81418a27Smrg declaration of library functions. 260*81418a27Smrg * toir.cc (IRVisitor::visit): Don't set input_location. 261*81418a27Smrg (IRVisitor::build_stmt): New function. 262*81418a27Smrg (IRVisitor::do_jump): Update signature. 263*81418a27Smrg (build_function_body): Use IRVisitor::build_stmt. 264*81418a27Smrg * typeinfo.cc (layout_classinfo_interfaces): Don't set input_location. 265*81418a27Smrg * types.cc (layout_aggregate_members): Likewise. 266*81418a27Smrg (layout_aggregate_type): Likewise. 267*81418a27Smrg 268*81418a27Smrg2017-08-05 Iain Buclaw <ibuclaw@gdcproject.org> 269*81418a27Smrg 270*81418a27Smrg * d-codegen.cc (build_boolop): Handle VECTOR_TYPE comparisons. 271*81418a27Smrg * d-target.cc (Target::checkVectorType): Rename to 272*81418a27Smrg Target::isVectorTypeSupported. 273*81418a27Smrg (Target::isVectorOpSupported): New function. 274*81418a27Smrg * expr.cc (ExprVisitor::visit(IdentityExp)): Don't memcmp floating 275*81418a27Smrg point vectors. 276*81418a27Smrg (ExprVisitor::visit(CmpExp)): Handle always true or always false 277*81418a27Smrg vector comparisons. 278*81418a27Smrg 279*81418a27Smrg2017-08-02 Iain Buclaw <ibuclaw@gdcproject.org> 280*81418a27Smrg 281*81418a27Smrg * typeinfo.cc (SpeculativeTypeVisitor::visit(TypeClass)): Don't emit 282*81418a27Smrg typeinfo for speculative class types. 283*81418a27Smrg 284*81418a27Smrg2017-07-29 Iain Buclaw <ibuclaw@gdcproject.org> 285*81418a27Smrg 286*81418a27Smrg * d-lang.cc (build_lang_decl): Handle compiler generated typeinfo that 287*81418a27Smrg also appear in code. 288*81418a27Smrg * d-tree.h (lang_identifier): Add decl_tree. 289*81418a27Smrg (IDENTIFIER_DECL_TREE): New macro. 290*81418a27Smrg * decl.cc (declare_extern_var): Re-use already generated decl if 291*81418a27Smrg called with the same identifier twice. 292*81418a27Smrg 293*81418a27Smrg2017-07-29 Iain Buclaw <ibuclaw@gdcproject.org> 294*81418a27Smrg 295*81418a27Smrg * decl.cc (d_finish_decl): Replace ENABLE_TREE_CHECKING macro with 296*81418a27Smrg flag_checking. 297*81418a27Smrg 298*81418a27Smrg2017-07-28 Iain Buclaw <ibuclaw@gdcproject.org> 299*81418a27Smrg 300*81418a27Smrg * d-tree.h (D_DECL_ONE_ONLY): Remove macro accessor. 301*81418a27Smrg * decl.cc (DeclVisitor::visit(StructDeclaration)): Move call to 302*81418a27Smrg d_comdat_linkage here. 303*81418a27Smrg (DeclVisitor::visit(ClassDeclaration)): Likewise. 304*81418a27Smrg (DeclVisitor::visit(InterfaceDeclaration)): Likewise. 305*81418a27Smrg (DeclVisitor::visit(EnumDeclaration)): Likewise. 306*81418a27Smrg (get_symbol_decl): Move call to mark_needed here. 307*81418a27Smrg (declare_extern_var): Mark compiler generated symbols as needed. 308*81418a27Smrg (make_thunk): Remove copy of D_DECL_ONE_ONLY. 309*81418a27Smrg (get_vtable_decl): Don't call d_comdat_linkage. 310*81418a27Smrg (aggregate_initializer_decl): Likewise. 311*81418a27Smrg (enum_initializer_decl): Likewise. 312*81418a27Smrg * modules.cc (d_finish_compilation): Don't call mark_needed. 313*81418a27Smrg * typeinfo.cc (get_classinfo_decl): Don't call d_comdat_linkage. 314*81418a27Smrg 315*81418a27Smrg2017-07-28 Iain Buclaw <ibuclaw@gdcproject.org> 316*81418a27Smrg 317*81418a27Smrg * d-spec.c (lang_specific_driver): Always add `-o' option when 318*81418a27Smrg compiling D sources. 319*81418a27Smrg 320*81418a27Smrg2017-07-28 Iain Buclaw <ibuclaw@gdcproject.org> 321*81418a27Smrg 322*81418a27Smrg * d-frontend.cc (genCmain): Don't error if entrypoint not found. 323*81418a27Smrg 324*81418a27Smrg2017-07-18 Iain Buclaw <ibuclaw@gdcproject.org> 325*81418a27Smrg 326*81418a27Smrg * d-lang.cc (d_types_compatible_p): Check that both types are 327*81418a27Smrg RECORD_TYPE before using record-specific flag comparison. 328*81418a27Smrg 329*81418a27Smrg2017-07-15 Iain Buclaw <ibuclaw@gdcproject.org> 330*81418a27Smrg 331*81418a27Smrg * d-builtins.cc (d_build_d_type_nodes): Set TYPE_DYNAMIC_ARRAY on 332*81418a27Smrg array_type_node. 333*81418a27Smrg * d-codegen.cc (build_delegate_cst): Set TYPE_DELEGATE on internal 334*81418a27Smrg delegate constant types. 335*81418a27Smrg * d-frontend.h (cppTypeInfoMangle): Remove declaration. 336*81418a27Smrg (toCppMangleItanium): Add declaration. 337*81418a27Smrg (cppTypeInfoMangleItanium): Add declaration. 338*81418a27Smrg * d-lang.cc (d_types_compatible_p): Use type flags to determine 339*81418a27Smrg compatibility. Return false instead of doing size comparison. 340*81418a27Smrg * d-target.cc (Target::toCppMangle): New function. 341*81418a27Smrg (Target::cppTypeInfoMangle): New function. 342*81418a27Smrg (Target::cppTypeMangle): New function. 343*81418a27Smrg (Target::systemLinkage): New function. 344*81418a27Smrg * d-tree.h (TYPE_DYNAMIC_ARRAY): New macro. 345*81418a27Smrg (TYPE_DELEGATE): New macro. 346*81418a27Smrg (TYPE_ASSOCIATIVE_ARRAY): New macro. 347*81418a27Smrg * typeinfo.cc (layout_cpp_typeinfo): Use Target::cppTypeInfoMangle. 348*81418a27Smrg * types.cc (TypeVisitor::visit(TypeDArray)): Set TYPE_DYNAMIC_ARRAY. 349*81418a27Smrg (TypeVisitor::visit(TypeAArray)): Set TYPE_ASSOCIATIVE_ARRAY. 350*81418a27Smrg (TypeVisitor::visit(TypeDelegate)): Set TYPE_DELEGATE. 351*81418a27Smrg 352*81418a27Smrg2017-07-11 Iain Buclaw <ibuclaw@gdcproject.org> 353*81418a27Smrg 354*81418a27Smrg * d-target.cc (Target::loadModule): Check module identifier if a 355*81418a27Smrg declaration doesn't exist. 356*81418a27Smrg * typeinfo.cc (make_frontend_typeinfo): Use module location instead if 357*81418a27Smrg a declaration doesn't exist. 358*81418a27Smrg 359*81418a27Smrg2017-06-28 Iain Buclaw <ibuclaw@gdcproject.org> 360*81418a27Smrg 361*81418a27Smrg * d-frontend.cc (CTFloat::hash): New function. 362*81418a27Smrg 363*81418a27Smrg2017-06-25 Iain Buclaw <ibuclaw@gdcproject.org> 364*81418a27Smrg 365*81418a27Smrg * d-codegen.cc (d_array_string): Remove function. 366*81418a27Smrg (d_assert_call): Inline implementation of d_array_string here. 367*81418a27Smrg * d-tree.h (d_array_string): Remove declaration. 368*81418a27Smrg * typeinfo.cc (TypeInfoVisitor::layout_string): New function. 369*81418a27Smrg (TypeInfoVisitor::visit): Update calls to d_array_string to use 370*81418a27Smrg layout_string instead. 371*81418a27Smrg 372*81418a27Smrg2017-06-25 Iain Buclaw <ibuclaw@gdcproject.org> 373*81418a27Smrg 374*81418a27Smrg * toir.cc (IRVisitor::visit(ExtAsmStatement)): Set ASM_VOLATILE_P only 375*81418a27Smrg if statement is not marked with pure attribute. 376*81418a27Smrg 377*81418a27Smrg2017-06-25 Iain Buclaw <ibuclaw@gdcproject.org> 378*81418a27Smrg 379*81418a27Smrg * d-lang.cc (d_parse_file): Print all predefined version identifiers 380*81418a27Smrg if verbose. 381*81418a27Smrg 382*81418a27Smrg2017-06-24 Iain Buclaw <ibuclaw@gdcproject.org> 383*81418a27Smrg 384*81418a27Smrg * d-frontend.cc (Global::_init): Remove memset for global.params. 385*81418a27Smrg 386*81418a27Smrg2017-06-24 Iain Buclaw <ibuclaw@gdcproject.org> 387*81418a27Smrg 388*81418a27Smrg * Make-lang.in (D_ALL_OBJS): Add D_TARGET_OBJS. 389*81418a27Smrg * d-builtins.cc (d_add_builtin_version): Move here from d-lang.cc. 390*81418a27Smrg (d_init_versions): New function. 391*81418a27Smrg * d-lang.cc (d_init): Call d_init_versions. 392*81418a27Smrg * d-target-def.h: New file. 393*81418a27Smrg * d-target.cc (Target::critsecsize): Replace with call to 394*81418a27Smrg targetdm.critsec_size. 395*81418a27Smrg * d-target.def: New file. 396*81418a27Smrg * d-target.h: New file. 397*81418a27Smrg * d-tree.h (d_init_versions): Add declaration. 398*81418a27Smrg 399*81418a27Smrg2017-06-20 Iain Buclaw <ibuclaw@gdcproject.org> 400*81418a27Smrg 401*81418a27Smrg * expr.cc (ExprVisitor::visit(BinAssignExp)): Strip promotions from 402*81418a27Smrg both signed and unsigned rshift assignments. 403*81418a27Smrg 404*81418a27Smrg2017-06-17 Iain Buclaw <ibuclaw@gdcproject.org> 405*81418a27Smrg 406*81418a27Smrg * d-diagnostic.cc (expand_format): New function. 407*81418a27Smrg (d_diagnostic_report_diagnostic): New function. 408*81418a27Smrg (error, verror): Update format attributes. Use function 409*81418a27Smrg d_diagnostic_report_diagnostic instead of xvasprintf. 410*81418a27Smrg (errorSupplemental, verrorSupplemental): Likewise. 411*81418a27Smrg (warning, vwarning): Likewise. 412*81418a27Smrg (warningSupplemental, vwarningSupplemental): Likewise. 413*81418a27Smrg (deprecation, vdeprecation): Likewise. 414*81418a27Smrg (deprecationSupplemental, vdeprecationSupplemental): Likewise. 415*81418a27Smrg 416*81418a27Smrg2017-06-15 Iain Buclaw <ibuclaw@gdcproject.org> 417*81418a27Smrg 418*81418a27Smrg * expr.cc (ExprVisitor::visit(AssertExp)): Don't call invariant on 419*81418a27Smrg interface objects. 420*81418a27Smrg 421*81418a27Smrg2017-06-12 Iain Buclaw <ibuclaw@gdcproject.org> 422*81418a27Smrg 423*81418a27Smrg * expr.cc (ExprVisitor::visit(DelegateExp)): Convert object to right 424*81418a27Smrg type before using it. 425*81418a27Smrg 426*81418a27Smrg2017-06-12 Iain Buclaw <ibuclaw@gdcproject.org> 427*81418a27Smrg 428*81418a27Smrg * d-decls.cc (get_decl_tree): Find the first parent member function 429*81418a27Smrg before constructing non-local `this' decl. 430*81418a27Smrg 431*81418a27Smrg2017-06-10 Iain Buclaw <ibuclaw@gdcproject.org> 432*81418a27Smrg 433*81418a27Smrg * d-builtins.cc (build_frontend_type): Allow all vector types to be 434*81418a27Smrg included in builtins module. 435*81418a27Smrg 436*81418a27Smrg2017-06-09 Iain Buclaw <ibuclaw@gdcproject.org> 437*81418a27Smrg 438*81418a27Smrg * types.cc (TypeVisitor::visit(TypeStruct)): Let struct alignment 439*81418a27Smrg override the alignsize. 440*81418a27Smrg 441*81418a27Smrg2017-06-09 Iain Buclaw <ibuclaw@gdcproject.org> 442*81418a27Smrg 443*81418a27Smrg * d-codegen.cc (d_decl_context): Use origin template declaration as 444*81418a27Smrg context for instantiated type symbols. 445*81418a27Smrg 446*81418a27Smrg2017-06-08 Iain Buclaw <ibuclaw@gdcproject.org> 447*81418a27Smrg 448*81418a27Smrg * d-attribs.c (d_handle_weak_attribute): Use quoted string format. 449*81418a27Smrg * decls.cc (finish_thunk): Update call to create_edge for new API. 450*81418a27Smrg 451*81418a27Smrg2017-06-08 Iain Buclaw <ibuclaw@gdcproject.org> 452*81418a27Smrg 453*81418a27Smrg * expr.cc (ExprVisitor::visit(StringExp)): Create string type that is 454*81418a27Smrg same length as string value literal. 455*81418a27Smrg 456*81418a27Smrg2017-05-27 Iain Buclaw <ibuclaw@gdcproject.org> 457*81418a27Smrg 458*81418a27Smrg * Make-lang.in (D_FRONTEND_OBJS): Rename object.o to rootobject.o. 459*81418a27Smrg 460*81418a27Smrg2017-05-26 Iain Buclaw <ibuclaw@gdcproject.org> 461*81418a27Smrg 462*81418a27Smrg * decl.cc: Remove include for dumpfile.h. 463*81418a27Smrg (finish_function): Use dump_function to for dumping original ASTs. 464*81418a27Smrg 465*81418a27Smrg2017-05-24 Iain Buclaw <ibuclaw@gdcproject.org> 466*81418a27Smrg 467*81418a27Smrg * config-lang.in (gtfiles): Add typeinfo.cc. 468*81418a27Smrg * d-codegen.cc (d_build_call_list): Remove function. 469*81418a27Smrg (d_build_call_nary): Remove function. 470*81418a27Smrg (build_binary_op): Remove function. 471*81418a27Smrg (build_binop_assignment): Remove function. 472*81418a27Smrg (build_vthis_type): Rename to build_vthis_function. 473*81418a27Smrg (create_field_decl): Move to decl.cc. 474*81418a27Smrg * d-lang.cc (genCmain): Moved to d-frontend.cc. 475*81418a27Smrg (builtin_modules): Declare static. 476*81418a27Smrg (d_add_builtin_module): New function. 477*81418a27Smrg (d_add_entrypoint_module): New function. 478*81418a27Smrg * expr.cc (ExprVisitor::binary_op): New function. 479*81418a27Smrg (ExprVisitor::binop_assignment): New function. 480*81418a27Smrg * intrinsic.cc (expand_intrinsic): Rename to maybe_expand_intrinsic. 481*81418a27Smrg * runtime.cc (build_libcall): Updated signature. 482*81418a27Smrg * types.cc (make_two_field_type): Remove function. 483*81418a27Smrg (make_struct_type): New function. 484*81418a27Smrg 485*81418a27Smrg2017-05-22 Iain Buclaw <ibuclaw@gdcproject.org> 486*81418a27Smrg 487*81418a27Smrg * Make-lang.in (D_OBJS): Add intrinsics.o and runtime.o. 488*81418a27Smrg * d-codegen.h: Remove file. 489*81418a27Smrg * intrinsics.cc: New file. 490*81418a27Smrg * runtime.cc: New file. 491*81418a27Smrg 492*81418a27Smrg2017-05-21 Iain Buclaw <ibuclaw@gdcproject.org> 493*81418a27Smrg 494*81418a27Smrg * d-codegen.cc: Remove include for d-dmd-gcc.h. 495*81418a27Smrg * d-dmd-gcc.h: Rename to d-frontend.h. Update all includes. 496*81418a27Smrg * d-frontend.cc (Global::_init): Remove unnecessary initialization. 497*81418a27Smrg * expr.cc: Remove include for d-dmd-gcc.h. 498*81418a27Smrg 499*81418a27Smrg2017-05-21 Iain Buclaw <ibuclaw@gdcproject.org> 500*81418a27Smrg 501*81418a27Smrg * d-attribs.c (handle_sentinel_attribute): Remove function. 502*81418a27Smrg (ignore_attribute): Remove function. 503*81418a27Smrg (d_langhook_common_attribute_table): Remove sentinel and tm regparm 504*81418a27Smrg from common attribute table. 505*81418a27Smrg (d_langhook_format_attribute_table): Remove variable. 506*81418a27Smrg * d-lang.cc (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): Remove macro. 507*81418a27Smrg (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Remove macro. 508*81418a27Smrg (d_post_options): Don't set flag_unit_at_a_time. 509*81418a27Smrg (d_nametype): Remove function. 510*81418a27Smrg * types.cc (TypeVisitor::visit(TypeBasic)): Set TYPE_NAME. 511*81418a27Smrg (TypeVisitor::visit(TypeVector)): Likewise. 512*81418a27Smrg 513*81418a27Smrg2017-05-20 Iain Buclaw <ibuclaw@gdcproject.org> 514*81418a27Smrg 515*81418a27Smrg * Make-lang.in (D_OBJS): Remove d-objfile.o. Add modules.o. 516*81418a27Smrg * d-codegen.cc (get_linemap): Move function here. 517*81418a27Smrg * d-objfile.cc: Remove file. 518*81418a27Smrg * d-objfile.h: Remove header. 519*81418a27Smrg * d-tree.h (GDC_PREFIX): New macro. 520*81418a27Smrg * decl.cc (make_internal_name): Rename to mangle_internal_decl. 521*81418a27Smrg (DeclVisitor): Move class here. 522*81418a27Smrg (gcc_attribute_p): Move function here. 523*81418a27Smrg (build_decl_tree): Likewise. 524*81418a27Smrg (d_finish_decl): Likewise. 525*81418a27Smrg (start_function): Likewise. 526*81418a27Smrg (finish_function): Likewise. 527*81418a27Smrg (mark_needed): Likewise. 528*81418a27Smrg (base_vtable_offset): Likewise. 529*81418a27Smrg (build_artificial_decl): Likewise. 530*81418a27Smrg (build_type_decl): Likewise. 531*81418a27Smrg (d_comdat_group): Likewise. 532*81418a27Smrg (d_comdat_linkage): Likewise. 533*81418a27Smrg (add_moduleinfo_field): Move to modules.cc 534*81418a27Smrg (layout_moduleinfo_fields): Likewise. 535*81418a27Smrg (get_moduleinfo_decl): Likewise. 536*81418a27Smrg * modules.cc: New file. 537*81418a27Smrg 538*81418a27Smrg2017-05-10 Iain Buclaw <ibuclaw@gdcproject.org> 539*81418a27Smrg 540*81418a27Smrg * imports.cc (ImportVisitor::visit(Import)): New function. 541*81418a27Smrg 542*81418a27Smrg2017-05-06 Iain Buclaw <ibuclaw@gdcproject.org> 543*81418a27Smrg 544*81418a27Smrg * d-objfile.cc (DeclVisitor::visit(Module)): Set input_location before 545*81418a27Smrg walking module members. 546*81418a27Smrg (get_linemap): Return input_location if no filename set. 547*81418a27Smrg (set_input_location): Remove function. Update all callers to set 548*81418a27Smrg input_location directly. 549*81418a27Smrg (set_decl_location): Remove function. Update all callers to pass 550*81418a27Smrg get_linemap to build_decl, or use input_location. 551*81418a27Smrg * types.cc (insert_aggregate_field): Update signature. 552*81418a27Smrg 553*81418a27Smrg2017-04-30 Iain Buclaw <ibuclaw@gdcproject.org> 554*81418a27Smrg 555*81418a27Smrg * d-objfile.cc (start_function): Update signature. 556*81418a27Smrg (finish_function): Update signature. 557*81418a27Smrg (DeclVisitor::visit(FuncDeclaration)): Move function construction to 558*81418a27Smrg start_function. Move function finalization to finish_function. 559*81418a27Smrg (set_function_end_locus): Remove function. 560*81418a27Smrg (d_finish_function): Remove function. 561*81418a27Smrg (build_simple_function_decl): Don't set frontend body. 562*81418a27Smrg (build_simple_function): Update signature. Use start/finish function 563*81418a27Smrg to compile the body. 564*81418a27Smrg (emit_dso_registry_cdtor): Likewise. 565*81418a27Smrg * expr.cc (ExprVisitor::visit(WrappedExp)): Remove function. 566*81418a27Smrg 567*81418a27Smrg2017-04-29 Iain Buclaw <ibuclaw@gdcproject.org> 568*81418a27Smrg 569*81418a27Smrg * d-diagnostic.cc (verror): Use xvasprintf. 570*81418a27Smrg (verrorSupplemental): Likewise. 571*81418a27Smrg (vwarning): Likewise. 572*81418a27Smrg (vwarningSupplemental): Likewise. 573*81418a27Smrg (vdeprecation): Likewise. 574*81418a27Smrg (vdeprecationSupplemental): Likewise. 575*81418a27Smrg 576*81418a27Smrg2017-04-24 Iain Buclaw <ibuclaw@gdcproject.org> 577*81418a27Smrg 578*81418a27Smrg * d-tree.h (d_tree_index): Add DTI_VTABLE_ENTRY_TYPE, 579*81418a27Smrg DTI_VTBL_INTERFACE_TYPE, DTI_ARRAY_TYPE, and DTI_NULL_ARRAY. 580*81418a27Smrg (vtable_entry_type): New macro. 581*81418a27Smrg (vtbl_interface_type_node): New macro. 582*81418a27Smrg (array_type_node): New macro. 583*81418a27Smrg (null_array_node): New macro. 584*81418a27Smrg * d-builtins.cc (d_build_d_type_nodes): Initialize new trees. 585*81418a27Smrg * d-codegen.cc (build_struct_literal): Allow NULL index when 586*81418a27Smrg looking for next field to initialize. 587*81418a27Smrg (copy_aggregate_type): New function. 588*81418a27Smrg * d-target.cc (Target::loadModule): Look for object module, 589*81418a27Smrg call create_tinfo_types. 590*81418a27Smrg * decl.cc (TypeInfoDeclVisitor): Move to typeinfo.cc. 591*81418a27Smrg (get_typeinfo_decl): Likewise. 592*81418a27Smrg (copy_struct): Remove function. Updated callers to use 593*81418a27Smrg copy_aggregate_type. 594*81418a27Smrg (layout_classinfo_interfaces): Move to typeinfo.cc. 595*81418a27Smrg (get_classinfo_decl): Likewise. 596*81418a27Smrg (get_cpp_typeinfo_decl): Likewise. 597*81418a27Smrg * typeinfo.cc (tinfo_kind): New enum. 598*81418a27Smrg (tinfo_types): New static variable. 599*81418a27Smrg (get_typeinfo_kind): New function. 600*81418a27Smrg (make_internal_typeinfo): New function. 601*81418a27Smrg (make_frontend_typeinfo): New function. 602*81418a27Smrg (create_tinfo_types): New function. 603*81418a27Smrg (TypeInfoVisitor::set_field): Remove function. 604*81418a27Smrg Update all callers to use layout_field. 605*81418a27Smrg (TypeInfoVisitor::layout_vtable): Remove function. 606*81418a27Smrg Update all callers to use layout_base. 607*81418a27Smrg (TypeInfoVisitor::layout_field): New function. 608*81418a27Smrg (TypeInfoVisitor::layout_base): New function. 609*81418a27Smrg (builtin_typeinfo_p): New function. 610*81418a27Smrg (genTypeInfo): Rename to create_typeinfo. 611*81418a27Smrg (isSpeculativeType): Rename to speculative_type_p. 612*81418a27Smrg 613*81418a27Smrg2017-04-23 Iain Buclaw <ibuclaw@gdcproject.org> 614*81418a27Smrg 615*81418a27Smrg * d-tree.h (d_function_chain): Declare macro. Update all uses of 616*81418a27Smrg `cfun->language' to use it. 617*81418a27Smrg 618*81418a27Smrg2017-04-22 Iain Buclaw <ibuclaw@gdcproject.org> 619*81418a27Smrg 620*81418a27Smrg * d-decls.cc: Rename to decl.cc. 621*81418a27Smrg (get_symbol_decl): Handle typeinfo declarations. 622*81418a27Smrg (declare_extern_var): New function. 623*81418a27Smrg (declare_local_var): New function. 624*81418a27Smrg (get_moduleinfo_decl): Call declare_extern_var. 625*81418a27Smrg (get_classinfo_decl): Likewise. 626*81418a27Smrg (get_vtable_decl): Likewise. 627*81418a27Smrg (get_cpp_typeinfo_decl): Likewise. 628*81418a27Smrg (aggregate_initializer_decl): Likewise. 629*81418a27Smrg (enum_initializer_decl): Likewise. 630*81418a27Smrg * Make-lang.in (D_OBJS): Update. 631*81418a27Smrg * d-codegen.cc (build_local_var): Remove function. 632*81418a27Smrg Updated all callers to use declare_local_var. 633*81418a27Smrg (build_local_temp): Move to decl.cc. 634*81418a27Smrg (get_decl_tree): Likewise. 635*81418a27Smrg (expand_decl): Remove function. 636*81418a27Smrg (build_closure): Inline expand_decl here. 637*81418a27Smrg 638*81418a27Smrg2017-04-20 Iain Buclaw <ibuclaw@gdcproject.org> 639*81418a27Smrg 640*81418a27Smrg * d-codegen.cc (pop_binding_label): Move to toir.cc. 641*81418a27Smrg (pop_label): Likewise. 642*81418a27Smrg (push_binding_level): Likewise 643*81418a27Smrg (pop_binding_level): Likewise. 644*81418a27Smrg (push_stmt_list): Likewise. 645*81418a27Smrg (add_stmt): Likewise. 646*81418a27Smrg (check_goto): Move to toir.cc, make it a member of IRVisitor. 647*81418a27Smrg (check_previous_goto): Likewise. 648*81418a27Smrg (lookup_label): Likewise. 649*81418a27Smrg (lookup_bc_label): Likewise. 650*81418a27Smrg (define_label): Likewise. 651*81418a27Smrg * toir.cc (build_ir): Rename to build_function_body. 652*81418a27Smrg 653*81418a27Smrg2017-04-19 Iain Buclaw <ibuclaw@gdcproject.org> 654*81418a27Smrg 655*81418a27Smrg * d-target.cc: Update includes. 656*81418a27Smrg 657*81418a27Smrg2017-04-19 Iain Buclaw <ibuclaw@gdcproject.org> 658*81418a27Smrg 659*81418a27Smrg * lang-specs.h: Remove capitalized D source suffixes. 660*81418a27Smrg 661*81418a27Smrg2017-04-19 Iain Buclaw <ibuclaw@gdcproject.org> 662*81418a27Smrg 663*81418a27Smrg * lang-specs.h: Add rule for forwarding -iprefix and -imultilib to the 664*81418a27Smrg compiler proper. 665*81418a27Smrg 666*81418a27Smrg2017-04-19 Iain Buclaw <ibuclaw@gdcproject.org> 667*81418a27Smrg 668*81418a27Smrg * lang-specs.h: Remove cc1d spec. 669*81418a27Smrg 670*81418a27Smrg2017-04-19 Iain Buclaw <ibuclaw@gdcproject.org> 671*81418a27Smrg 672*81418a27Smrg * lang-specs.h: Remove +e handling. 673*81418a27Smrg 674*81418a27Smrg2017-04-18 Iain Buclaw <ibuclaw@gdcproject.org> 675*81418a27Smrg 676*81418a27Smrg * d-diagnostic.cc: New file. 677*81418a27Smrg * d-frontend.cc: New file. 678*81418a27Smrg * d-glue.cc: Remove file. 679*81418a27Smrg * d-port.cc: Remove file. 680*81418a27Smrg * d-longdouble.h (template<typename T> operator): Remove operators. 681*81418a27Smrg 682*81418a27Smrg2017-04-17 Iain Buclaw <ibuclaw@gdcproject.org> 683*81418a27Smrg 684*81418a27Smrg * d-incpath.cc (add_env_var_paths): Rename to add_environment_paths. 685*81418a27Smrg (make_absolute): Remove function. 686*81418a27Smrg (add_import_path): Rename to add_globalpaths. 687*81418a27Smrg (add_fileimp_path): Rename to add_filepaths. 688*81418a27Smrg 689*81418a27Smrg2017-04-17 Iain Buclaw <ibuclaw@gdcproject.org> 690*81418a27Smrg 691*81418a27Smrg * d-codegen.h (d_types_same): Renamed to same_type_p. 692*81418a27Smrg Moved to types.cc. 693*81418a27Smrg (build_object_type): Renamed to get_object_type. Moved to types.cc. 694*81418a27Smrg * d-codegen.cc (type_va_array): Renamed to valist_array_p. 695*81418a27Smrg Moved to types.cc. 696*81418a27Smrg (d_array_type): Renamed to make_array_type. Moved to types.cc. 697*81418a27Smrg (insert_type_modifiers): Moved to types.cc. 698*81418a27Smrg (build_two_field_type): Likewise. 699*81418a27Smrg (empty_aggregate_p): Likewise. 700*81418a27Smrg (fixup_anonymous_offset): Likewise. 701*81418a27Smrg (layout_aggregate_members): Likewise. 702*81418a27Smrg (layout_aggregate_type): Likewise. 703*81418a27Smrg (insert_aggregate_field): Likewise. 704*81418a27Smrg (finish_aggregate_type): Likewise. 705*81418a27Smrg 706*81418a27Smrg2017-04-17 Iain Buclaw <ibuclaw@gdcproject.org> 707*81418a27Smrg 708*81418a27Smrg * Make-lang.in (D_FRONTEND_OBJS): Update to match new source names. 709*81418a27Smrg 710*81418a27Smrg2017-04-11 Iain Buclaw <ibuclaw@gdcproject.org> 711*81418a27Smrg 712*81418a27Smrg * gdc.texi: Rewrite documentation for manpages. 713*81418a27Smrg 714*81418a27Smrg2017-04-08 Iain Buclaw <ibuclaw@gdcproject.org> 715*81418a27Smrg 716*81418a27Smrg * d-objfile.cc (DeclVisitor::visit(FuncDeclaration)): Remove logic 717*81418a27Smrg that parent needs to be compiled before nested. 718*81418a27Smrg 719*81418a27Smrg2017-04-08 Iain Buclaw <ibuclaw@gdcproject.org> 720*81418a27Smrg 721*81418a27Smrg * d-lang.cc (d_post_options): Don't overwrite in_fnames. 722*81418a27Smrg (d_parse_file): Don't error about not being able to use stdin. 723*81418a27Smrg Implement support for reading source code from stdin. 724*81418a27Smrg 725*81418a27Smrg2017-04-08 Iain Buclaw <ibuclaw@gdcproject.org> 726*81418a27Smrg 727*81418a27Smrg * d-lang.cc (d_parse_file): Remove invalid file name checks. 728*81418a27Smrg 729*81418a27Smrg2017-04-08 Iain Buclaw <ibuclaw@gdcproject.org> 730*81418a27Smrg 731*81418a27Smrg * d-glue.cc (Global::_init): Set global.stdmsg to stderr. 732*81418a27Smrg 733*81418a27Smrg2017-04-07 Iain Buclaw <ibuclaw@gdcproject.org> 734*81418a27Smrg 735*81418a27Smrg * d-codgen.h (current_module_decl): Moved to d-objfile.cc. 736*81418a27Smrg * d-objfile.h (current_module_info): Likewise. 737*81418a27Smrg (ModuleInfoFlags): Likewise. 738*81418a27Smrg (ModuleInfo): Likewise. 739*81418a27Smrg * d-objfile.cc (start_function): Move updating ModuleInfo structure to 740*81418a27Smrg ... 741*81418a27Smrg (DeclVisitor::visit(FuncDeclaration)): ... here. Set it after 742*81418a27Smrg finishing off the function. 743*81418a27Smrg 744*81418a27Smrg2017-04-07 Iain Buclaw <ibuclaw@gdcproject.org> 745*81418a27Smrg 746*81418a27Smrg * d-objfile.cc (DeclVisitor::visit(FuncDeclaration)): Use 747*81418a27Smrg push_function_decl for storing current state when switching to nested 748*81418a27Smrg functions. Remove handling of deferred functions. 749*81418a27Smrg * d-tree.h (language_function): Remove deferred_fns. 750*81418a27Smrg * expr.cc (ExprVisitor::visit(DelegateExp)): Don't defer compiling 751*81418a27Smrg the delegate lambda. 752*81418a27Smrg (ExprVisitor::visit(FuncExp)): Likewise for function literals. 753*81418a27Smrg (ExprVisitor::visit(VarExp)): Likewise. 754*81418a27Smrg 755*81418a27Smrg2017-04-07 Iain Buclaw <ibuclaw@gdcproject.org> 756*81418a27Smrg 757*81418a27Smrg * d-codegen.cc (start_function): Move to d-objfile.cc, make it static. 758*81418a27Smrg (end_function): Likewise. Renamed to finish_function. 759*81418a27Smrg 760*81418a27Smrg2017-04-05 Iain Buclaw <ibuclaw@gdcproject.org> 761*81418a27Smrg 762*81418a27Smrg * d-codegen.cc (d_convert): Move to d-convert.cc. 763*81418a27Smrg (convert_expr): Likewise. 764*81418a27Smrg (convert_for_assignment): Likewise. 765*81418a27Smrg (convert_for_argument): Likewise. 766*81418a27Smrg (convert_for_condition): Likewise. 767*81418a27Smrg (d_array_convert): Likewise. 768*81418a27Smrg 769*81418a27Smrg2017-04-04 Iain Buclaw <ibuclaw@gdcproject.org> 770*81418a27Smrg 771*81418a27Smrg * d-builtins.c (d_global_trees): Move to d-lang.cc. 772*81418a27Smrg (build_dtype): Rename to build_frontend_type. 773*81418a27Smrg Updated all callers. 774*81418a27Smrg (build_expression): Rename to d_eval_constant_expression. 775*81418a27Smrg Updated all callers. 776*81418a27Smrg (build_alias_declaration): New function. 777*81418a27Smrg (d_build_c_type_nodes): New function. 778*81418a27Smrg (d_build_d_type_nodes): New function. 779*81418a27Smrg (d_define_builtins): New function. 780*81418a27Smrg 781*81418a27Smrg2017-04-04 Iain Buclaw <ibuclaw@gdcproject.org> 782*81418a27Smrg 783*81418a27Smrg * d-attribs.c (insert_type_attribute): Use 784*81418a27Smrg build_type_attribute_variant. 785*81418a27Smrg (insert_decl_attribute): Use build_decl_attribute_variant. 786*81418a27Smrg (uda_attribute_p): Remove string table, use Identifier comparison for 787*81418a27Smrg looking up table attributes. 788*81418a27Smrg (build_attributes): Make unknown attribute a warning, use quoted 789*81418a27Smrg strings in diagnostic messages. 790*81418a27Smrg 791*81418a27Smrg2017-04-01 Iain Buclaw <ibuclaw@gdcproject.org> 792*81418a27Smrg 793*81418a27Smrg * d-lang.cc (d_handle_option): Handle -fdump-d-original. 794*81418a27Smrg (d_parse_file): Likewise. 795*81418a27Smrg * d-target.cc (Target::maxStaticDataSize): New variable. 796*81418a27Smrg (Target::_init): Initialize maxStaticDataSize. 797*81418a27Smrg * lang.opt (fdump-d-original): Declare. 798*81418a27Smrg 799*81418a27Smrg2017-04-01 Iain Buclaw <ibuclaw@gdcproject.org> 800*81418a27Smrg 801*81418a27Smrg * Make-lang.in (D_GLUE_OBJS): Remove d-todt.cc. 802*81418a27Smrg * d-objfile.cc (build_moduleinfo_symbol): Build initializer for 803*81418a27Smrg ModuleInfo directly from inferred type fields. 804*81418a27Smrg (d_finish_symbol): Remove handling of DECL_LANG_INITIAL. 805*81418a27Smrg * d-todt.cc: Remove file. 806*81418a27Smrg * d-tree.h (lang_decl): Remove initial field. 807*81418a27Smrg (DECL_LANG_INITIAL): Remove macro. 808*81418a27Smrg 809*81418a27Smrg2017-03-31 Iain Buclaw <ibuclaw@gdcproject.org> 810*81418a27Smrg 811*81418a27Smrg * d-objfile.cc (DeclVisitor::visit(VarDeclaration)): Use build_expr to 812*81418a27Smrg generate the static initializer. 813*81418a27Smrg * d-todt.cc (Initializer::toDt): Remove function and all overrides. 814*81418a27Smrg * expr.cc (ExprVisitor::visit(VarExp)): Use build_expr to get the 815*81418a27Smrg constant initializer of a constant variable. 816*81418a27Smrg 817*81418a27Smrg2017-03-29 Iain Buclaw <ibuclaw@gdcproject.org> 818*81418a27Smrg 819*81418a27Smrg * d-decls.cc (aggregate_initializer): Renamed to 820*81418a27Smrg aggregate_initializer_decl. Updated all callers. 821*81418a27Smrg (enum_initializer): Renamed to enum_initializer_decl. 822*81418a27Smrg Updated all callers. 823*81418a27Smrg (layout_class_initializer): New function. 824*81418a27Smrg (layout_struct_initializer): New function. 825*81418a27Smrg * d-todt.cc (ClassDeclaration::toDt): Remove function. 826*81418a27Smrg (StructDeclaration::toDt): Remove function. 827*81418a27Smrg 828*81418a27Smrg2017-03-27 Iain Buclaw <ibuclaw@gdcproject.org> 829*81418a27Smrg 830*81418a27Smrg * d-objfile.cc (DeclVisitor::visit(Module)): New function. 831*81418a27Smrg (Module::genobjfile): Remove function. 832*81418a27Smrg Updated all callers to use build_decl_tree. 833*81418a27Smrg (layout_moduleinfo): New function. 834*81418a27Smrg (Module::genmoduleinfo): Remove function. 835*81418a27Smrg Update all callers to use layout_moduleinfo. 836*81418a27Smrg 837*81418a27Smrg2017-03-26 Iain Buclaw <ibuclaw@gdcproject.org> 838*81418a27Smrg 839*81418a27Smrg * d-objfile.cc (base_vtable_offset): New function. 840*81418a27Smrg (ClassDeclaration::baseVtblOffset): Remove function. 841*81418a27Smrg Updated all callers to use base_vtable_offset. 842*81418a27Smrg 843*81418a27Smrg2017-03-26 Iain Buclaw <ibuclaw@gdcproject.org> 844*81418a27Smrg 845*81418a27Smrg * d-objfile.cc (DeclVisitor): New visitor interface to supercede the 846*81418a27Smrg toObjFile methods. 847*81418a27Smrg (build_decl_tree): New function. 848*81418a27Smrg (Dsymbol::toObjFile): Remove function and overrides. 849*81418a27Smrg Updated all callers to use build_decl_tree. 850*81418a27Smrg 851*81418a27Smrg2017-03-20 Iain Buclaw <ibuclaw@gdcproject.org> 852*81418a27Smrg 853*81418a27Smrg * d-decls.cc (get_cpp_typeinfo_decl): New function. 854*81418a27Smrg * d-lang.cc (d_build_eh_type_type): Return classinfo for 855*81418a27Smrg __cpp_type_info_ptr when generating catch for C++ classes. 856*81418a27Smrg * runtime.def (CXA_BEGIN_CATCH): Define. 857*81418a27Smrg (CXA_END_CATCH): Define. 858*81418a27Smrg * toir.cc (IRVisitor::visit(TryCatchStatement)): Support catching 859*81418a27Smrg classes thrown from C++. 860*81418a27Smrg * typeinfo.cc (layout_cpp_typeinfo): New function. 861*81418a27Smrg 862*81418a27Smrg2017-03-20 Iain Buclaw <ibuclaw@gdcproject.org> 863*81418a27Smrg 864*81418a27Smrg * d-builtins.cc (d_build_builtins_module): Always mark gcc builtins as 865*81418a27Smrg nothrow functions. 866*81418a27Smrg 867*81418a27Smrg2017-03-11 Iain Buclaw <ibuclaw@gdcproject.org> 868*81418a27Smrg 869*81418a27Smrg * d-longdouble.cc (CTFloat::zero): New variable. 870*81418a27Smrg (CTFloat::one): New variable. 871*81418a27Smrg (CTFloat::minusone): New variable. 872*81418a27Smrg (CTFloat::half): New variable. 873*81418a27Smrg (longdouble::set): Remove float and double overloads. 874*81418a27Smrg (longdouble::operator float): Remove function. 875*81418a27Smrg (longdouble::operator double): Remove function. 876*81418a27Smrg * d-target.cc (Target::_init): Initialize floating point constants. 877*81418a27Smrg 878*81418a27Smrg2017-03-11 Iain Buclaw <ibuclaw@gdcproject.org> 879*81418a27Smrg 880*81418a27Smrg * d-lang.cc (d_init): Replace calls to init with _init. 881*81418a27Smrg * d-glue.cc (Global::init): Renamed to Global::_init. 882*81418a27Smrg * d-target.cc (Target::init): Renamed to Target::_init. 883*81418a27Smrg 884*81418a27Smrg2017-03-11 Iain Buclaw <ibuclaw@gdcproject.org> 885*81418a27Smrg 886*81418a27Smrg * d-longdouble.cc (longdouble::format): Remove function. 887*81418a27Smrg (longdouble::formatHex): Remove function. 888*81418a27Smrg (longdouble::dump): Remove function. 889*81418a27Smrg (CTFloat::sprint): Inline implementation of format and formatHex here. 890*81418a27Smrg 891*81418a27Smrg2017-03-11 Iain Buclaw <ibuclaw@gdcproject.org> 892*81418a27Smrg 893*81418a27Smrg * d-lang.cc (d_init): Remove calls to Port::init and longdouble::init. 894*81418a27Smrg * d-longdouble.cc (real_limits): Remove variable. 895*81418a27Smrg (longdouble::init): Remove function. 896*81418a27Smrg (CTFloat::parse): Update to use Target::RealProperties. 897*81418a27Smrg * d-port.cc (Port::ldbl_nan): Remove variable. 898*81418a27Smrg (Port::snan): Remove variable. 899*81418a27Smrg (Port::ldbl_infinity): Remove variable. 900*81418a27Smrg (Port::ldbl_max): Remove variable. 901*81418a27Smrg (Port::init): Remove function. 902*81418a27Smrg (Port::isFloat32LiteralOutOfRange): Update to use 903*81418a27Smrg Target::RealProperties. 904*81418a27Smrg (Port::isFloat64LiteralOutOfRange): Likewise. 905*81418a27Smrg * d-target.cc (Target::FPTypeProperties<T>::max): Define. 906*81418a27Smrg (Target::FPTypeProperties<T>::min_normal): Define. 907*81418a27Smrg (Target::FPTypeProperties<T>::nan): Define. 908*81418a27Smrg (Target::FPTypeProperties<T>::snan): Define. 909*81418a27Smrg (Target::FPTypeProperties<T>::infinity): Define. 910*81418a27Smrg (Target::FPTypeProperties<T>::epsilon): Define. 911*81418a27Smrg (Target::FPTypeProperties<T>::dig): Define. 912*81418a27Smrg (Target::FPTypeProperties<T>::mant_dig): Define. 913*81418a27Smrg (Target::FPTypeProperties<T>::max_exp): Define. 914*81418a27Smrg (Target::FPTypeProperties<T>::min_exp): Define. 915*81418a27Smrg (Target::FPTypeProperties<T>::max_10_exp): Define. 916*81418a27Smrg (Target::FPTypeProperties<T>::min_10_exp): Define. 917*81418a27Smrg (define_float_constants): New function. 918*81418a27Smrg (Target::init): Initialize compile-time floating point properties. 919*81418a27Smrg * longdouble.h (Mode): Remove type declaration. 920*81418a27Smrg (real_properties): Remove type declaration. 921*81418a27Smrg 922*81418a27Smrg2017-03-10 Iain Buclaw <ibuclaw@gdcproject.org> 923*81418a27Smrg 924*81418a27Smrg * d-longdouble.cc (CTFloat::fabs): New function. 925*81418a27Smrg (CTFloat::isIdentical): New function. 926*81418a27Smrg (CTFloat::isNaN): New function. 927*81418a27Smrg (CTFloat::isSNaN): New function. 928*81418a27Smrg (CTFloat::isInfinity): New function. 929*81418a27Smrg (CTFloat::parse): New function. 930*81418a27Smrg (CTFloat::sprint): New function. 931*81418a27Smrg * d-port.cc (Port::isNan): Remove function. 932*81418a27Smrg (Port::isSignallingNan): Remove function. 933*81418a27Smrg (Port::isInfinity): Remove function. 934*81418a27Smrg (Port::fequal): Remove function. 935*81418a27Smrg (Port::strtof): Remove function. 936*81418a27Smrg (Port::strtod): Remove function. 937*81418a27Smrg (Port::strtold): Remove function. 938*81418a27Smrg (Port::isFloat32LiteralOutOfRange): New function. 939*81418a27Smrg (Port::isFloat64LiteralOutOfRange): New function. 940*81418a27Smrg * longdouble.h (ld_sprint): Remove function. 941*81418a27Smrg 942*81418a27Smrg2017-03-06 Iain Buclaw <ibuclaw@gdcproject.org> 943*81418a27Smrg 944*81418a27Smrg * d-glue.cc (verror): Update to handle -Wspeculative. 945*81418a27Smrg (verrorSupplemental): Likewise. 946*81418a27Smrg * d-lang.cc (d_init_options): Initialize module alias array. 947*81418a27Smrg (d_init_options): Handle -fmodule-filepath= and -Wspeculative. 948*81418a27Smrg * d-port.cc (Port::stricmp): Remove function. 949*81418a27Smrg (Port::writelongLE): New function. 950*81418a27Smrg (Port::writelongBE): New function. 951*81418a27Smrg * lang.opt (Wspeculative): Declare. 952*81418a27Smrg (fmodule-filepath=): Declare. 953*81418a27Smrg 954*81418a27Smrg2017-03-06 Iain Buclaw <ibuclaw@gdcproject.org> 955*81418a27Smrg 956*81418a27Smrg * d-lang.cc (d_handle_option): Handle -ftransition=dip1000 957*81418a27Smrg * lang.opt (ftransition=dip1000): Declare. 958*81418a27Smrg (ftransition=safe): Make alias for -ftransition=dip1000 959*81418a27Smrg 960*81418a27Smrg2017-03-04 Iain Buclaw <ibuclaw@gdcproject.org> 961*81418a27Smrg 962*81418a27Smrg * d-codegen.cc (get_decl_tree): Handle chaining over many levels of 963*81418a27Smrg nesting functions to get to the right parent for the 'this' field. 964*81418a27Smrg 965*81418a27Smrg2017-03-04 Iain Buclaw <ibuclaw@gdcproject.org> 966*81418a27Smrg 967*81418a27Smrg * d-decls.cc (get_symbol_decl): Move generation of DECL_ARGUMENTS for 968*81418a27Smrg empty body declarations to ... 969*81418a27Smrg (make_thunk): ... here. Also set-up DECL_RESULT. 970*81418a27Smrg (finish_thunk): Mark DECL_UNINLINEABLE on external functions. 971*81418a27Smrg 972*81418a27Smrg2017-03-04 Iain Buclaw <ibuclaw@gdcproject.org> 973*81418a27Smrg 974*81418a27Smrg * d-decls.cc (make_thunk): Don't build thunks for functions that 975*81418a27Smrg failed to compile. 976*81418a27Smrg 977*81418a27Smrg2017-03-04 Iain Buclaw <ibuclaw@gdcproject.org> 978*81418a27Smrg 979*81418a27Smrg * d-objfile.cc (emit_dso_registry_hooks): Set DECL_PRESERVE_P. 980*81418a27Smrg 981*81418a27Smrg2017-02-26 Iain Buclaw <ibuclaw@gdcproject.org> 982*81418a27Smrg 983*81418a27Smrg * d-codegen.cc (build_frame_type): Update condition for scope 984*81418a27Smrg destruction error. 985*81418a27Smrg * d-port.cc (Port::valcpy): New function. 986*81418a27Smrg * expr.cc (ExprVisitor::visit(CallExp)): Generate cast of 'this' 987*81418a27Smrg object to the right handle type before indexing. 988*81418a27Smrg 989*81418a27Smrg2017-02-24 Iain Buclaw <ibuclaw@gdcproject.org> 990*81418a27Smrg 991*81418a27Smrg * d-glue.cc (warningSupplemental): New function. 992*81418a27Smrg (vwarningSupplemental): New function. 993*81418a27Smrg (deprecationSupplemental): New function. 994*81418a27Smrg (vdeprecationSupplemental): New function. 995*81418a27Smrg 996*81418a27Smrg2017-02-23 Iain Buclaw <ibuclaw@gdcproject.org> 997*81418a27Smrg 998*81418a27Smrg * imports.cc (ImportVisitor::visit(OverDeclaration)): New function. 999*81418a27Smrg (ImportVisitor::visit(FuncAliasDeclaration)): New function. 1000*81418a27Smrg 1001*81418a27Smrg2017-02-21 Iain Buclaw <ibuclaw@gdcproject.org> 1002*81418a27Smrg 1003*81418a27Smrg * d-lang.cc (d_handle_option): Handle -X and -Xf options. 1004*81418a27Smrg (d_parse_file): Update. 1005*81418a27Smrg * lang-specs.h: Add rules for -X style options. 1006*81418a27Smrg * lang.opt (X): Declare. 1007*81418a27Smrg (Xf): Declare. 1008*81418a27Smrg (fXf=): Make alias for -Xf. 1009*81418a27Smrg 1010*81418a27Smrg2017-02-21 Iain Buclaw <ibuclaw@gdcproject.org> 1011*81418a27Smrg 1012*81418a27Smrg * lang.opt (fd-vgc): Comment out help test. 1013*81418a27Smrg (fd-verbose): Likewise. 1014*81418a27Smrg (fd-vtls): Likewise. 1015*81418a27Smrg (femit-modules): Likewise. 1016*81418a27Smrg 1017*81418a27Smrg2017-02-20 Iain Buclaw <ibuclaw@gdcproject.org> 1018*81418a27Smrg 1019*81418a27Smrg * d-target.cc (Target::fieldalign): Adjust. 1020*81418a27Smrg 1021*81418a27Smrg2017-02-19 Iain Buclaw <ibuclaw@gdcproject.org> 1022*81418a27Smrg 1023*81418a27Smrg * d-lang.cc (d_option_data): Add fields to support other -M options. 1024*81418a27Smrg (d_init_options): Initialize them. 1025*81418a27Smrg (deps_add_target): New function. 1026*81418a27Smrg (deps_write): Support multiple targets and phony rules. 1027*81418a27Smrg (d_handle_option): Handle gcc -M style options. 1028*81418a27Smrg (d_parse_file): Likewise. 1029*81418a27Smrg * lang-specs.h: Add rules for -M style options. 1030*81418a27Smrg * lang.opt: Declare -M style options. 1031*81418a27Smrg 1032*81418a27Smrg2017-02-19 Iain Buclaw <ibuclaw@gdcproject.org> 1033*81418a27Smrg 1034*81418a27Smrg * d-lang.cc (is_system_module): Remove. 1035*81418a27Smrg (deps_write): Always ignore entrypoint module. 1036*81418a27Smrg 1037*81418a27Smrg2017-02-19 Iain Buclaw <ibuclaw@gdcproject.org> 1038*81418a27Smrg 1039*81418a27Smrg * d-lang.cc (write_one_dep): Remove. 1040*81418a27Smrg (deps_write): Update signature. 1041*81418a27Smrg 1042*81418a27Smrg2017-02-19 Iain Buclaw <ibuclaw@gdcproject.org> 1043*81418a27Smrg 1044*81418a27Smrg * d-lang.cc (iprefix_dir): Remove. 1045*81418a27Smrg (imultilib_dir): Remove. 1046*81418a27Smrg (std_inc): Remove. 1047*81418a27Smrg (d_option_data): New struct. 1048*81418a27Smrg (d_option): Declare. 1049*81418a27Smrg (d_init_options): Initialize d_option. 1050*81418a27Smrg (d_init): Update to use d_option. 1051*81418a27Smrg (d_handle_option): Likewise. 1052*81418a27Smrg (d_parse_file): Likewise. 1053*81418a27Smrg (deps_write): Update signature. 1054*81418a27Smrg 1055*81418a27Smrg2017-02-19 Iain Buclaw <ibuclaw@gdcproject.org> 1056*81418a27Smrg 1057*81418a27Smrg * d-lang.cc (d_handle_option): Call D_handle_option_auto. 1058*81418a27Smrg * lang.opt (Wunknown-pragmas): Turn on warning with -Wall. 1059*81418a27Smrg 1060*81418a27Smrg2017-02-18 Iain Buclaw <ibuclaw@gdcproject.org> 1061*81418a27Smrg 1062*81418a27Smrg * d-lang.cc (d_handle_option): Replace -fin with -fpreconditions; 1063*81418a27Smrg -fout with -fpostconditions. Handle -fswitch-errors. 1064*81418a27Smrg (d_post_options): Move setting of release code flags here. 1065*81418a27Smrg * lang.opt (fassert): Declare flag_assert. 1066*81418a27Smrg (fin): Make alias for -fpreconditions. 1067*81418a27Smrg (finvariants): Declare flag_invariants. 1068*81418a27Smrg (fout): Make alias for -fpostconditions. 1069*81418a27Smrg (fpostconditions): Declare. 1070*81418a27Smrg (fpreconditions): Declare. 1071*81418a27Smrg (fswitch-errors): Declare. 1072*81418a27Smrg 1073*81418a27Smrg2017-02-18 Iain Buclaw <ibuclaw@gdcproject.org> 1074*81418a27Smrg 1075*81418a27Smrg * d-objfile.cc (PragmaDeclaration::toObjFile): Warn about unknown 1076*81418a27Smrg pragmas only if -Wunknown-pragmas. 1077*81418a27Smrg 1078*81418a27Smrg2017-02-18 Iain Buclaw <ibuclaw@gdcproject.org> 1079*81418a27Smrg 1080*81418a27Smrg * d-glue.cc (Global::init): Initialize errorLimit to flag_max_errors. 1081*81418a27Smrg (verror): Don't halt program after invocation limit. 1082*81418a27Smrg * d-lang.cc (d_handle_option): Remove handling -fmax-error-messages. 1083*81418a27Smrg * lang.opt (fmax-error-messages): Remove option. 1084*81418a27Smrg 1085*81418a27Smrg2017-02-18 Iain Buclaw <ibuclaw@gdcproject.org> 1086*81418a27Smrg 1087*81418a27Smrg * d-decls.cc (get_symbol_decl): Handle -Wtemplates. 1088*81418a27Smrg * d-lang.cc (d_init_options): Remove setting flag_emit_templates. 1089*81418a27Smrg (d_handle_option): Replace handling -femit-templates with 1090*81418a27Smrg -fall-instantiations. 1091*81418a27Smrg (d_pushdecl): Remove checking for flag_emit_templates. 1092*81418a27Smrg * d-tree.h (D_DECL_IS_TEMPLATE): Remove macro. 1093*81418a27Smrg * lang.opt (flag_emit_templates): Remove variable. 1094*81418a27Smrg (fall-instantiations): Declare. 1095*81418a27Smrg (femit-templates): Make alias for -fall-instantiations. 1096*81418a27Smrg (Wtemplates): Declare. 1097*81418a27Smrg 1098*81418a27Smrg2017-02-18 Iain Buclaw <ibuclaw@gdcproject.org> 1099*81418a27Smrg 1100*81418a27Smrg * lang.opt (fassert): Update help text. 1101*81418a27Smrg (fin): Likewise. 1102*81418a27Smrg (finvariants): Likewise. 1103*81418a27Smrg (fout): Likewise. 1104*81418a27Smrg 1105*81418a27Smrg2017-02-11 Iain Buclaw <ibuclaw@gdcproject.org> 1106*81418a27Smrg 1107*81418a27Smrg * d-objfile.cc (VarDeclaration::toObjFile): Error if a variable covers 1108*81418a27Smrg more than half the address space. 1109*81418a27Smrg 1110*81418a27Smrg2017-02-04 Iain Buclaw <ibuclaw@gdcproject.org> 1111*81418a27Smrg 1112*81418a27Smrg * d-objfile.cc (Module::genmoduleinfo): Ignore symbol visibility when 1113*81418a27Smrg looking up module DSO symbols. 1114*81418a27Smrg 1115*81418a27Smrg2017-01-29 Iain Buclaw <ibuclaw@gdcproject.org> 1116*81418a27Smrg 1117*81418a27Smrg * d-lang.cc (d_handle_option): Handle -ftransition=all. 1118*81418a27Smrg * lang.opt (ftransition=all): Add compiler option. 1119*81418a27Smrg 1120*81418a27Smrg2017-01-29 Iain Buclaw <ibuclaw@gdcproject.org> 1121*81418a27Smrg 1122*81418a27Smrg * d-lang.cc (d_handle_option): Handle -ftransition=checkimports. 1123*81418a27Smrg * lang.opt (ftransition=checkimports): Add compiler option. 1124*81418a27Smrg 1125*81418a27Smrg2017-01-28 Iain Buclaw <ibuclaw@gdcproject.org> 1126*81418a27Smrg 1127*81418a27Smrg * d-lang.cc (d_handle_option): Handle -ftransition=import. 1128*81418a27Smrg * lang.opt (ftransition=import): Add compiler option. 1129*81418a27Smrg 1130*81418a27Smrg2017-01-25 Iain Buclaw <ibuclaw@gdcproject.org> 1131*81418a27Smrg 1132*81418a27Smrg * imports.cc (ImportVisitor::visit(EnumDeclaration)): New function. 1133*81418a27Smrg (ImportVisitor::visit(AggregateDeclaration)): New function. 1134*81418a27Smrg (ImportVisitor::visit(ClassDeclaration)): New function. 1135*81418a27Smrg (ImportVisitor::make_import): New function. 1136*81418a27Smrg (ImportVisitor::visit(AliasDeclaration)): Get decl for type alias. 1137*81418a27Smrg 1138*81418a27Smrg2017-01-22 Iain Buclaw <ibuclaw@gdcproject.org> 1139*81418a27Smrg 1140*81418a27Smrg * expr.cc (ExprVisitor::visit(EqualExp)): Don't use memcmp on arrays 1141*81418a27Smrg of structs that define xopEquals. 1142*81418a27Smrg 1143*81418a27Smrg2017-01-15 Iain Buclaw <ibuclaw@gdcproject.org> 1144*81418a27Smrg 1145*81418a27Smrg * d-spec.cc (lang_specific_driver): Add missing break. 1146*81418a27Smrg 1147*81418a27Smrg2017-01-13 Iain Buclaw <ibuclaw@gdcproject.org> 1148*81418a27Smrg 1149*81418a27Smrg * d-codegen.cc (build_class_instance): Don't check for void 1150*81418a27Smrg initialized fields. 1151*81418a27Smrg * expr.cc (ExprVisitor::visit(StructLiteralExp)): Likewise. 1152*81418a27Smrg 1153*81418a27Smrg2017-01-11 Iain Buclaw <ibuclaw@gdcproject.org> 1154*81418a27Smrg 1155*81418a27Smrg * typeinfo.cc (layout_classinfo): Use placement new to initialize 1156*81418a27Smrg typeinfo class declaration. 1157*81418a27Smrg 1158*81418a27Smrg2017-01-02 Iain Buclaw <ibuclaw@gdcproject.org> 1159*81418a27Smrg 1160*81418a27Smrg * d-codegen,cc (get_frame_for_symbol): Use fully qualified name in 1161*81418a27Smrg error message. 1162*81418a27Smrg (build_frame_type): Always add parameters to closure vars if the 1163*81418a27Smrg function has a contract function. 1164*81418a27Smrg (get_frameinfo): Likewise, always create a frame. 1165*81418a27Smrg * expr.cc (ExprVisitor::needs_dtor): New function. 1166*81418a27Smrg (ExprVisitor::lvalue_p): New function. 1167*81418a27Smrg (ExprVisitor::visit(AssignExp)): Check for dtor in array assignments. 1168*81418a27Smrg (ExprVisitor::visit(TypeidExp)): Cast result to expression type. 1169*81418a27Smrg 1170*81418a27Smrg 1171*81418a27SmrgCopyright (C) 2017 Free Software Foundation, Inc. 1172*81418a27Smrg 1173*81418a27SmrgCopying and distribution of this file, with or without modification, 1174*81418a27Smrgare permitted in any medium without royalty provided the copyright 1175*81418a27Smrgnotice and this notice are preserved. 1176