* inclhack.def (AAB_aix_fcntl): New fix.
[official-gcc.git] / gcc / go / ChangeLog
blob86ef0c9a9b30c9396681fd6098d4a0d583bfc72b
1 2012-09-17  Ian Lance Taylor  <iant@google.com>
3         * config-lang.in (target_libs): Add target-libbacktrace.
5 2012-09-16  Ian Lance Taylor  <iant@google.com>
7         * Make-lang.in (go/gogo.o): Depend on filenames.h.
9 2012-08-14   Diego Novillo  <dnovillo@google.com>
11         Merge from cxx-conversion branch.  Configury.
13         * go-c.h: Remove all handlers of ENABLE_BUILD_WITH_CXX.
14         * go-gcc.cc: Likewise.
15         * go-system.h: Likewise.
17 2012-07-24  Uros Bizjak  <ubizjak@gmail.com>
19         * go-lang.c (lang_decl): Add variable_size GTY option.
21 2012-05-09  Ian Lance Taylor  <iant@google.com>
23         * lang.opt: Add -fgo-pkgpath.
24         * go-lang.c (go_pkgpath): New static variable.
25         (go_prefix): New static variable.
26         (go_langhook_init): Pass go_pkgpath and go_prefix to
27         go_create_gogo.
28         (go_langhook_handle_option): Handle -fgo-pkgpath.  Change
29         -fgo-prefix handling to just set go_prefix.
30         * go-c.h (go_set_prefix): Don't declare.
31         (go_create_gogo): Add pkgpath and prefix to declaration.
32         * go-gcc.cc (Gcc_backend::global_variable): Change unique_prefix
33         to pkgpath.  Don't include the package name in the asm name.
34         * gccgo.texi (Invoking gccgo): Document -fgo-pkgpath.  Update the
35         docs for -fgo-prefix.
37 2012-04-23  Ian Lance Taylor  <iant@google.com>
39         * go-lang.c (go_langhook_init): Set MPFR precision to 256.
41 2012-04-20  Ian Lance Taylor  <iant@google.com>
43         * lang.opt: Add -fgo-check-divide-zero and
44         -fgo-check-divide-overflow.
45         * gccgo.texi (Invoking gccgo): Document new options.
47 2012-04-18  Steven Bosscher  <steven@gcc.gnu.org>
49         * go-gcc.cc (Gcc_backend::switch_statement): Build SWITCH_EXPR
50         with NULL_TREE type instead of void_type_node.
52 2012-03-09  Ian Lance Taylor  <iant@google.com>
54         * go-gcc.cc (Gcc_backend::assignment_statement): Convert the rhs
55         to the lhs type if necessary.
57 2012-03-08  Ian Lance Taylor  <iant@google.com>
59         * go-gcc.cc (Gcc_backend::init_statement): Don't initialize a
60         zero-sized variable.
61         (go_non_zero_struct): New global variable.
62         (Gcc_backend::non_zero_size_type): New function.
63         (Gcc_backend::global_variable): Don't build an assignment for a
64         zero-sized value.
65         * go-c.h (go_non_zero_struct): Declare.
66         * config-lang.in (gtfiles): Add go-c.h.
68 2012-02-29  Ian Lance Taylor  <iant@google.com>
70         * go-gcc.cc (class Gcc_tree): Add set_tree method.
71         (set_placeholder_pointer_type): When setting to a pointer to
72         error, set to error_mark_node.
74 2012-02-23  Richard Guenther  <rguenther@suse.de>
76         * go-gcc.cc (Gcc_backend::placeholder_pointer_type): Use
77         build_distinct_type_copy.
79 2012-02-17  Ian Lance Taylor  <iant@google.com>
81         * Make-lang.in (go/import.o): Add dependency on $(GO_LEX_H).
83 2012-02-17  Ian Lance Taylor  <iant@google.com>
85         * gospec.c (lang_specific_driver): If linking, and no -o option
86         was used, add one.
88 2012-02-14  Ian Lance Taylor  <iant@google.com>
90         PR go/48411
91         * Make-lang.in (gccgo-cross$(exeext)): New target.
92         (go.all.cross): Depend on gccgo-cross$(exeext) instead of
93         gccgo$(exeext).
94         (go.install-common): Only install GCCGO_TARGET_INSTALL_NAME if
95         gccgo-cross$(exeext) does not exist.
97 2012-02-07  Ian Lance Taylor  <iant@google.com>
99         * gccgo.texi (Function Names): Document //extern instead of
100         __asm__.
102 2012-02-01  Jakub Jelinek  <jakub@redhat.com>
104         PR target/52079
105         * go-lang.c (go_langhook_type_for_mode): For TImode and 64-bit HWI
106         return build_nonstandard_integer_type result if possible.
108 2012-01-21  Ian Lance Taylor  <iant@google.com>
110         * go-gcc.cc (Gcc_backend::type_size): Check for error_mark_node.
111         (Gcc_backend::type_alignment): Likewise.
112         (Gcc_backend::type_field_alignment): Likewise.
113         (Gcc_backend::type_field_offset): Likewise.
115 2012-01-20  Ian Lance Taylor  <iant@google.com>
117         * go-gcc.cc (Gcc_backend::placeholder_struct_type): Permit name to
118         be empty.
119         (Gcc_backend::set_placeholder_struct_type): Likewise.
121 2012-01-17  Ian Lance Taylor  <iant@google.com>
123         * gospec.c (lang_specific_driver): If we see -S without -o, add -o
124         BASE.s rather than -o BASE.o.
126 2012-01-11  Ian Lance Taylor  <iant@google.com>
128         * go-lang.c (go_langhook_init): Initialize void_list_node before
129         calling go_create_gogo.
131 2012-01-10  Ian Lance Taylor  <iant@google.com>
133         * go-gcc.cc (Gcc_backend::type_size): New function.
134         (Gcc_backend::type_alignment): New function.
135         (Gcc_backend::type_field_alignment): New function.
136         (Gcc_backend::type_field_offset): New function.
137         * go-backend.c (go_type_alignment): Remove.
138         * go-c.h (go_type_alignment): Don't declare.
140 2011-12-27  Ian Lance Taylor  <iant@google.com>
142         * go-gcc.cc (Gcc_backend::set_placeholder_struct_type): Use
143         build_distinct_type_copy rather than build_variant_type_copy.
144         (Gcc_backend::set_placeholder_array_type): Likewise.
145         (Gcc_backend::named_type): Add special handling for builtin
146         basic types.
148 2011-12-22  Ian Lance Taylor  <iant@google.com>
150         * go-gcc.cc (Gcc_backend::set_placeholder_pointer_type): Arrange
151         for the type name to have a DECL_ORIGINAL_TYPE as gcc expects.
152         (Gcc_backend::set_placeholder_struct_type): Likewise.
153         (Gcc_backend::set_placeholder_array_type): Likewise.
154         (Gcc_backend::named_type): Set DECL_ORIGINAL_TYPE.
156 2011-12-13  Ian Lance Taylor  <iant@google.com>
158         * go-backend.c: #include "simple-object.h" and "intl.h".
159         (GO_EXPORT_SEGMENT_NAME): Define if not defined.
160         (GO_EXPORT_SECTION_NAME): Likewise.
161         (go_write_export_data): Use GO_EXPORT_SECTION_NAME.
162         (go_read_export_data): New function.
163         * go-c.h (go_read_export_data): Declare.
165 2011-11-29  Sanjoy Das  <thedigitalangel@gmail.com>
166             Ian Lance Taylor  <iant@google.com>
168         * go-location.h: New file.
169         * go-linemap.cc: New file.
170         * go-gcc.cc: Change all uses of source_location to Location.
171         * Make-lang.in (GO_OBJS): Add go/go-linemap.o.
172         (GO_LINEMAP_H): New variable.
173         (GO_LEX_H): Use $(GO_LINEMAP_H).
174         (GO_GOGO_H, GO_TYPES_H, GO_IMPORT_H): Likewise.
175         (go/go-linemap.o): New target.
177 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
179         * Make-lang.in (gospec.o): Pass SHLIB instead of SHLIB_LINK.
181 2011-08-24  Roberto Lublinerman  <rluble@gmail.com>
183         * lang.opt: Add fgo-optimize-.
184         * go-lang.c (go_langhook_handle_option): Handle OPT_fgo_optimize.
185         * go-c.h (go_enable_optimize): Declare.
186         * Make-lang.in (GO_OBJS): Add go/go-optimize.o.
187         (GO_EXPORT_H): Define.
188         (GO_IMPORT_H): Add $(GO_EXPORT_H).
189         (GO_AST_DUMP_H): Define.
190         (go/ast-dump.o, go/statements.o): Use GO_AST_DUMP_H.
191         (go/export.o, go/gogo.o, go/import.o): Use GO_EXPORT_H.
192         (go/types.o): Likewise.
193         (go/expressions.o): Use GO_AST_DUMP_H and GO_EXPORT_H.
194         (go/go-optimize.o): New target.
196 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
198         * Make-lang.in (CFLAGS-go/go-lang.o): New.
199         (go/go-lang.o): Remove explicit compilation rule.
201 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
203         * Make-lang.in (gccgo$(exeext)): Add $(EXTRA_GCC_LIBS).
205 2011-08-02  Roberto Lublinerman  <rluble@gmail.com>
207         * Make-lang.in (GO_OBJS): Add go/ast-dump.o.
208         (go/ast-dump.o): New target.
209         (go/expressions.o): Depend on go/gofrontend/ast-dump.h.
210         (go/statements.o): Likewise.
212 2011-07-06  Richard Guenther  <rguenther@suse.de>
214         * go-lang.c (go_langhook_init):
215         Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
217 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
219         * Make-lang.in (go/go-lang.o, go/go-backend.o): Update
220         dependencies.
221         * go-backend.c: Include common/common-target.h.
222         (go_write_export_data): Use targetm_common.have_named_sections.
223         * go-lang.c: Include common/common-target.h.
224         (go_langhook_init_options_struct): Use
225         targetm_common.supports_split_stack.
227 2011-06-13  Ian Lance Taylor  <iant@google.com>
229         * Make-lang.in (go/expressions.o): Depend on $(GO_RUNTIME_H).
231 2011-06-10  Ian Lance Taylor  <iant@google.com>
233         * go-gcc.cc: Include "toplev.h".
234         (Gcc_backend::immutable_struct): New function.
235         (Gcc_backend::immutable_struct_set_init): New function.
236         (Gcc_backend::immutable_struct_reference): New function.
237         * Make-lang.in (go/go-gcc.o): Depend on toplev.h.
239 2011-06-09  Ian Lance Taylor  <iant@google.com>
241         * go-gcc.cc (Gcc_backend::zero_expression): New function.
243 2011-06-07  Richard Guenther  <rguenther@suse.de>
245         * go-lang.c (go_langhook_init): Do not set
246         size_type_node or call set_sizetype.
248 2011-05-27  Ian Lance Taylor  <iant@google.com>
250         * go-backend.c: Include "output.h".
251         (go_write_export_data): New function.
252         * go-c.h (go_write_export_data): Declare.
253         * Make-lang.in (go/go-backend.o): Depend on output.h.
254         (go/export.o): Depend on $(GO_C_H).  Do not depend on
255         $(MACHMODE_H), output.h, or $(TARGET_H).
257 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
259         * Make-lang.in (GCCGO_OBJS): Remove prefix.o.
260         (gccgo$(exeext)): Use libcommon-target.a.
262 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
264         * Make-lang.in (GCCGO_OBJS): Remove intl.o and version.o.
266 2011-05-13  Ian Lance Taylor  <iant@google.com>
268         * go-gcc.cc (Gcc_backend::function_type): When building a struct
269         for multiple results, check that all fields types have a size.
270         (Gcc_backend::placeholder_pointer_type): Permit name to be empty.
272 2011-05-12  Ian Lance Taylor  <iant@google.com>
274         * go-gcc.cc (Gcc_backend::local_variable): Add is_address_taken
275         parameter.
276         (Gcc_backend::parameter_variable): Likewise.
278 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
280         * go-lang.c (global_bindings_p): Return bool and simplify.
282 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
284         * go-gcc.cc (Gcc_backend::switch_statement): Call build_case_label.
286 2011-05-04  Ian Lance Taylor  <iant@google.com>
288         * go-gcc.cc (Gcc_backend::struct_type): Call fill_in_struct.
289         (Gcc_backend::fill_in_struct): New function.
290         (Gcc_backend::array_type): Implement.
291         (Gcc_backend::fill_in_array): New function.
292         (Gcc_backend::placeholder_pointer_type): New function.
293         (Gcc_backend::set_placeholder_pointer_type): New function.
294         (Gcc_backend::set_placeholder_function_type): New function.
295         (Gcc_backend::placeholder_struct_type): New function.
296         (Gcc_backend::set_placeholder_struct_type): New function.
297         (Gcc_backend::placeholder_array_type): New function.
298         (Gcc_backend::set_placeholder_array_type): New function.
299         (Gcc_backend::named_type): New function.
300         (Gcc_backend::circular_pointer_type): New function.
301         (Gcc_backend::is_circular_pointer_type): New function.
303 2011-04-26  Ian Lance Taylor  <iant@google.com>
305         * go-gcc.cc (Gcc_backend::struct_type): Implement.
307 2011-04-25  Ian Lance Taylor  <iant@google.com>
309         * go-gcc.cc (Gcc_backend::error_type): Implement.
310         (Gcc_backend::string_type): Remove.
311         (Gcc_backend::function_type): Change signature and implement.
312         (Gcc_backend::struct_type): Change signature.
313         (Gcc_backend::slice_type, Gcc_backend::map_type): Remove.
314         (Gcc_backend::channel_type, Gcc_backend::interface_type): Remove.
315         (Gcc_backend::pointer_type): Check for error.
316         * Make-lang.in (go/types.o): Depend on go/gofrontend/backend.h.
318 2011-04-25  Evan Shaw  <edsrzf@gmail.com>
320         * go-gcc.c (class Gcc_tree): Make get_tree const.
321         (Gcc_backend::void_type): Implement.
322         (Gcc_backend::bool_type): Implement.
323         (Gcc_backend::integer_type): Implement.
324         (Gcc_backend::float_type): Implement.
325         (Gcc_backend::complex_type): New function.
326         (Gcc_backend::pointer_type): New function.
327         (Gcc_backend::make_type): New function.
328         (type_to_tree): New function.
330 2011-04-21  Ian Lance Taylor  <iant@google.com>
332         * go-system.h (go_assert, go_unreachable): Define.
334 2011-04-19  Ian Lance Taylor  <iant@google.com>
336         * go-system.h: Include "intl.h".
337         * Make-lang.in (GO_SYSTEM_H): Add intl.h.
338         (go/statements.o): Remove dependencies on intl.h $(TREE_H)
339         $(GIMPLE_H) convert.h tree-iterator.h $(TREE_FLOW_H) $(REAL_H).
341 2011-04-19  Ian Lance Taylor  <iant@google.com>
343         * go-gcc.cc (Gcc_backend::temporary_variable): New function.
345 2011-04-19  Ian Lance Taylor  <iant@google.com>
347         * go-gcc.cc (class Bblock): Define.
348         (Gcc_backend::if_statement): Change then_block and else_block to
349         Bblock*.
350         (Gcc_backend::block): New function.
351         (Gcc_backend::block_add_statements): New function.
352         (Gcc_backend::block_statement): New function.
353         (tree_to_block, block_to_tree): New functions.
355 2011-04-18  Ian Lance Taylor  <iant@google.com>
357         * go-gcc.cc: Include "go-c.h".
358         (class Bvariable): Define.
359         (Gcc_backend::init_statement): New function.
360         (Gcc_backend::global_variable): New function.
361         (Gcc_backend::global_variable_set_init): New function.
362         (Gcc_backend::local_variable): New function.
363         (Gcc_backend::parameter_variable): New function.
364         (tree_to_type, var_to_tree): New functions.
365         * Make-lang.in (go/go-gcc.o): Depend on $(GO_C_H).
366         * (go/gogo-tree.o): Depend on go/gofrontend/backend.h.
368 2011-04-15  Ian Lance Taylor  <iant@google.com>
370         * go-gcc.cc (Gcc_backend::compound_statement): New function.
371         (Gcc_backend::assignment_statement): Use error_statement.
372         (Gcc_backend::return_statement): Likewise.
373         (Gcc_backend::if_statement): Likewise.
374         (Gcc_backend::switch_statement): Likewise.
375         (Gcc_backend::statement_list): Likewise.
377 2011-04-14  Ian Lance Taylor  <iant@google.com>
379         * go-gcc.cc (Backend::error_statement): New function.
381 2011-04-13  Ian Lance Taylor  <iant@google.com>
383         * Make-lang.in (go/gogo-tree.o): depend on $(GO_RUNTIME_H).
385 2011-04-13  Ian Lance Taylor  <iant@google.com>
387         * Make-lang.in (GO_OBJS): Add go/runtime.o.
388         (GO_RUNTIME_H): New variable.
389         (go/runtime.o): New target.
390         (go/gogo.o): Depend on $(GO_RUNTIME_H).
391         (go/statements.o): Likewise.
393 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
395         * go-lang.c (union lang_tree_node): Check for TS_COMMON before
396         calling TREE_CHAIN.
398 2011-04-06  Ian Lance Taylor  <iant@google.com>
400         * go-gcc.cc (if_statement): Use build3_loc.
401         (Gcc_backend::switch_statement): New function.
402         (Gcc_backend::statement_list): New function.
404 2011-04-06  Ian Lance Taylor  <iant@google.com>
406         * go-gcc.cc (Gcc_backend::if_statement): New function.
407         (tree_to_stat): New function.
408         (expr_to_tree): Renamed from expression_to_tree.
409         (stat_to_tree): Renamed from statement_to_tree.
411 2011-04-06  Ian Lance Taylor  <iant@google.com>
413         * go-gcc.cc (Gcc_backend::expression_statement): New function.
415 2011-04-04  Ian Lance Taylor  <iant@google.com>
417         * go-gcc.c (class Blabel): Define.
418         (Gcc_backend::make_expression): New function.
419         (get_identifier_from_string): New function.
420         (Gcc_backend::label): New function.
421         (Gcc_backend::label_definition_statement): New function.
422         (Gcc_backend::goto_statement): New function.
423         (Gcc_backend::label_address): New function.
424         (expression_to_tree): New function.
425         * Make-lang.in (go/expressions.o): Depend on
426         go/gofrontend/backend.h.
427         (go/gogo.o): Likewise.
429 2011-04-04  Ian Lance Taylor  <iant@google.com>
431         * go-gcc.cc: #include "tree-iterator.h", "gimple.h", and "gogo.h".
432         (class Bfunction): Define.
433         (Gcc_backend::assignment_statement): Rename from assignment.
434         Check for errors.
435         (Gcc_backend::return_statement): New function.
436         (tree_to_function): New function.
437         * Make-lang.in (go/go-gcc.o): Depend on tree-iterator.h,
438         $(GIMPLE_H), and $(GO_GOGO_H).
440 2011-04-03  Ian Lance Taylor  <iant@google.com>
442         * go-gcc.cc: New file.
443         * Make-lang.in (GO_OBJS): Add go/go-gcc.o.
444         (go/go-gcc.o): New target.
445         (go/go.o): Depend on go/gofrontend/backend.h.
446         (go/statements.o): Likewise.
448 2011-02-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
450         * gccgo.texi (Top, Import and Export): Fix a typo and a markup nit.
452 2011-02-08  Ian Lance Taylor  <iant@google.com>
454         * go-lang.c (go_langhook_init_options_struct): Set
455         frontend_set_flag_errno_math.  Don't set x_flag_trapping_math.
457 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
459         * gospec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
460         LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
462 2011-01-21  Ian Lance Taylor  <iant@google.com>
464         * go-lang.c (go_langhook_init): Omit float_type_size when calling
465         go_create_gogo.
466         * go-c.h: Update declaration of go_create_gogo.
468 2011-01-13  Ian Lance Taylor  <iant@google.com>
470         * go-backend.c: Include "rtl.h" and "target.h".
471         (go_imported_unsafe): New function.
472         * go-c.h (go_imported_unsafe): Declare.
473         * Make-lang.in (go/go-backend.o): Depend on $(RTL_H).
474         (go/gogo-tree.o): Remove dependency on $(RTL_H).
475         (go/unsafe.o): Depend on $(GO_C_H).
477 2010-12-31  Joern Rennecke  <amylaar@spamcop.net>
479         PR go/47113
480         * go-backend.c: (go_field_alignment): Add ATTRIBUTE_UNUSED to
481         variable ‘field’ .
483 2010-12-21  Ian Lance Taylor  <iant@google.com>
485         * Make-lang.in (check-go): Remove.
486         (lang_checks_parallelized): Add check-go.
487         (check_go_parallelize): Set.
489 2010-12-13  Ian Lance Taylor  <iant@google.com>
491         * gospec.c (lang_specific_driver): Add a -o option if not linking
492         and there is no -o option already.
494 2010-12-07  Ian Lance Taylor  <iant@google.com>
496         PR tree-optimization/46805
497         PR tree-optimization/46833
498         * go-lang.c (go_langhook_type_for_mode): Handle vector modes.
500 2010-12-06  Ian Lance Taylor  <iant@google.com>
502         PR other/46789
503         PR bootstrap/46812
504         * go-lang.c (go_char_p): Define type and vectors.
505         (go_search_dirs): New static variable.
506         (go_langhook_handle_option): Use version and version/machine
507         directories for -L.
508         (go_langhook_post_options): Add non-specific -L paths.
509         * Make-lang.in (go/go-lang.o): Define DEFAULT_TARGET_VERSION and
510         DEFAULT_TARGET_MACHINE when compiling.
511         * gccgo.texi (Invoking gccgo): Only document -L for linking.
512         (Import and Export): Don't mention -L for finding import files.
514 2010-12-03  Ian Lance Taylor  <iant@google.com>
516         PR bootstrap/46776
517         * go-backend.c: New file.
518         * go-c.h (go_type_alignment): Declare.
519         (go_field_alignment, go_trampoline_info): Declare.
520         * Make-lang.in (GO_OBJS): Add go/go-backend.o.
521         (go/go-backend.o): New target.
522         (go/go-lang.o): Make dependencies match source file.
523         (go/expressions.o): Don't depend on $(TM_H) $(TM_P_H).
524         (go/gogo-tree.o): Don't depend on $(TM_H).
526 2010-12-03  Ian Lance Taylor  <iant@google.com>
528         * config-lang.in (build_by_default): Set to no.
530 2010-12-02  Ian Lance Taylor  <iant@google.com>
532         Go frontend added to gcc repository.