1 2013-05-16 Jason Merrill <jason@redhat.com>
3 * Make-lang.in (go1$(exeext)): Use link mutex.
5 2013-01-16 Shenghou Ma <minux.ma@gmail.com>
7 * gospec.c: pass -u pthread_create to linker when static linking.
9 2012-12-21 Ian Lance Taylor <iant@google.com>
12 * go-system.h: Don't include <cstdio>.
14 2012-12-18 Ian Lance Taylor <iant@google.com>
17 * gospec.c: Revert last patch.
19 2012-12-18 Andreas Schwab <schwab@linux-m68k.org>
22 * gospec.c (LIBATOMIC): Define.
23 (LIBATOMIC_PROFILE): Define.
24 (lang_specific_driver): Add LIBATOMIC[_PROFILE] option.
26 2012-11-29 Ian Lance Taylor <iant@google.com>
28 * go-gcc.cc: Include "output.h".
29 (global_variable): Add is_unique_section parameter.
30 (global_variable_set_init): Adjust unique section if necessary.
31 * Make-lang.in (go/go-gcc.o): Add dependency on output.h.
33 2012-11-17 Diego Novillo <dnovillo@google.com>
35 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
37 * go-lang.c: Use new vec API in vec.h.
39 2012-11-16 Ian Lance Taylor <iant@google.com>
41 * Make-lang.in (gccgo$(exeext)): Add + at start of command.
42 (go1$(exeext)): Likewise.
44 2012-10-30 Ian Lance Taylor <iant@google.com>
46 * lang.opt (-fgo-relative-import-path): New option.
47 * go-lang.c (go_relative_import_path): New static variable.
48 (go_langhook_init): Pass go_relative_import_path to
50 (go_langhook_handle_option): Handle -fgo-relative-import-path.
51 * go-c.h (go_create_gogo): Update declaration.
52 * gccgo.texi (Invoking gccgo): Document
53 -fgo-relative-import-path.
55 2012-09-17 Ian Lance Taylor <iant@google.com>
57 * config-lang.in (target_libs): Add target-libbacktrace.
59 2012-09-16 Ian Lance Taylor <iant@google.com>
61 * Make-lang.in (go/gogo.o): Depend on filenames.h.
63 2012-08-14 Diego Novillo <dnovillo@google.com>
65 Merge from cxx-conversion branch. Configury.
67 * go-c.h: Remove all handlers of ENABLE_BUILD_WITH_CXX.
68 * go-gcc.cc: Likewise.
69 * go-system.h: Likewise.
71 2012-07-24 Uros Bizjak <ubizjak@gmail.com>
73 * go-lang.c (lang_decl): Add variable_size GTY option.
75 2012-05-09 Ian Lance Taylor <iant@google.com>
77 * lang.opt: Add -fgo-pkgpath.
78 * go-lang.c (go_pkgpath): New static variable.
79 (go_prefix): New static variable.
80 (go_langhook_init): Pass go_pkgpath and go_prefix to
82 (go_langhook_handle_option): Handle -fgo-pkgpath. Change
83 -fgo-prefix handling to just set go_prefix.
84 * go-c.h (go_set_prefix): Don't declare.
85 (go_create_gogo): Add pkgpath and prefix to declaration.
86 * go-gcc.cc (Gcc_backend::global_variable): Change unique_prefix
87 to pkgpath. Don't include the package name in the asm name.
88 * gccgo.texi (Invoking gccgo): Document -fgo-pkgpath. Update the
91 2012-04-23 Ian Lance Taylor <iant@google.com>
93 * go-lang.c (go_langhook_init): Set MPFR precision to 256.
95 2012-04-20 Ian Lance Taylor <iant@google.com>
97 * lang.opt: Add -fgo-check-divide-zero and
98 -fgo-check-divide-overflow.
99 * gccgo.texi (Invoking gccgo): Document new options.
101 2012-04-18 Steven Bosscher <steven@gcc.gnu.org>
103 * go-gcc.cc (Gcc_backend::switch_statement): Build SWITCH_EXPR
104 with NULL_TREE type instead of void_type_node.
106 2012-03-09 Ian Lance Taylor <iant@google.com>
108 * go-gcc.cc (Gcc_backend::assignment_statement): Convert the rhs
109 to the lhs type if necessary.
111 2012-03-08 Ian Lance Taylor <iant@google.com>
113 * go-gcc.cc (Gcc_backend::init_statement): Don't initialize a
115 (go_non_zero_struct): New global variable.
116 (Gcc_backend::non_zero_size_type): New function.
117 (Gcc_backend::global_variable): Don't build an assignment for a
119 * go-c.h (go_non_zero_struct): Declare.
120 * config-lang.in (gtfiles): Add go-c.h.
122 2012-02-29 Ian Lance Taylor <iant@google.com>
124 * go-gcc.cc (class Gcc_tree): Add set_tree method.
125 (set_placeholder_pointer_type): When setting to a pointer to
126 error, set to error_mark_node.
128 2012-02-23 Richard Guenther <rguenther@suse.de>
130 * go-gcc.cc (Gcc_backend::placeholder_pointer_type): Use
131 build_distinct_type_copy.
133 2012-02-17 Ian Lance Taylor <iant@google.com>
135 * Make-lang.in (go/import.o): Add dependency on $(GO_LEX_H).
137 2012-02-17 Ian Lance Taylor <iant@google.com>
139 * gospec.c (lang_specific_driver): If linking, and no -o option
142 2012-02-14 Ian Lance Taylor <iant@google.com>
145 * Make-lang.in (gccgo-cross$(exeext)): New target.
146 (go.all.cross): Depend on gccgo-cross$(exeext) instead of
148 (go.install-common): Only install GCCGO_TARGET_INSTALL_NAME if
149 gccgo-cross$(exeext) does not exist.
151 2012-02-07 Ian Lance Taylor <iant@google.com>
153 * gccgo.texi (Function Names): Document //extern instead of
156 2012-02-01 Jakub Jelinek <jakub@redhat.com>
159 * go-lang.c (go_langhook_type_for_mode): For TImode and 64-bit HWI
160 return build_nonstandard_integer_type result if possible.
162 2012-01-21 Ian Lance Taylor <iant@google.com>
164 * go-gcc.cc (Gcc_backend::type_size): Check for error_mark_node.
165 (Gcc_backend::type_alignment): Likewise.
166 (Gcc_backend::type_field_alignment): Likewise.
167 (Gcc_backend::type_field_offset): Likewise.
169 2012-01-20 Ian Lance Taylor <iant@google.com>
171 * go-gcc.cc (Gcc_backend::placeholder_struct_type): Permit name to
173 (Gcc_backend::set_placeholder_struct_type): Likewise.
175 2012-01-17 Ian Lance Taylor <iant@google.com>
177 * gospec.c (lang_specific_driver): If we see -S without -o, add -o
178 BASE.s rather than -o BASE.o.
180 2012-01-11 Ian Lance Taylor <iant@google.com>
182 * go-lang.c (go_langhook_init): Initialize void_list_node before
183 calling go_create_gogo.
185 2012-01-10 Ian Lance Taylor <iant@google.com>
187 * go-gcc.cc (Gcc_backend::type_size): New function.
188 (Gcc_backend::type_alignment): New function.
189 (Gcc_backend::type_field_alignment): New function.
190 (Gcc_backend::type_field_offset): New function.
191 * go-backend.c (go_type_alignment): Remove.
192 * go-c.h (go_type_alignment): Don't declare.
194 2011-12-27 Ian Lance Taylor <iant@google.com>
196 * go-gcc.cc (Gcc_backend::set_placeholder_struct_type): Use
197 build_distinct_type_copy rather than build_variant_type_copy.
198 (Gcc_backend::set_placeholder_array_type): Likewise.
199 (Gcc_backend::named_type): Add special handling for builtin
202 2011-12-22 Ian Lance Taylor <iant@google.com>
204 * go-gcc.cc (Gcc_backend::set_placeholder_pointer_type): Arrange
205 for the type name to have a DECL_ORIGINAL_TYPE as gcc expects.
206 (Gcc_backend::set_placeholder_struct_type): Likewise.
207 (Gcc_backend::set_placeholder_array_type): Likewise.
208 (Gcc_backend::named_type): Set DECL_ORIGINAL_TYPE.
210 2011-12-13 Ian Lance Taylor <iant@google.com>
212 * go-backend.c: #include "simple-object.h" and "intl.h".
213 (GO_EXPORT_SEGMENT_NAME): Define if not defined.
214 (GO_EXPORT_SECTION_NAME): Likewise.
215 (go_write_export_data): Use GO_EXPORT_SECTION_NAME.
216 (go_read_export_data): New function.
217 * go-c.h (go_read_export_data): Declare.
219 2011-11-29 Sanjoy Das <thedigitalangel@gmail.com>
220 Ian Lance Taylor <iant@google.com>
222 * go-location.h: New file.
223 * go-linemap.cc: New file.
224 * go-gcc.cc: Change all uses of source_location to Location.
225 * Make-lang.in (GO_OBJS): Add go/go-linemap.o.
226 (GO_LINEMAP_H): New variable.
227 (GO_LEX_H): Use $(GO_LINEMAP_H).
228 (GO_GOGO_H, GO_TYPES_H, GO_IMPORT_H): Likewise.
229 (go/go-linemap.o): New target.
231 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
233 * Make-lang.in (gospec.o): Pass SHLIB instead of SHLIB_LINK.
235 2011-08-24 Roberto Lublinerman <rluble@gmail.com>
237 * lang.opt: Add fgo-optimize-.
238 * go-lang.c (go_langhook_handle_option): Handle OPT_fgo_optimize.
239 * go-c.h (go_enable_optimize): Declare.
240 * Make-lang.in (GO_OBJS): Add go/go-optimize.o.
241 (GO_EXPORT_H): Define.
242 (GO_IMPORT_H): Add $(GO_EXPORT_H).
243 (GO_AST_DUMP_H): Define.
244 (go/ast-dump.o, go/statements.o): Use GO_AST_DUMP_H.
245 (go/export.o, go/gogo.o, go/import.o): Use GO_EXPORT_H.
246 (go/types.o): Likewise.
247 (go/expressions.o): Use GO_AST_DUMP_H and GO_EXPORT_H.
248 (go/go-optimize.o): New target.
250 2011-08-24 Joseph Myers <joseph@codesourcery.com>
252 * Make-lang.in (CFLAGS-go/go-lang.o): New.
253 (go/go-lang.o): Remove explicit compilation rule.
255 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
257 * Make-lang.in (gccgo$(exeext)): Add $(EXTRA_GCC_LIBS).
259 2011-08-02 Roberto Lublinerman <rluble@gmail.com>
261 * Make-lang.in (GO_OBJS): Add go/ast-dump.o.
262 (go/ast-dump.o): New target.
263 (go/expressions.o): Depend on go/gofrontend/ast-dump.h.
264 (go/statements.o): Likewise.
266 2011-07-06 Richard Guenther <rguenther@suse.de>
268 * go-lang.c (go_langhook_init):
269 Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
271 2011-06-14 Joseph Myers <joseph@codesourcery.com>
273 * Make-lang.in (go/go-lang.o, go/go-backend.o): Update
275 * go-backend.c: Include common/common-target.h.
276 (go_write_export_data): Use targetm_common.have_named_sections.
277 * go-lang.c: Include common/common-target.h.
278 (go_langhook_init_options_struct): Use
279 targetm_common.supports_split_stack.
281 2011-06-13 Ian Lance Taylor <iant@google.com>
283 * Make-lang.in (go/expressions.o): Depend on $(GO_RUNTIME_H).
285 2011-06-10 Ian Lance Taylor <iant@google.com>
287 * go-gcc.cc: Include "toplev.h".
288 (Gcc_backend::immutable_struct): New function.
289 (Gcc_backend::immutable_struct_set_init): New function.
290 (Gcc_backend::immutable_struct_reference): New function.
291 * Make-lang.in (go/go-gcc.o): Depend on toplev.h.
293 2011-06-09 Ian Lance Taylor <iant@google.com>
295 * go-gcc.cc (Gcc_backend::zero_expression): New function.
297 2011-06-07 Richard Guenther <rguenther@suse.de>
299 * go-lang.c (go_langhook_init): Do not set
300 size_type_node or call set_sizetype.
302 2011-05-27 Ian Lance Taylor <iant@google.com>
304 * go-backend.c: Include "output.h".
305 (go_write_export_data): New function.
306 * go-c.h (go_write_export_data): Declare.
307 * Make-lang.in (go/go-backend.o): Depend on output.h.
308 (go/export.o): Depend on $(GO_C_H). Do not depend on
309 $(MACHMODE_H), output.h, or $(TARGET_H).
311 2011-05-24 Joseph Myers <joseph@codesourcery.com>
313 * Make-lang.in (GCCGO_OBJS): Remove prefix.o.
314 (gccgo$(exeext)): Use libcommon-target.a.
316 2011-05-20 Joseph Myers <joseph@codesourcery.com>
318 * Make-lang.in (GCCGO_OBJS): Remove intl.o and version.o.
320 2011-05-13 Ian Lance Taylor <iant@google.com>
322 * go-gcc.cc (Gcc_backend::function_type): When building a struct
323 for multiple results, check that all fields types have a size.
324 (Gcc_backend::placeholder_pointer_type): Permit name to be empty.
326 2011-05-12 Ian Lance Taylor <iant@google.com>
328 * go-gcc.cc (Gcc_backend::local_variable): Add is_address_taken
330 (Gcc_backend::parameter_variable): Likewise.
332 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
334 * go-lang.c (global_bindings_p): Return bool and simplify.
336 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
338 * go-gcc.cc (Gcc_backend::switch_statement): Call build_case_label.
340 2011-05-04 Ian Lance Taylor <iant@google.com>
342 * go-gcc.cc (Gcc_backend::struct_type): Call fill_in_struct.
343 (Gcc_backend::fill_in_struct): New function.
344 (Gcc_backend::array_type): Implement.
345 (Gcc_backend::fill_in_array): New function.
346 (Gcc_backend::placeholder_pointer_type): New function.
347 (Gcc_backend::set_placeholder_pointer_type): New function.
348 (Gcc_backend::set_placeholder_function_type): New function.
349 (Gcc_backend::placeholder_struct_type): New function.
350 (Gcc_backend::set_placeholder_struct_type): New function.
351 (Gcc_backend::placeholder_array_type): New function.
352 (Gcc_backend::set_placeholder_array_type): New function.
353 (Gcc_backend::named_type): New function.
354 (Gcc_backend::circular_pointer_type): New function.
355 (Gcc_backend::is_circular_pointer_type): New function.
357 2011-04-26 Ian Lance Taylor <iant@google.com>
359 * go-gcc.cc (Gcc_backend::struct_type): Implement.
361 2011-04-25 Ian Lance Taylor <iant@google.com>
363 * go-gcc.cc (Gcc_backend::error_type): Implement.
364 (Gcc_backend::string_type): Remove.
365 (Gcc_backend::function_type): Change signature and implement.
366 (Gcc_backend::struct_type): Change signature.
367 (Gcc_backend::slice_type, Gcc_backend::map_type): Remove.
368 (Gcc_backend::channel_type, Gcc_backend::interface_type): Remove.
369 (Gcc_backend::pointer_type): Check for error.
370 * Make-lang.in (go/types.o): Depend on go/gofrontend/backend.h.
372 2011-04-25 Evan Shaw <edsrzf@gmail.com>
374 * go-gcc.c (class Gcc_tree): Make get_tree const.
375 (Gcc_backend::void_type): Implement.
376 (Gcc_backend::bool_type): Implement.
377 (Gcc_backend::integer_type): Implement.
378 (Gcc_backend::float_type): Implement.
379 (Gcc_backend::complex_type): New function.
380 (Gcc_backend::pointer_type): New function.
381 (Gcc_backend::make_type): New function.
382 (type_to_tree): New function.
384 2011-04-21 Ian Lance Taylor <iant@google.com>
386 * go-system.h (go_assert, go_unreachable): Define.
388 2011-04-19 Ian Lance Taylor <iant@google.com>
390 * go-system.h: Include "intl.h".
391 * Make-lang.in (GO_SYSTEM_H): Add intl.h.
392 (go/statements.o): Remove dependencies on intl.h $(TREE_H)
393 $(GIMPLE_H) convert.h tree-iterator.h $(TREE_FLOW_H) $(REAL_H).
395 2011-04-19 Ian Lance Taylor <iant@google.com>
397 * go-gcc.cc (Gcc_backend::temporary_variable): New function.
399 2011-04-19 Ian Lance Taylor <iant@google.com>
401 * go-gcc.cc (class Bblock): Define.
402 (Gcc_backend::if_statement): Change then_block and else_block to
404 (Gcc_backend::block): New function.
405 (Gcc_backend::block_add_statements): New function.
406 (Gcc_backend::block_statement): New function.
407 (tree_to_block, block_to_tree): New functions.
409 2011-04-18 Ian Lance Taylor <iant@google.com>
411 * go-gcc.cc: Include "go-c.h".
412 (class Bvariable): Define.
413 (Gcc_backend::init_statement): New function.
414 (Gcc_backend::global_variable): New function.
415 (Gcc_backend::global_variable_set_init): New function.
416 (Gcc_backend::local_variable): New function.
417 (Gcc_backend::parameter_variable): New function.
418 (tree_to_type, var_to_tree): New functions.
419 * Make-lang.in (go/go-gcc.o): Depend on $(GO_C_H).
420 * (go/gogo-tree.o): Depend on go/gofrontend/backend.h.
422 2011-04-15 Ian Lance Taylor <iant@google.com>
424 * go-gcc.cc (Gcc_backend::compound_statement): New function.
425 (Gcc_backend::assignment_statement): Use error_statement.
426 (Gcc_backend::return_statement): Likewise.
427 (Gcc_backend::if_statement): Likewise.
428 (Gcc_backend::switch_statement): Likewise.
429 (Gcc_backend::statement_list): Likewise.
431 2011-04-14 Ian Lance Taylor <iant@google.com>
433 * go-gcc.cc (Backend::error_statement): New function.
435 2011-04-13 Ian Lance Taylor <iant@google.com>
437 * Make-lang.in (go/gogo-tree.o): depend on $(GO_RUNTIME_H).
439 2011-04-13 Ian Lance Taylor <iant@google.com>
441 * Make-lang.in (GO_OBJS): Add go/runtime.o.
442 (GO_RUNTIME_H): New variable.
443 (go/runtime.o): New target.
444 (go/gogo.o): Depend on $(GO_RUNTIME_H).
445 (go/statements.o): Likewise.
447 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
449 * go-lang.c (union lang_tree_node): Check for TS_COMMON before
452 2011-04-06 Ian Lance Taylor <iant@google.com>
454 * go-gcc.cc (if_statement): Use build3_loc.
455 (Gcc_backend::switch_statement): New function.
456 (Gcc_backend::statement_list): New function.
458 2011-04-06 Ian Lance Taylor <iant@google.com>
460 * go-gcc.cc (Gcc_backend::if_statement): New function.
461 (tree_to_stat): New function.
462 (expr_to_tree): Renamed from expression_to_tree.
463 (stat_to_tree): Renamed from statement_to_tree.
465 2011-04-06 Ian Lance Taylor <iant@google.com>
467 * go-gcc.cc (Gcc_backend::expression_statement): New function.
469 2011-04-04 Ian Lance Taylor <iant@google.com>
471 * go-gcc.c (class Blabel): Define.
472 (Gcc_backend::make_expression): New function.
473 (get_identifier_from_string): New function.
474 (Gcc_backend::label): New function.
475 (Gcc_backend::label_definition_statement): New function.
476 (Gcc_backend::goto_statement): New function.
477 (Gcc_backend::label_address): New function.
478 (expression_to_tree): New function.
479 * Make-lang.in (go/expressions.o): Depend on
480 go/gofrontend/backend.h.
481 (go/gogo.o): Likewise.
483 2011-04-04 Ian Lance Taylor <iant@google.com>
485 * go-gcc.cc: #include "tree-iterator.h", "gimple.h", and "gogo.h".
486 (class Bfunction): Define.
487 (Gcc_backend::assignment_statement): Rename from assignment.
489 (Gcc_backend::return_statement): New function.
490 (tree_to_function): New function.
491 * Make-lang.in (go/go-gcc.o): Depend on tree-iterator.h,
492 $(GIMPLE_H), and $(GO_GOGO_H).
494 2011-04-03 Ian Lance Taylor <iant@google.com>
496 * go-gcc.cc: New file.
497 * Make-lang.in (GO_OBJS): Add go/go-gcc.o.
498 (go/go-gcc.o): New target.
499 (go/go.o): Depend on go/gofrontend/backend.h.
500 (go/statements.o): Likewise.
502 2011-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
504 * gccgo.texi (Top, Import and Export): Fix a typo and a markup nit.
506 2011-02-08 Ian Lance Taylor <iant@google.com>
508 * go-lang.c (go_langhook_init_options_struct): Set
509 frontend_set_flag_errno_math. Don't set x_flag_trapping_math.
511 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
513 * gospec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
514 LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
516 2011-01-21 Ian Lance Taylor <iant@google.com>
518 * go-lang.c (go_langhook_init): Omit float_type_size when calling
520 * go-c.h: Update declaration of go_create_gogo.
522 2011-01-13 Ian Lance Taylor <iant@google.com>
524 * go-backend.c: Include "rtl.h" and "target.h".
525 (go_imported_unsafe): New function.
526 * go-c.h (go_imported_unsafe): Declare.
527 * Make-lang.in (go/go-backend.o): Depend on $(RTL_H).
528 (go/gogo-tree.o): Remove dependency on $(RTL_H).
529 (go/unsafe.o): Depend on $(GO_C_H).
531 2010-12-31 Joern Rennecke <amylaar@spamcop.net>
534 * go-backend.c: (go_field_alignment): Add ATTRIBUTE_UNUSED to
537 2010-12-21 Ian Lance Taylor <iant@google.com>
539 * Make-lang.in (check-go): Remove.
540 (lang_checks_parallelized): Add check-go.
541 (check_go_parallelize): Set.
543 2010-12-13 Ian Lance Taylor <iant@google.com>
545 * gospec.c (lang_specific_driver): Add a -o option if not linking
546 and there is no -o option already.
548 2010-12-07 Ian Lance Taylor <iant@google.com>
550 PR tree-optimization/46805
551 PR tree-optimization/46833
552 * go-lang.c (go_langhook_type_for_mode): Handle vector modes.
554 2010-12-06 Ian Lance Taylor <iant@google.com>
558 * go-lang.c (go_char_p): Define type and vectors.
559 (go_search_dirs): New static variable.
560 (go_langhook_handle_option): Use version and version/machine
562 (go_langhook_post_options): Add non-specific -L paths.
563 * Make-lang.in (go/go-lang.o): Define DEFAULT_TARGET_VERSION and
564 DEFAULT_TARGET_MACHINE when compiling.
565 * gccgo.texi (Invoking gccgo): Only document -L for linking.
566 (Import and Export): Don't mention -L for finding import files.
568 2010-12-03 Ian Lance Taylor <iant@google.com>
571 * go-backend.c: New file.
572 * go-c.h (go_type_alignment): Declare.
573 (go_field_alignment, go_trampoline_info): Declare.
574 * Make-lang.in (GO_OBJS): Add go/go-backend.o.
575 (go/go-backend.o): New target.
576 (go/go-lang.o): Make dependencies match source file.
577 (go/expressions.o): Don't depend on $(TM_H) $(TM_P_H).
578 (go/gogo-tree.o): Don't depend on $(TM_H).
580 2010-12-03 Ian Lance Taylor <iant@google.com>
582 * config-lang.in (build_by_default): Set to no.
584 2010-12-02 Ian Lance Taylor <iant@google.com>
586 Go frontend added to gcc repository.