12021-12-28 Martin Liska <mliska@suse.cz> 2 3 * gdc.texi: Use one more https. 4 52021-12-28 Martin Liska <mliska@suse.cz> 6 7 * gdc.texi: Replace http:// with https. 8 92021-12-20 Iain Buclaw <ibuclaw@gdcproject.org> 10 11 * dmd/MERGE: Merge upstream dmd ad8412530. 12 * expr.cc (ExprVisitor::visit (DeleteExp *)): Remove code generation 13 of _d_delstruct. 14 * runtime.def (DELSTRUCT): Remove. 15 162021-12-15 Iain Buclaw <ibuclaw@gdcproject.org> 17 18 * d-lang.cc (d_init_options): Set default -fextern-std= to C++17. 19 * dmd/MERGE: Merge upstream dmd 93108bb9e. 20 * gdc.texi (Runtime Options): Document the default for -fextern-std=. 21 222021-12-10 Iain Buclaw <ibuclaw@gdcproject.org> 23 24 PR d/103529 25 * dmd/MERGE: Merge upstream dmd 3982604c5. 26 * Make-lang.in (D_FRONTEND_OBJS): Add d/root-optional.o. 27 * d-attribs.cc (build_attributes): Update for new front-end interface. 28 * d-codegen.cc (d_build_call): Likewise. 29 * d-compiler.cc (Compiler::paintAsType): Likewise. 30 * d-lang.cc (d_handle_option): Remove OPT_fpreview_intpromote, add 31 handling of OPT_frevert_intpromote. 32 * d-port.cc (Port::valcpy): Assert buffer is aligned. 33 * d-target.cc (Target::isVectorOpSupported): Update for new front-end 34 interface. 35 * decl.cc (layout_class_initializer): Likewise. 36 * expr.cc (lvalue_p): Likewise. 37 (binop_assignment): Likewise. 38 (ExprVisitor::visit): Likewise. 39 (ExprVisitor::visit (AssignExp *)): Remove generation of _d_arrayctor 40 and _d_arraysetctor library helpers. 41 (ExprVisitor::visit (VarExp *)): Support __traits(initSymbol). 42 * intrinsics.cc (expand_intrinsic_rotate): Update for new front-end 43 interface. 44 * lang.opt (fpreview=intpromote): Remove. 45 (frevert=intpromote): New. 46 * runtime.def (ARRAYCTOR): Remove. 47 (ARRAYSETCTOR): Remove. 48 * toir.cc (IRVisitor::visit): Update for new front-end interface. 49 * types.cc (layout_aggregate_members): Likewise. 50 * dmd/root/optional.d: New file. 51 * dmd/root/optional.h: New file. 52 532021-12-10 Iain Buclaw <ibuclaw@gdcproject.org> 54 55 * decl.cc (get_symbol_decl): Align methods to MINIMUM_METHOD_BOUNDARY. 56 572021-12-09 Martin Liska <mliska@suse.cz> 58 59 * expr.cc: Call memcpy only when length != 0. 60 612021-12-08 Iain Buclaw <ibuclaw@gdcproject.org> 62 63 * dmd/MERGE: Merge upstream dmd 568496d5b. 64 * Make-lang.in (D_FRONTEND_OBJS): Add d/common-file.o, 65 d/common-outbuffer.o, d/common-string.o, d/file_manager.o, 66 d/importc.o. Remove d/root-outbuffer.o. 67 (d/common-%.o): New recipe. 68 * d-builtins.cc (build_frontend_type): Update for new front-end 69 interface. 70 (d_build_d_type_nodes): Set noreturn_type_node. 71 * d-codegen.cc (d_build_call): Don't call function if one of the 72 arguments is type 'noreturn'. 73 (build_vthis_function): Propagate TYPE_QUAL_VOLATILE from original 74 function type. 75 * d-frontend.cc (eval_builtin): Update signature. 76 (getTypeInfoType): Likewise. 77 (toObjFile): New function. 78 * d-gimplify.cc (d_gimplify_call_expr): Always evaluate arguments from 79 left to right. 80 * d-lang.cc (d_handle_option): Handle OPT_ftransition_in. 81 (d_parse_file): Don't generate D main if it is declared in user code. 82 * d-tree.h (CALL_EXPR_ARGS_ORDERED): Remove. 83 (enum d_tree_index): Add DTI_BOTTOM_TYPE. 84 (noreturn_type_node): New. 85 * decl.cc (apply_pragma_crt): Remove. 86 (DeclVisitor::visit): Update for new front-end interface. 87 (DeclVisitor::visit (PragmaDeclaration *)): Don't handle 88 crt_constructor and crt_destructor pragmas. 89 (DeclVisitor::visit (VarDeclaration *)): Don't generate declarations 90 of type 'noreturn'. 91 (DeclVisitor::visit (FuncDeclaration *)): Stop adding parameters when 92 'noreturn' type has been encountered. 93 (get_symbol_decl): Set DECL_STATIC_CONSTRUCTOR and 94 DECL_STATIC_DESTRUCTOR on decl node if requested. 95 (aggregate_initializer_decl): Update for new front-end interface. 96 * expr.cc (ExprVisitor::visit (CallExp *)): Always use the 'this' 97 object as the result of calling any constructor function. 98 (ExprVisitor::visit): Update for new front-end interface. 99 * gdc.texi (Runtime Options): Document -fmain and -ftransition=in. 100 * lang.opt (ftransition=in): New option. 101 * modules.cc (get_internal_fn): Update for new front-end interface. 102 * types.cc (TypeVisitor::visit): Likewise. 103 (TypeVisitor::visit (TypeNoreturn *)): Return noreturn_type_node. 104 (TypeVisitor::visit (TypeFunction *)): Stop adding parameters when 105 'notreturn' type has been encountered. Qualify function types that 106 return 'noreturn' as TYPE_QUAL_VOLATILE. 107 1082021-12-02 Iain Buclaw <ibuclaw@gdcproject.org> 109 110 PR d/103520 111 * d-frontend.h (gc_disable): Declare. 112 * d-lang.cc (d_init_options): Disable the D runtime garbage collector 113 after initializing. 114 1152021-12-02 Iain Buclaw <ibuclaw@gdcproject.org> 116 117 * Make-lang.in (D_FRONTEND_OBJS): Prefix object files from the root 118 package with root-. 119 (d/root-%.o): New recipe. 120 1212021-12-01 Iain Buclaw <ibuclaw@gdcproject.org> 122 123 * d-spec.cc (lang_specific_driver): Set SKIPOPT on -static-libstdc++ 124 and -static-libphobos only when target supports LD_STATIC_DYNAMIC. 125 Remove generate_option to re-add -static-libstdc++. 126 1272021-12-01 Iain Buclaw <ibuclaw@gdcproject.org> 128 129 * gdc.texi (Runtime Options): Document -fcheckaction=, -fextern-std=, 130 -fpreview=, -frevert=. 131 (Code Generation): Document -fdump-c++-spec=, -fdump-c++-spec-verbose, 132 -fsave-mixins=. 133 (Warnings): Update list of supported -ftransitions=. 134 1352021-11-30 Iain Buclaw <ibuclaw@gdcproject.org> 136 137 * dmd/MERGE: Merge upstream dmd b8384668f. 138 * Make-lang.in (d-warn): Use strict warnings. 139 (DMD_WARN_CXXFLAGS): Remove. 140 (DMD_COMPILE): Remove. 141 (CHECKING_DFLAGS): Define. 142 (WARN_DFLAGS): Define. 143 (ALL_DFLAGS): Define. 144 (DCOMPILE.base): Define. 145 (DCOMPILE): Define. 146 (DPOSTCOMPILE): Define. 147 (DLINKER): Define. 148 (DLLINKER): Define. 149 (D_FRONTEND_OBJS): Add new dmd front-end objects. 150 (D_GENERATED_SRCS): Remove. 151 (D_GENERATED_OBJS): Remove. 152 (D_ALL_OBJS): Remove D_GENERATED_OBJS. 153 (d21$(exeext)): Build using DLLINKER and -static-libphobos. 154 (d.tags): Remove dmd/*.c and dmd/root/*.c. 155 (d.mostlyclean): Remove D_GENERATED_SRCS, d/idgen$(build_exeext), 156 d/impcnvgen$(build_exeext). 157 (D_INCLUDES): Include $(srcdir)/d/dmd/res. 158 (CFLAGS-d/id.o): Remove. 159 (CFLAGS-d/impcnvtab.o): Remove. 160 (d/%.o): Build using DCOMPILE and DPOSTCOMPILE. Update dependencies 161 from d/dmd/%.c to d/dmd/%.d. 162 (d/idgen$(build_exeext)): Remove. 163 (d/impcnvgen$(build_exeext)): Remove. 164 (d/id.c): Remove. 165 (d/id.h): Remove. 166 (d/impcnvtab.c): Remove. 167 (d/%.dmdgen.o): Remove. 168 (D_SYSTEM_H): Remove. 169 (d/idgen.dmdgen.o): Remove. 170 (d/impcnvgen.dmdgen.o): Remove. 171 * config-lang.in (boot_language): New variable. 172 * d-attribs.cc: Include dmd/expression.h. 173 * d-builtins.cc: Include d-frontend.h. 174 (build_frontend_type): Update for new front-end interface. 175 (d_eval_constant_expression): Likewise. 176 (d_build_builtins_module): Likewise. 177 (maybe_set_builtin_1): Likewise. 178 (d_build_d_type_nodes): Likewise. 179 * d-codegen.cc (d_decl_context): Likewise. 180 (declaration_reference_p): Likewise. 181 (declaration_type): Likewise. 182 (parameter_reference_p): Likewise. 183 (parameter_type): Likewise. 184 (get_array_length): Likewise. 185 (build_delegate_cst): Likewise. 186 (build_typeof_null_value): Likewise. 187 (identity_compare_p): Likewise. 188 (lower_struct_comparison): Likewise. 189 (build_filename_from_loc): Likewise. 190 (build_assert_call): Remove LIBCALL_SWITCH_ERROR. 191 (build_bounds_index_condition): Call LIBCALL_ARRAYBOUNDS_INDEXP on 192 bounds error. 193 (build_bounds_slice_condition): Call LIBCALL_ARRAYBOUNDS_SLICEP on 194 bounds error. 195 (array_bounds_check): Update for new front-end interface. 196 (checkaction_trap_p): Handle CHECKACTION_context. 197 (get_function_type): Update for new front-end interface. 198 (d_build_call): Likewise. 199 * d-compiler.cc: Remove include of dmd/scope.h. 200 (Compiler::genCmain): Remove. 201 (Compiler::paintAsType): Update for new front-end interface. 202 (Compiler::onParseModule): Likewise. 203 * d-convert.cc (convert_expr): Remove call to LIBCALL_ARRAYCAST. 204 (convert_for_rvalue): Update for new front-end interface. 205 (convert_for_assignment): Likewise. 206 (convert_for_condition): Likewise. 207 (d_array_convert): Likewise. 208 * d-diagnostic.cc (error): Remove. 209 (errorSupplemental): Remove. 210 (warning): Remove. 211 (warningSupplemental): Remove. 212 (deprecation): Remove. 213 (deprecationSupplemental): Remove. 214 (message): Remove. 215 (vtip): New. 216 * d-frontend.cc (global): Remove. 217 (Global::_init): Remove. 218 (Global::startGagging): Remove. 219 (Global::endGagging): Remove. 220 (Global::increaseErrorCount): Remove. 221 (Loc::Loc): Remove. 222 (Loc::toChars): Remove. 223 (Loc::equals): Remove. 224 (isBuiltin): Update for new front-end interface. 225 (eval_builtin): Likewise. 226 (getTypeInfoType): Likewise. 227 (inlineCopy): Remove. 228 * d-incpath.cc: Include d-frontend.h. 229 (add_globalpaths): Call d_gc_malloc to allocate Strings. 230 (add_filepaths): Likewise. 231 * d-lang.cc: Include dmd/id.h, dmd/root/file.h, d-frontend.h. Remove 232 include of dmd/mars.h, id.h. 233 (entrypoint_module): Remove. 234 (entrypoint_root_module): Remove. 235 (deps_write_string): Update for new front-end interface. 236 (deps_write): Likewise. 237 (d_init_options): Call rt_init. Remove setting global params that are 238 default initialized by the front-end. 239 (d_handle_option): Handle OPT_fcheckaction_, OPT_fdump_c___spec_, 240 OPT_fdump_c___spec_verbose, OPT_fextern_std_, OPT_fpreview, 241 OPT_revert, OPT_fsave_mixins_, and OPT_ftransition. 242 (d_post_options): Propagate dip1021 and dip1000 preview flags to 243 dip25, and flag_diagnostics_show_caret to printErrorContext. 244 (d_add_entrypoint_module): Remove. 245 (d_parse_file): Update for new front-end interface. 246 (d_type_promotes_to): Likewise. 247 (d_types_compatible_p): Likewise. 248 * d-longdouble.cc (CTFloat::zero): Remove. 249 (CTFloat::one): Remove. 250 (CTFloat::minusone): Remove. 251 (CTFloat::half): Remove. 252 * d-system.h (POSIX): Remove. 253 (realpath): Remove. 254 (isalpha): Remove. 255 (isalnum): Remove. 256 (isdigit): Remove. 257 (islower): Remove. 258 (isprint): Remove. 259 (isspace): Remove. 260 (isupper): Remove. 261 (isxdigit): Remove. 262 (tolower): Remove. 263 (_mkdir): Remove. 264 (INT32_MAX): Remove. 265 (INT32_MIN): Remove. 266 (INT64_MIN): Remove. 267 (UINT32_MAX): Remove. 268 (UINT64_MAX): Remove. 269 * d-target.cc: Include calls.h. 270 (target): Remove. 271 (define_float_constants): Remove initialization of snan. 272 (Target::_init): Update for new front-end interface. 273 (Target::isVectorTypeSupported): Likewise. 274 (Target::isVectorOpSupported): Remove cases for unordered operators. 275 (TargetCPP::typeMangle): Update for new front-end interface. 276 (TargetCPP::parameterType): Likewise. 277 (Target::systemLinkage): Likewise. 278 (Target::isReturnOnStack): Likewise. 279 (Target::isCalleeDestroyingArgs): Define. 280 (Target::preferPassByRef): Define. 281 * d-tree.h (d_add_entrypoint_module): Remove. 282 * decl.cc (gcc_attribute_p): Update for new front-end interface. 283 (apply_pragma_crt): Define. 284 (DeclVisitor::visit(PragmaDeclaration *)): Handle pragmas 285 crt_constructor and crt_destructor. 286 (DeclVisitor::visit(TemplateDeclaration *)): Update for new front-end 287 interface. 288 (DeclVisitor::visit): Likewise. 289 (DeclVisitor::finish_vtable): Likewise. 290 (get_symbol_decl): Error if template has more than one nesting 291 context. Update for new front-end interface. 292 (make_thunk): Update for new front-end interface. 293 (get_vtable_decl): Likewise. 294 * expr.cc (ExprVisitor::visit): Likewise. 295 (build_return_dtor): Likewise. 296 * imports.cc (ImportVisitor::visit): Likewise. 297 * intrinsics.cc: Include dmd/expression.h. Remove include of 298 dmd/mangle.h. 299 (maybe_set_intrinsic): Update for new front-end interface. 300 * intrinsics.def (INTRINSIC_ROL): Update intrinsic signature. 301 (INTRINSIC_ROR): Likewise. 302 (INTRINSIC_ROR_TIARG): Likewise. 303 (INTRINSIC_TOPREC): Likewise. 304 (INTRINSIC_TOPRECL): Likewise. 305 (INTRINSIC_TAN): Update intrinsic module and signature. 306 (INTRINSIC_ISNAN): Likewise. 307 (INTRINSIC_ISFINITE): Likewise. 308 (INTRINSIC_COPYSIGN): Define intrinsic. 309 (INTRINSIC_COPYSIGNI): Define intrinsic. 310 (INTRINSIC_EXP): Update intrinsic module. 311 (INTRINSIC_EXPM1): Likewise. 312 (INTRINSIC_EXP2): Likewise. 313 (INTRINSIC_LOG): Likewise. 314 (INTRINSIC_LOG2): Likewise. 315 (INTRINSIC_LOG10): Likewise. 316 (INTRINSIC_POW): Likewise. 317 (INTRINSIC_ROUND): Likewise. 318 (INTRINSIC_FLOORF): Likewise. 319 (INTRINSIC_FLOOR): Likewise. 320 (INTRINSIC_FLOORL): Likewise. 321 (INTRINSIC_CEILF): Likewise. 322 (INTRINSIC_CEIL): Likewise. 323 (INTRINSIC_CEILL): Likewise. 324 (INTRINSIC_TRUNC): Likewise. 325 (INTRINSIC_FMIN): Likewise. 326 (INTRINSIC_FMAX): Likewise. 327 (INTRINSIC_FMA): Likewise. 328 (INTRINSIC_VA_ARG): Update intrinsic signature. 329 (INTRINSIC_VASTART): Likewise. 330 * lang.opt (fcheck=): Add alternate aliases for contract switches. 331 (fcheckaction=): New option. 332 (check_action): New Enum and EnumValue entries. 333 (fdump-c++-spec-verbose): New option. 334 (fdump-c++-spec=): New option. 335 (fextern-std=): New option. 336 (extern_stdcpp): New Enum and EnumValue entries 337 (fpreview=): New options. 338 (frevert=): New options. 339 (fsave-mixins): New option. 340 (ftransition=): Update options. 341 * modules.cc (get_internal_fn): Replace Prot with Visibility. 342 (build_internal_fn): Likewise. 343 (build_dso_cdtor_fn): Likewise. 344 (build_module_tree): Remove check for __entrypoint module. 345 * runtime.def (P5): Define. 346 (ARRAYBOUNDS_SLICEP): Define. 347 (ARRAYBOUNDS_INDEXP): Define. 348 (NEWTHROW): Define. 349 (ADCMP2): Remove. 350 (ARRAYCAST): Remove. 351 (SWITCH_STRING): Remove. 352 (SWITCH_USTRING): Remove. 353 (SWITCH_DSTRING): Remove. 354 (SWITCH_ERROR): Remove. 355 * toir.cc (IRVisitor::visit): Update for new front-end interface. 356 (IRVisitor::check_previous_goto): Remove checks for case and default 357 statements. 358 (IRVisitor::visit(SwitchStatement *)): Remove handling of string 359 switch conditions. 360 * typeinfo.cc: Include d-frontend.h. 361 (get_typeinfo_kind): Update for new front-end interface. 362 (make_frontend_typeinfo): Likewise. 363 (TypeInfoVisitor::visit): Likewise. 364 (builtin_typeinfo_p): Likewise. 365 (get_typeinfo_decl): Likewise. 366 (build_typeinfo): Likewise. 367 * types.cc (valist_array_p): Likewise. 368 (make_array_type): Likewise. 369 (merge_aggregate_types): Likewise. 370 (TypeVisitor::visit(TypeBasic *)): Likewise. 371 (TypeVisitor::visit(TypeFunction *)): Likewise. 372 (TypeVisitor::visit(TypeStruct *)): Update comment. 373 * verstr.h: Removed. 374 * d-frontend.h: New file. 375 3762021-11-29 Eric Gallager <egallager@gcc.gnu.org> 377 378 PR other/103021 379 * Make-lang.in: Use ETAGS variable in TAGS target. 380 3812021-11-28 Martin Liska <mliska@suse.cz> 382 383 * d-attribs.cc (parse_optimize_options): Fix thinko. 384 3852021-11-26 Martin Liska <mliska@suse.cz> 386 387 * d-attribs.cc (parse_optimize_options): Check index before 388 accessing cl_options. 389 3902021-11-18 Iain Buclaw <ibuclaw@gdcproject.org> 391 392 * decl.cc (d_finish_decl): Use HOST_WIDE_INT for type size 393 temporaries. 394 3952021-10-22 Eric Gallager <egallager@gcc.gnu.org> 396 397 PR other/102663 398 * Make-lang.in: Allow dvi-formatted documentation 399 to be installed. 400 4012021-10-08 Martin Liska <mliska@suse.cz> 402 403 * d-lang.cc (d_post_options): Use new macro 404 OPTION_SET_P. 405 4062021-10-05 Iain Sandoe <iain@sandoe.co.uk> 407 408 * d-spec.cc (lang_specific_driver): Push the -static-libstdc++ 409 option back onto the command line for targets without support 410 for -Bstatic/dynamic. 411 4122021-10-04 Iain Buclaw <ibuclaw@gdcproject.org> 413 414 PR d/102574 415 * d-spec.cc (lang_specific_driver): Link libstdc++ statically if 416 -static-libstdc++ was given on command-line. 417 4182021-10-04 Iain Buclaw <ibuclaw@gdcproject.org> 419 420 * d-attribs.cc (d_handle_optimize_attribute): Save target node before 421 calling parse_optimize_options in case it changes. 422 4232021-09-12 Iain Buclaw <ibuclaw@gdcproject.org> 424 425 PR d/102185 426 * d-builtins.cc (d_eval_constant_expression): Don't include 427 terminating null pointer in string expression conversion. 428 4292021-08-29 Iain Buclaw <ibuclaw@gdcproject.org> 430 431 * d-codegen.cc: Include dmd/module.h. 432 (build_filename_from_loc): New function. 433 (d_assert_call): Rename to... 434 (build_assert_call): ...this. 435 (build_array_bounds_call): Call arrayboundsp variant of the array 436 bounds failure callback. 437 (build_bounds_condition): Rename to... 438 (build_bounds_index_condition): ...this. Update signature. 439 (build_bounds_slice_condition): New function. 440 (checkaction_trap_p): New function. 441 (d_assert_call): Call assertp variant of assert failure callback. 442 * d-tree.h (class IndexExp): Declare. 443 (class SliceExp): Declare. 444 (build_bounds_condition): Remove. 445 (build_assert_call): Declare. 446 (build_bounds_index_condition): Declare. 447 (build_bounds_slice_condition): Declare. 448 (checkaction_trap_p): Declare. 449 (d_assert_call): Remove. 450 * expr.cc (ExprVisitor::visit(IndexExp *)): Call 451 build_bounds_index_condition. 452 (ExprVisitor::visit(SliceExp *)): Call build_bounds_slice_condition. 453 (ExprVisitor::visit(AssertExp *)): Update setting of libcall. 454 * runtime.cc (enum d_libcall_type): Add LCT_IMMUTABLE_CHARPTR. 455 (get_libcall_type): Handle LCT_IMMUTABLE_CHARPTR. 456 * runtime.def (ASSERT): Rename to... 457 (ASSERTP): ...this. Update signature. 458 (UNITTEST): Rename to... 459 (UNITTESTP): ...this. Update signature. 460 (ARRAY_BOUNDS): Rename to... 461 (ARRAYBOUNDSP): ...this. Updates signature. 462 * toir.cc (IRVisitor::visit(SwitchErrorStatement *)): Update call. 463 4642021-08-29 Iain Buclaw <ibuclaw@gdcproject.org> 465 466 * typeinfo.cc (class TypeInfoVisitor::layout_base): Update comment. 467 4682021-08-29 Iain Buclaw <ibuclaw@gdcproject.org> 469 470 * typeinfo.cc (TypeInfoVisitor::visit(TypeInfoClassDeclaration *)): 471 Use int to store type flags. 472 (TypeInfoVisitor::visit(TypeInfoStructDeclaration *)): Likewise. 473 4742021-08-29 Iain Buclaw <ibuclaw@gdcproject.org> 475 476 * types.cc (TypeVisitor::visit(TypeEnum*)): Get wchar_t type from 477 build_frontend_type. 478 4792021-08-29 Iain Buclaw <ibuclaw@gdcproject.org> 480 481 * d-convert.cc (convert_for_rvalue): Convert switch statement into if 482 condition. 483 4842021-08-29 Iain Buclaw <ibuclaw@gdcproject.org> 485 486 * d-builtins.cc (d_init_versions): Use POINTER_SIZE for testing 487 whether to predefine D_LP64. 488 4892021-08-29 Iain Buclaw <ibuclaw@gdcproject.org> 490 491 PR d/102094 492 * d-codegen.cc (build_frame_type): Set TYPE_CXX_ODR_P. 493 4942021-08-25 Lewis Hyatt <lhyatt@gmail.com> 495 496 PR other/93067 497 * d-lang.cc (d_input_charset_callback): New function. 498 (d_init): Call new function 499 diagnostic_initialize_input_context(). 500 5012021-07-30 Iain Buclaw <ibuclaw@gdcproject.org> 502 503 * expr.cc (binary_op): Remove dead code. 504 5052021-07-30 Iain Buclaw <ibuclaw@gdcproject.org> 506 507 * typeinfo.cc (TypeInfoVisitor::visit (TypeInfoClassDeclaration *)): 508 Always layout initializer for the m_RTInfo field. 509 5102021-07-30 Iain Buclaw <ibuclaw@gdcproject.org> 511 512 * expr.cc (ExprVisitor::visit (AssertExp *)): Don't generate 513 PREDICT_EXPR. 514 5152021-07-30 Iain Buclaw <ibuclaw@gdcproject.org> 516 517 * expr.cc (ExprVisitor::visit (AssignExp *)): Clarify comment 518 for generating static array assignment with literal. 519 5202021-07-30 Iain Buclaw <ibuclaw@gdcproject.org> 521 522 * decl.cc (enum_initializer_decl): Only handle named enums. 523 5242021-07-30 Iain Buclaw <ibuclaw@gdcproject.org> 525 526 * decl.cc (make_thunk): Set COMDAT and visibility of thunks only if 527 they are public. 528 5292021-07-30 Iain Buclaw <ibuclaw@gdcproject.org> 530 531 * decl.cc (DeclVisitor::visit (StructDeclaration *)): Don't use sinit 532 for declaration directly. 533 (DeclVisitor::visit (ClassDeclaration *)): Likewise. 534 (aggregate_initializer_decl): Likewise. Set sinit after creating. 535 5362021-07-30 Iain Buclaw <ibuclaw@gdcproject.org> 537 538 * d-builtins.cc (build_frontend_type): Use Identifier::idPool to 539 generate anonymous field name. 540 5412021-07-30 Iain Buclaw <ibuclaw@gdcproject.org> 542 543 * types.cc (layout_aggregate_type): Call hasMonitor. 544 * typeinfo.cc (TypeInfoVisitor::layout_base): Likewise. 545 (layout_cpp_typeinfo): Likewise. Don't emit vtable unless 546 have_typeinfo_p. 547 5482021-07-30 Iain Buclaw <ibuclaw@gdcproject.org> 549 550 * d-lang.cc (deps_add_target): Insert null terminator in buffer. 551 (deps_write): Likewise. 552 (d_parse_file): Likewise. 553 5542021-07-30 Iain Buclaw <ibuclaw@gdcproject.org> 555 556 * d-builtins.cc (build_frontend_type): Restore builtin_converted_decls 557 length on conversion failure. 558 5592021-07-30 Iain Buclaw <ibuclaw@gdcproject.org> 560 561 * d-codegen.cc (d_nested_class): Rename to ... 562 (get_outer_function): ... this. Handle all aggregate declarations. 563 (d_nested_struct): Remove. 564 (find_this_tree): Use get_outer_function. 565 (get_framedecl): Likewise. 566 5672021-07-29 Iain Buclaw <ibuclaw@gdcproject.org> 568 569 PR d/101672 570 * typeinfo.cc (make_frontend_typeinfo): Generate Object class if it 571 doesn't exist. 572 (check_typeinfo_type): Don't warn if there's no location. 573 5742021-07-29 Iain Buclaw <ibuclaw@gdcproject.org> 575 576 PR d/101664 577 * expr.cc (ExprVisitor::visit (CallExp *)): Use object expression as 578 result for C++ constructor calls. 579 5802021-07-29 Iain Buclaw <ibuclaw@gdcproject.org> 581 582 PR d/96435 583 * d-convert.cc (convert_for_rvalue): New function. 584 * d-tree.h (convert_for_rvalue): Declare. 585 * expr.cc (ExprVisitor::visit (CastExp *)): Use convert_for_rvalue. 586 (build_return_dtor): Likewise. 587 5882021-07-29 Iain Buclaw <ibuclaw@gdcproject.org> 589 590 PR d/101657 591 * d-lang.cc (d_parse_file): Remove generated D header files on error. 592 5932021-07-29 Iain Buclaw <ibuclaw@gdcproject.org> 594 595 PR d/101656 596 * d-diagnostic.cc (escape_d_format): Don't escape quoted format 597 strings. 598 5992021-07-28 Iain Buclaw <ibuclaw@gdcproject.org> 600 601 PR d/101640 602 * expr.cc (binary_op): Use build2 instead of fold_build2. 603 6042021-07-28 Iain Buclaw <ibuclaw@gdcproject.org> 605 606 PR d/101490 607 * dmd/MERGE: Merge upstream dmd 27e388b4c. 608 * d-codegen.cc (build_array_index): Handle void arrays same as byte. 609 * d-convert.cc (convert_expr): Handle converting to zero-sized arrays. 610 6112021-07-28 Iain Buclaw <ibuclaw@gdcproject.org> 612 613 PR d/101441 614 * dmd/MERGE: Merge upstream dmd f8c1ca928. 615 6162021-07-28 Iain Buclaw <ibuclaw@gdcproject.org> 617 618 PR d/101127 619 * d-builtins.cc (d_builtin_function_ext_scope): New function. 620 * d-lang.cc (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): Define. 621 * d-tree.h (d_builtin_function_ext_scope): Declare. 622 6232021-07-28 Iain Buclaw <ibuclaw@gdcproject.org> 624 625 PR d/101619 626 * dmd/MERGE: Merge upstream dmd 1d8386a63. 627 6282021-07-03 Iain Buclaw <ibuclaw@gdcproject.org> 629 630 PR d/101273 631 * toir.cc (IRVisitor::visit (ReturnStatement *)): Detect returns that 632 use a temporary, and replace with return value. 633 6342021-07-02 Iain Buclaw <ibuclaw@gdcproject.org> 635 636 PR d/101282 637 * d-codegen.cc (build_assign): Force target_expr on RHS for non-POD 638 assignment expressions. 639 6402021-06-11 Iain Buclaw <ibuclaw@gdcproject.org> 641 642 PR d/100999 643 * dmd/MERGE: Merge upstream dmd 7a3808254. 644 6452021-06-10 Iain Buclaw <ibuclaw@gdcproject.org> 646 647 PR d/100967 648 * d-frontend.cc (getTypeInfoType): Move TypeInfo checks to 649 check_typeinfo_type and call new function. 650 * d-tree.h (check_typeinfo_type): Declare. 651 * typeinfo.cc: Include dmd/scope.h. 652 (create_frontend_tinfo_types): Generate front-end types even if Object 653 is missing. 654 (build_typeinfo): Move TypeInfo checks to check_typeinfo_type and call 655 new function. 656 (check_typeinfo_type): New function. 657 6582021-06-09 Iain Buclaw <ibuclaw@gdcproject.org> 659 660 PR d/100964 661 * dmd/MERGE: Merge upstream dmd 4a4e46a6f. 662 6632021-06-09 Iain Buclaw <ibuclaw@gdcproject.org> 664 665 PR d/100935 666 * dmd/MERGE: Merge upstream dmd f3fdeb578. 667 6682021-06-04 Iain Buclaw <ibuclaw@gdcproject.org> 669 670 PR d/100882 671 * d-codegen.cc (build_assign): Construct initializations inside 672 TARGET_EXPR_INITIAL. 673 (compound_expr): Remove intermediate expressions that have no 674 side-effects. 675 (return_expr): Construct returns inside TARGET_EXPR_INITIAL. 676 * expr.cc (ExprVisitor::visit (CallExp *)): Remove useless assignment 677 to TARGET_EXPR_SLOT. 678 6792021-05-18 Iain Buclaw <ibuclaw@gdcproject.org> 680 681 * d-incpath.cc (prefixed_path): Use filename_ncmp instead of strncmp. 682 6832021-05-18 Iain Buclaw <ibuclaw@gdcproject.org> 684 685 * types.cc (TypeVisitor::visit (TypeEnum *)): Use startswith function 686 instead of strncmp. 687 6882021-05-18 Iain Buclaw <ibuclaw@gdcproject.org> 689 690 * dmd/dinterpret.c (evaluateIfBuiltin): Revert last change. 691 * dmd/dmangle.c: Likewise. 692 * dmd/hdrgen.c: Likewise. 693 * dmd/identifier.c (Identifier::toHChars2): Likewise. 694 6952021-05-10 Iain Buclaw <ibuclaw@gdcproject.org> 696 697 * dmd/MERGE: Merge upstream dmd b7d146c4c. 698 6992021-05-10 Martin Liska <mliska@suse.cz> 700 701 * d-builtins.cc (do_build_builtin_fn): Use startswith 702 function instead of strncmp. 703 * dmd/dinterpret.c (evaluateIfBuiltin): Likewise. 704 * dmd/dmangle.c: Likewise. 705 * dmd/hdrgen.c: Likewise. 706 * dmd/identifier.c (Identifier::toHChars2): Likewise. 707 7082021-04-19 Iain Buclaw <ibuclaw@gdcproject.org> 709 710 PR d/98457 711 * d-diagnostic.cc (expand_d_format): Handle escaped backticks. 712 (escape_d_format): New funtion. 713 (verror): Call escape_d_format on prefixing strings. 714 (vdeprecation): Likewise. 715 7162021-04-17 Iain Buclaw <ibuclaw@gdcproject.org> 717 718 PR d/99914 719 * d-target.def (d_templates_always_comdat): New hook. 720 * d-tree.h (mark_needed): Remove prototype. 721 * decl.cc: Include d-target.h. 722 (mark_needed): Rename to... 723 (d_mark_needed): ...this. Make static. 724 (set_linkage_for_decl): Put variables in comdat if 725 d_templates_always_comdat. 726 7272021-04-17 Iain Buclaw <ibuclaw@gdcproject.org> 728 729 * d-target.cc (d_handle_target_object_format): New function. 730 (d_language_target_info): Add d_handle_target_object_format as handler 731 for objectFormat key. 732 (Target::getTargetInfo): Continue if handler returned NULL_TREE. 733 7342021-04-14 Iain Buclaw <ibuclaw@gdcproject.org> 735 736 * d-target.cc (Target::_init): Call new targetdm hook to register OS 737 specific target info keys. 738 * d-target.def (d_register_os_target_info): New hook. 739 7402021-04-14 Iain Buclaw <ibuclaw@gdcproject.org> 741 742 * d-builtins.cc (d_add_builtin_version): Remove all setting of 743 target-specific global.params. 744 * typeinfo.cc (create_typeinfo): Don't add argType fields to 745 TypeInfo_Struct. 746 7472021-04-14 Iain Buclaw <ibuclaw@gdcproject.org> 748 749 PR d/99914 750 * decl.cc (DeclVisitor::visit (StructDeclaration *)): Don't set 751 DECL_INSTANTIATED on static initializer declarations. 752 (DeclVisitor::visit (ClassDeclaration *)): Likewise. 753 (DeclVisitor::visit (EnumDeclaration *)): Likewise. 754 (d_finish_decl): Move call to set_linkage_for_decl to... 755 (declare_extern_var): ...here. 756 7572021-04-14 Iain Buclaw <ibuclaw@gdcproject.org> 758 759 * d-target.cc (Target::_init): Call new targetdm hook to register CPU 760 specific target info keys. 761 * d-target.def (d_register_cpu_target_info): New hook. 762 7632021-04-14 Iain Buclaw <ibuclaw@gdcproject.org> 764 765 * d-target.cc (Target::systemLinkage): Return LINKwindows if 766 d_has_stdcall_convention applies to LINKsystem. 767 * d-target.def (d_has_stdcall_convention): New hook. 768 * types.cc (TypeVisitor::visit (TypeFunction *)): Insert "stdcall" 769 function attribute if d_has_stdcall_convention applies to LINKwindows. 770 7712021-04-10 Iain Buclaw <ibuclaw@gdcproject.org> 772 773 * dmd/MERGE: Merge upstream dmd 0450061c8. 774 7752021-04-08 Iain Buclaw <ibuclaw@gdcproject.org> 776 777 * d-attribs.cc: Include fold-const.h and opts.h. 778 (attr_noreturn_exclusions): Add alloc_size. 779 (attr_const_pure_exclusions): Likewise. 780 (attr_inline_exclusions): Add target_clones. 781 (attr_noinline_exclusions): Rename forceinline to always_inline. 782 (attr_target_exclusions): New array. 783 (attr_target_clones_exclusions): New array. 784 (attr_alloc_exclusions): New array. 785 (attr_cold_hot_exclusions): New array. 786 (d_langhook_common_attribute_table): Add new D attribute handlers. 787 (build_attributes): Update to look for gcc.attributes. Issue warning 788 if not given a struct literal. Handle void initialized arguments. 789 (handle_always_inline_attribute): Remove function. 790 (d_handle_noinline_attribute): Don't extract TYPE_LANG_FRONTEND. 791 (d_handle_forceinline_attribute): Rename to... 792 (d_handle_always_inline_attribute): ...this. Remove special handling. 793 (d_handle_flatten_attribute): Don't extract TYPE_LANG_FRONTEND. 794 (d_handle_target_attribute): Likewise. Warn about empty arguments. 795 (d_handle_target_clones_attribute): New function. 796 (optimize_args): New static variable. 797 (parse_optimize_options): New function. 798 (d_handle_optimize_attribute): New function. 799 (d_handle_noclone_attribute): Don't extract TYPE_LANG_FRONTEND. 800 (d_handle_alias_attribute): Remove function. 801 (d_handle_noicf_attribute): New function. 802 (d_handle_noipa_attribute): New function. 803 (d_handle_section_attribute): Call the handle_generic_attribute target 804 hook after performing target independent processing. 805 (d_handle_symver_attribute): New function. 806 (d_handle_noplt_attribute): New function. 807 (positional_argument): New function. 808 (d_handle_alloc_size_attribute): New function. 809 (d_handle_cold_attribute): New function. 810 (d_handle_restrict_attribute): New function. 811 (d_handle_used_attribute): New function. 812 * decl.cc (gcc_attribute_p): Update to look for gcc.attributes. 813 (get_symbol_decl): Update decl source location of old prototypes to 814 the new declaration being merged. 815 * types.cc (layout_aggregate_members): Apply user defined attributes 816 on fields. 817 8182021-04-06 Iain Buclaw <ibuclaw@gdcproject.org> 819 820 PR d/99917 821 * dmd/MERGE: Merge upstream dmd d16195406. 822 8232021-04-06 Iain Buclaw <ibuclaw@gdcproject.org> 824 825 * d-codegen.cc (build_frame_type): Use Array::find to get index of 826 element. 827 8282021-04-06 Iain Buclaw <ibuclaw@gdcproject.org> 829 830 * d-diagnostic.cc (vwarning): Increment gaggedWarnings if warning 831 message was suppressed. 832 (vdeprecation): Likewise for deprecation messages. 833 8342021-04-06 Iain Buclaw <ibuclaw@gdcproject.org> 835 836 * dmd/MERGE: Merge upstream dmd 5cc71ff83. 837 8382021-04-05 Iain Buclaw <ibuclaw@gdcproject.org> 839 840 PR d/99914 841 * d-lang.cc (d_init): Disable flag_weak_templates if no support for 842 weak or one-only symbols. 843 * d-tree.h (VAR_OR_FUNCTION_DECL_CHECK): New macro. 844 (DECL_INSTANTIATED): New macro. 845 (d_comdat_linkage): Remove declaration. 846 (d_linkonce_linkage): Remove declaration. 847 (set_linkage_for_decl): New declaration. 848 * decl.cc (DeclVisitor::visit (StructDeclaration *)): Replace call to 849 d_linkonce_linkage with setting DECL_INSTANTIATED. 850 (DeclVisitor::visit (ClassDeclaration *)): Likewise. 851 (DeclVisitor::visit (EnumDeclaration *)): Likewise. 852 (DeclVisitor::visit (InterfaceDeclaration *)): Remove call to 853 d_linkonce_linkage. 854 (get_symbol_decl): Call set_linkage_for_decl instead of 855 d_linkonce_linkage. 856 (d_finish_decl): Call set_linkage_for_decl. 857 (d_comdat_linkage): Made function static. Only set DECL_COMDAT for 858 DECL_INSTANTIATED decls. 859 (d_linkonce_linkage): Remove function. 860 (d_weak_linkage): New function. 861 (set_linkage_for_decl): New function. 862 * gdc.texi (Runtime Options): Rename -fno-weak to -fno-weak-templates, 863 update documentation of option. 864 * lang.opt (fweak): Rename option to ... 865 (fweak-templates): ... this. Update help string. 866 * modules.cc (get_internal_fn): Add Prot parameter. Set generated 867 function flag. 868 (build_internal_fn): Update call to get_internal_fn. 869 (build_dso_cdtor_fn): Likewise. 870 (register_moduleinfo): Call d_finish_decl on dso_slot_node and 871 dso_initialized_node. 872 * typeinfo.cc (TypeInfoVisitor::internal_reference): Call 873 set_linkage_for_decl instead of d_comdat_linkage. 874 (TypeInfoDeclVisitor::visit (TypeInfoDeclaration *)): Remove calls to 875 d_linkonce_linkage and d_comdat_linkage. 876 (get_cpp_typeinfo_decl): Likewise. 877 8782021-04-03 Iain Buclaw <ibuclaw@gdcproject.org> 879 880 * dmd/MERGE: Merge upstream dmd 3b808e838. 881 * Make-lang.in (D_FRONTEND_OBJS): Add d/chkformat.o. 882 * d-codegen.cc (build_struct_literal): Handle special enums. 883 * d-convert.cc (convert_expr): Handle noreturn type. 884 (convert_for_condition): Likewise. 885 * d-target.cc (Target::_init): Set type for wchar_t. 886 (TargetCPP::derivedClassOffset): New method. 887 (Target::libraryObjectMonitors): New method. 888 * decl.cc (get_symbol_decl): Set TREE_THIS_VOLATILE for functions of 889 type noreturn. 890 * toir.cc (IRVisitor::visit (ReturnStatement *)): Handle returning 891 noreturn types. 892 * types.cc (TypeVisitor::visit (TypeNoreturn *)): New method. 893 (TypeVisitor::visit (TypeEnum *)): Handle special enums. 894 8952021-03-28 Iain Buclaw <ibuclaw@gdcproject.org> 896 897 * d-builtins.cc (d_init_versions): Predefine D_PIE if flag_pie is set. 898 8992021-03-28 Iain Buclaw <ibuclaw@gdcproject.org> 900 901 * d-lang.cc (d_enum_underlying_base_type): New function. 902 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Set as 903 d_enum_underlying_base_type. 904 9052021-03-28 Iain Buclaw <ibuclaw@gdcproject.org> 906 907 * Make-lang.in (DMDGEN_COMPILE): Remove. 908 (d/%.dmdgen.o): Use COMPILER_FOR_BUILD and BUILD_COMPILERFLAGS to 909 build all D generator programs. 910 (D_SYSTEM_H): New macro. 911 (d/idgen.dmdgen.o): Add dependencies to build. 912 (d/impcnvgen.dmdgen.o): Likewise. 913 * d-system.h: Include bconfig.h if GENERATOR_FILE is defined. 914 9152021-03-28 Iain Buclaw <ibuclaw@gdcproject.org> 916 917 * config-lang.in (gtfiles): Remove modules.cc. 918 * modules.cc (struct module_info): Remove GTY marker. 919 (static_ctor_list): Remove variable. 920 (static_dtor_list): Remove variable. 921 (register_moduleinfo): Directly set DECL_STATIC_CONSTRUCTOR on 922 dso_ctor, and DECL_STATIC_DESTRUCTOR on dso_dtor. 923 (d_finish_compilation): Remove static ctor/dtor handling. 924 9252021-03-06 Iain Buclaw <ibuclaw@gdcproject.org> 926 927 * d-lang.cc (d_init_options_struct): Don't set default 928 flag_complex_method. 929 9302021-03-03 Iain Buclaw <ibuclaw@gdcproject.org> 931 932 PR d/99337 933 * dmd/MERGE: Merge upstream dmd a3c9bf422. 934 9352021-02-13 Iain Buclaw <ibuclaw@gdcproject.org> 936 937 * dmd/MERGE: Merge upstream dmd 7132b3537. 938 * Make-lang.in (D_FRONTEND_OBJS): Add d/dsymbolsem.o, d/semantic2.o, 939 d/semantic3.o, and d/templateparamsem.o. 940 * d-compiler.cc (Compiler::genCmain): Update calls to semantic 941 entrypoint functions. 942 * d-lang.cc (d_parse_file): Likewise. 943 * typeinfo.cc (make_frontend_typeinfo): Likewise. 944 9452021-02-05 Iain Buclaw <ibuclaw@gdcproject.org> 946 947 * d-tree.h (DEF_D_INTRINSIC): Don't insert INTRINSIC_ into the 948 intrinsic code name. 949 * intrinsics.cc (DEF_D_INTRINSIC): Don't insert INTRISIC_ and 950 BUILT_IN_ into the intrinsic and built-in code names. 951 * intrinsics.def: Explicitly use full intrinsic and built-in 952 codes in all definitions. 953 9542021-02-04 Iain Buclaw <ibuclaw@gdcproject.org> 955 956 * dmd/MERGE: Merge upstream dmd 46133f761. 957 * d-builtins.cc (d_build_builtins_module): Set builtins as BUILTINgcc. 958 (maybe_set_builtin_1): Likewise. 959 * d-frontend.cc (eval_builtin): Adjust condition for early return. 960 * intrinsics.cc (maybe_set_intrinsic): Set intrinsics as BUILTINgcc. 961 (maybe_expand_intrinsic): Add case for INTRINSIC_BSWAP16. 962 * intrinsics.def (INTRINSIC_BT): Update signature. 963 (INTRINSIC_BT64): Likewise. 964 (INTRINSIC_BSWAP16): New intrinsic. 965 (INTRINSIC_VLOAD8): Update module. 966 (INTRINSIC_VLOAD16): Likewise. 967 (INTRINSIC_VLOAD32): Likewise. 968 (INTRINSIC_VLOAD64): Likewise. 969 (INTRINSIC_VSTORE8): Likewise. 970 (INTRINSIC_VSTORE16): Likewise. 971 (INTRINSIC_VSTORE32): Likewise. 972 (INTRINSIC_VSTORE64): Likewise. 973 (INTRINSIC_ADDS): Update signature. 974 (INTRINSIC_ADDSL): Likewise. 975 (INTRINSIC_ADDU): Likewise. 976 (INTRINSIC_ADDUL): Likewise. 977 (INTRINSIC_SUBS): Likewise. 978 (INTRINSIC_SUBSL): Likewise. 979 (INTRINSIC_SUBU): Likewise. 980 (INTRINSIC_SUBUL): Likewise. 981 (INTRINSIC_MULS): Likewise. 982 (INTRINSIC_MULSL): Likewise. 983 (INTRINSIC_MULU): Likewise. 984 (INTRINSIC_MULUI): Likewise. 985 (INTRINSIC_MULUL): Likewise. 986 (INTRINSIC_NEGS): Likewise. 987 (INTRINSIC_NEGSL): Likewise. 988 9892021-02-02 Iain Buclaw <ibuclaw@gdcproject.org> 990 991 PR d/98921 992 * dmd/MERGE: Merge upstream dmd 5e2a81d9c. 993 9942021-01-30 Iain Buclaw <ibuclaw@gdcproject.org> 995 996 * typeinfo.cc (TypeInfoVisitor::visit (TypeInfoDeclaration *)): Don't 997 layout m_arg1 and m_arg2 fields. 998 9992021-01-26 Iain Buclaw <ibuclaw@gdcproject.org> 1000 1001 * dmd/MERGE: Merge upstream dmd 609c3ce2d. 1002 * d-compiler.cc (Compiler::loadModule): Rename to ... 1003 (Compiler::onParseModule): ... this. 1004 (Compiler::onImport): New function. 1005 * d-lang.cc (d_parse_file): Remove call to Compiler::loadModule. 1006 10072021-01-21 Iain Buclaw <ibuclaw@gdcproject.org> 1008 1009 * dmd/MERGE: Merge upstream dmd 3a7ebef73. 1010 10112021-01-11 Iain Buclaw <ibuclaw@gdcproject.org> 1012 1013 * dmd/MERGE: Merge upstream dmd 2d3d13748. 1014 * d-lang.cc (d_handle_option): Remove OPT_ftransition_checkimports and 1015 OPT_ftransition_import. 1016 * gdc.texi (Warnings): Remove documentation for -ftransition=import 1017 and -ftransition=checkimports. 1018 * lang.opt (ftransition=checkimports): Remove. 1019 (ftransition=import): Remove. 1020 10212021-01-09 Iain Buclaw <ibuclaw@gdcproject.org> 1022 1023 * dmd/MERGE: Merge upstream dmd cb1106ad5. 1024 10252021-01-09 Iain Buclaw <ibuclaw@gdcproject.org> 1026 1027 * dmd/MERGE: Merge upstream dmd 9bba772fa. 1028 10292021-01-09 Iain Buclaw <ibuclaw@gdcproject.org> 1030 1031 * dmd/MERGE: Merge upstream dmd e598f69c0. 1032 10332021-01-07 Iain Buclaw <ibuclaw@gdcproject.org> 1034 1035 * dmd/MERGE: Merge upstream dmd 9038e64c5. 1036 * d-builtins.cc (build_frontend_type): Update call to 1037 Parameter::create. 1038 10392021-01-05 Iain Buclaw <ibuclaw@gdcproject.org> 1040 1041 * dmd/MERGE: Merge upstream dmd a5c86f5b9. 1042 * d-builtins.cc (d_eval_constant_expression): Handle ADDR_EXPR trees 1043 created by build_string_literal. 1044 * d-frontend.cc (retStyle): Remove function. 1045 * d-target.cc (d_language_target_info): New variable. 1046 (d_target_info_table): Likewise. 1047 (Target::_init): Initialize d_target_info_table. 1048 (Target::isReturnOnStack): New function. 1049 (d_add_target_info_handlers): Likewise. 1050 (d_handle_target_cpp_std): Likewise. 1051 (d_handle_target_cpp_runtime_library): Likewise. 1052 (Target::getTargetInfo): Likewise. 1053 * d-target.h (struct d_target_info_spec): New type. 1054 (d_add_target_info_handlers): Declare. 1055 10562021-01-01 Jakub Jelinek <jakub@redhat.com> 1057 1058 * gdc.texi: Bump @copyrights-d year. 1059 10602021-01-01 Jakub Jelinek <jakub@redhat.com> 1061 1062 * ChangeLog-2020: Rotate ChangeLog. New file. 1063 1064Copyright (C) 2021 Free Software Foundation, Inc. 1065 1066Copying and distribution of this file, with or without modification, 1067are permitted in any medium without royalty provided the copyright 1068notice and this notice are preserved. 1069