Commit Graph

326 Commits

Author SHA1 Message Date
John David Anglin
30f421e5a5 re PR fortran/27885 (FAIL: libgomp.fortran/vla[1-7].f90 -O0 (test for excess errors))
PR fortran/27885
	PR middle-end/28176
	* stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types
	to MAX_FIXED_MODE_SIZE.

From-SVN: r118977
2006-11-18 23:17:33 +00:00
Roger Sayle
000d8d44b7 fold-const.c (int_binop_types_match_p): New function.
* fold-const.c (int_binop_types_match_p): New function.
	(size_binop): Relax constraint that both arguments must both have
	exactly the same sizetype type.  Instead use int_binop_types_match_p.
	(size_diffop): Likewise.

	(make_range): Use build_int_cst instead of fold_convert.
	(fold_cond_expr_with_comparison): Use build_int_cst to construct
	integer constants of the correct type.
	(fold_div_compare): Likewise.
	(fold_single_bit_test): Likewise.
	(fold_binary): Likewise.
	* stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
	has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.

From-SVN: r118718
2006-11-12 02:57:10 +00:00
Paul Brook
353293e7f7 stor-layout.c (start_record_layout): maximum_field_alignment overrides STRUCTURE_SIZE_BOUNDARY.
2006-10-23  Paul Brook  <paul@codesourcery.com>

	gcc/
	* stor-layout.c (start_record_layout): maximum_field_alignment
	overrides STRUCTURE_SIZE_BOUNDARY.

	gcc/testsuite/
	* gcc.dg/pragma-pack-5.c: New test.

From-SVN: r117977
2006-10-23 16:36:51 +00:00
Andrew Pinski
c9eee440af re PR middle-end/28862 (attribute ((aligned)) ignored on vector variables)
2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>

        PR middle-end/28862
        * stor-layout.c (relayout_decl): Don't zero the alignment if it
        was set by the user.

2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>

        PR middle-end/28862
        * gcc.c-torture/compile/vector-align-1.c: New test.

From-SVN: r116751
2006-09-07 08:36:50 -07:00
Kaz Kojima
72aeff7c56 re PR middle-end/28160 (Bogus "size of array 'foo' is too large" error with -mms-bitfields)
PR middle-end/28160
	* stor-layout.c (place_field): Take the bit field with
	an excessive size into account in the ms-bitfiled case.

	PR middle-end/28161
	* stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
	the previous bit field.

From-SVN: r115464
2006-07-15 06:58:57 +00:00
Jason Merrill
1937f93932 re PR c++/13983 (no warning on some non-POD struct with packed attribute)
PR c++/13983
        PR c++/17519
        * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
        * c-common.c (handle_packed_attribute): So don't copy it here.
        * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
        * cp/class.c (check_field_decls): Check TYPE_PACKED after
        stripping array types.
        (finish_struct_bits): Don't copy TYPE_SIZE here.

From-SVN: r115217
2006-07-05 22:09:02 -04:00
Eric Christopher
f7eb0dcd45 re PR middle-end/27948 (MS -bitfield struct layout test fails)
2006-06-11  Eric Christopher  <echristo@apple.com>

        PR middle-end/27948
        * stor-layout.c (place_field): Remove check for
        remaining_in_alignment when aligning at the end of a run.

2006-06-11  Eric Christopher  <echristo@apple.com>

	PR middle-end/27948
        * gcc.dg/bf-ms-layout.c: Run on darwin.
        * gcc.dg/bf-no-ms-layout: Ditto.
        * gcc.dg/attr-ms_struct-2.c: New.
        * gcc.dg/bf-ms-layout-2.c: Ditto.

From-SVN: r114562
2006-06-12 06:53:33 +00:00
Kaz Kojima
cb3123765e re PR middle-end/27942 (packed union doesn't make the unaligned magic on sh64-*)
PR middle-end/27942
	* stor-layout.c (update_alignment_for_field): Don't add extra
	alignment for packed non-bitfield fields in ms_bitfield_layout_p
	code.

	* gcc.dg/attr-ms_struct-packed1.c: New.

From-SVN: r114552
2006-06-11 23:09:58 +00:00
Kazu Hirata
0c397f9c8d * stor-layout.c (debug_rli): Fix a typo in a debug message.
From-SVN: r114409
2006-06-05 20:25:53 +00:00
Eric Christopher
0ac11108c4 stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
2006-06-04 Eric Christopher <echristo@apple.com>

        * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
        (debug_rli): Output value for remaining_in_alignment.
        (update_alignment_for_field): Unconditionalize
        ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
        extra alignment code.
        (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
        ms_bitfield_layout_p code. Rewrite handling of structure fields.
        * tree.h (record_layout_info_s): Remove prev_packed.
        * doc/extend.texi (ms_struct): Add documentation of format.

2006-06-04 Eric Christopher <echristo@apple.com>

        * gcc.dg/attr-ms_struct-1.c: New.

From-SVN: r114364
2006-06-04 19:50:48 +00:00
Carlos O'Donell
9dfb66b9fe re PR c/26774 (Out of memory compiling 9-line Delta-reduced Linux kernel driver msp3400.c)
gcc/

2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	PR c/26774
	* stor-layout.c (update_alignment_for_field): Do not align 
	ERROR_MARK nodes.
	(place_union_field): Place union field at the start of the union.
	(place_field): Move ERROR_MARK check later, and use the current
	allocation position to maintain monotonicity.

gcc/testsuite/

2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>

	PR c/26774
	* gcc.dg/struct-parse-1.c: New test case.


Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>

From-SVN: r113107
2006-04-20 00:21:51 +00:00
Roger Sayle
a6a12bb9de stor-layout.c (mode_for_size_tree): Remove restiction on type sizes by correctly testing whether the size fits a...
* stor-layout.c (mode_for_size_tree): Remove restiction on type
	sizes by correctly testing whether the size fits a host integer.
	(initialize_sizetypes): Use set_min_and_max_values_for_integral_type
	to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
	SImode range for the default sizetype and bitsizetype.

From-SVN: r112513
2006-03-29 22:40:17 +00:00
Paul Brook
c2a644391b re PR middle-end/23623 (volatile keyword changes bitfield access size from 32bit to 8bit)
2006-03-29  Paul Brook  <paul@codesourcery.com>

	PR middle-end/23623
	* targhooks.c (default_narrow_bitfield): New fuction.
	* targhooks.h (default_narrow_bitfield): add prototype.
	* target.h (gcc_target): Add narrow_volatile_bitfield.
	* target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
	* stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
	* doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
	* config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.

From-SVN: r112493
2006-03-29 15:21:13 +00:00
Jeff Law
7f18f91710 stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly for sizetype when sizetype is unsigned.
* stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
        for sizetype when sizetype is unsigned.

From-SVN: r111170
2006-02-16 17:18:03 -07:00
Michael Matz
d1a701eb17 re PR middle-end/22275 (bitfield layout change)
PR middle-end/22275

        * stor-layout.c (layout_decl): Zero-width bitfields aren't
        influenced by maximum_field_alignment or DECL_PACKED.
        (update_alignment_for_field): Ditto.
        (place_field): Ditto.
        * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
        this behaviour.

From-SVN: r111109
2006-02-15 12:19:49 +00:00
Roger Sayle
71d5938381 tree.def (CHAR_TYPE): Remove.
* tree.def (CHAR_TYPE): Remove.
	* dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
	* dwarf2out.c (base_type_die, is_base_type): Likewise.
	(gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
	(gen_string_type_die): Delete unreachable function.

	* tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
	* tree.c (build_int_cst_wide, type_contains_placeholder_1,
	type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
	* tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
	* builtins.c (type_to_class): Likewise.
	* fold-const.c (fold_convert, build_range_check,
	merge_ranges): Likewise.
	* expr.c (count_type_elements): Likewise.
	* c-pretty-print.c (pp_c_type_specifier): Likewise.
	* stor-layout.c (layout_type): Likewise.
	* ipa-type-escape.c (type_to_consider): Likewise.
	* gimplify.c (omp_firstprivatize_type_sizes,
	gimplify_type_sizes): Likewise.
	* explow.c (promote_mode): Likewise.
	* tree-sra.c (is_sra_scalar_type): Likewise.
	* varasm.c (output_constant): Likewise.
	* tree-inline.c (remap_type_1): Likewise.
	* convert.c (convert_to_pointer, convert_to_real,
	convert_to_integer, convert_to_complex): Likewise.

From-SVN: r110775
2006-02-08 23:57:21 +00:00
Eric Botcazou
292f30c5d7 fold-const.c (fold_minmax): New static function.
* fold-const.c (fold_minmax): New static function.
	(fold_binary) <MIN_EXPR>: Call it.
	<MAX_EXPR>: Likewise.
	* stor-layout.c (place_field): Use DECL_SIZE consistently
	in the computation of the new record size.


Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>
Co-Authored-By: Roger Sayle <roger@eyesopen.com>

From-SVN: r109747
2006-01-16 14:26:32 +00:00
Jon Grimm
15ed7b52cb optabs.c (init_floating_libfuncs): Handle decimal float modes.
* optabs.c (init_floating_libfuncs): Handle decimal float modes.
	(init_optabs): Handle libfuncs for decimal float.
	* genopinit.c (gen_insn): Handle MODE_DECIMAL_FLOAT.
	* stor-layout.c (int_mode_for_mode): Likewise.
	* simplify-rtx.c (simplify_immed_subreg): Likewise.
	(simplify_unary_operation_1): Skip optimisations for decimal float
	modes.
	* varasm.c (output_constant_pool_2): Handle MODE_DECIMAL_FLOAT.
	* emit-rtl.c (gen_const_vector): Add assertion check.
	(init_emit_once): Populate const_tiny_rtx with constants in each
	decimal float mode.
	* expmed.c (extract_high_half, expand_mult_highpart_optab,
	expand_mult_highpart): Assert that mode is not a scalar float
	mode.
	* expr.c (convert_move): Handle conversion between decimal and
	binary floats of the same size.
	* convert.c (convert_to_real): Consider decimal float types when
	folding.
	* dwarf2out.c (base_type_die): Use DW_ATE_decimal_float to
	describe decimal floating point types.

Co-Authored-By: Ben Elliston <bje@au.ibm.com>
Co-Authored-By: Janis Johnson <janis187@us.ibm.com>

From-SVN: r108762
2005-12-19 08:40:47 +11:00
Olivier Hainque
b606b65c44 stor-layout.c (layout_type): Don't complain about a too small an array element type size compared to its...
* stor-layout.c (layout_type): Don't complain about a too small
	an array element type size compared to its alignment when the
	size overflows.

From-SVN: r108575
2005-12-15 13:09:41 +00:00
Nathan Sidwell
646c083546 re PR c++/21166 (g++ gives error on reference to packed structure elements)
.:	PR c++/21166
	* c-decl.c (finish_struct):  Only set DECL_PACKED on a field
	when its natural alignment is > BITS_PER_UNIT.
	* stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
	* c-common.c (handle_packed_attribute): Ignore packing on a field
	whose type is naturally char aligned.
cp:
	PR c++/21166
	* class.c (check_field_decls): Only set DECL_PACKED on a field
	when its natural alignment is > BITS_PER_UNIT.

From-SVN: r107599
2005-11-28 10:34:30 +00:00
Ben Elliston
3d8bf70f59 optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of explicitly testing GET_MODE_CLASS (x) ==...
* optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
	explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
	* genopinit.c (gen_insn): Likewise.
	* reload.c (find_equiv_reg): Likewise.
	* loop.c (load_mems): Likewise.
	* rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
	* cse.c (find_comparison_args, fold_rtx): Likewise.
	* dwarf2out.c (add_const_value_attribute): Likewise.
	* expr.c (convert_move): Likewise.
	* recog.c (general_operand, register_operand): Likewise.
	* reg-stack.c (replace_reg): Likewise.
	* tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
	* c-common.c (handle_vector_size_attribute): Likewise.
	* simplify-rtx.c (simplify_const_unary_operation): Likewise.
	(simplify_binary_operation_1): Likewise.
	(simplify_const_binary_operation): Likewise.
	(simplify_relational_operation): Likewise.
	(simplify_const_relational_operation): Likewise.
	(simplify_immed_subreg): Likewise.
	* emit-rtl.c (gen_lowpart_common): Likewise.
	* expmed.c (expand_mult): Likewise.
	* stor-layout.c (layout_type): Likewise.

From-SVN: r107322
2005-11-22 07:53:27 +11:00
Nathan Sidwell
dbe91deb9a re PR c++/19964 (ICE on invalid member declaration)
PR c++/19964
	* stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
	DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
	type.
cp:
	PR c++/19964
	* cp/class.c (walk_subobject_offsets): Don't walk error_mark_node.
testsuite:
	PR c++/19964
	* g++.dg/parse/crash31.C: New.

From-SVN: r105293
2005-10-12 10:59:27 +00:00
Steve Ellcey
002a9071e6 stor-layout.c (layout_type): Do not allow alignment of array elements to be greater than their size.
* stor-layout.c (layout_type): Do not allow alignment of array
	elements to be greater than their size.

From-SVN: r105095
2005-10-07 17:41:11 +00:00
Richard Kenner
4ecd8dc716 re PR middle-end/24053 (ICE in build_int_cst_wide, at tree.c:795)
PR middle-end/24053
	* stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype.

From-SVN: r104800
2005-09-29 22:11:12 +00:00
J"orn Rennecke
f439f9a536 re PR middle-end/23290 (Layout changed for structure with single complex field)
PR middle-end/23290
	* stor-layout.c (compute_record_mode): For records with a single
	field, actually check the field's mode size against the type size.

From-SVN: r104171
2005-09-12 14:49:56 +01:00
Richard Henderson
490272b474 stor-layout.c (finalize_type_size): Revert workaround from 08-26.
* stor-layout.c (finalize_type_size): Revert workaround from 08-26.
        * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment
        of char_type_node.

From-SVN: r103583
2005-08-28 09:28:59 -07:00
J"orn Rennecke
d6cde48033 stor-layout.c (finalize_type_size): Restore behaviour for non-aggregate types to the status quo ante of the patch...
* stor-layout.c (finalize_type_size): Restore behaviour for
	non-aggregate types to the status quo ante of the patch for
	pr 23467.  Document why it matters.

From-SVN: r103527
2005-08-26 18:17:05 +01:00
J"orn Rennecke
39d67d5bd4 re PR middle-end/23467 (alignment of member doesn't always carry over to alignment of struct.)
gcc:
        PR middle-end/23467
        * stor-layout.c (finalize_type_size): Dont override
        existing alignment with a smaller alignment from the mode.
testsuite:
        PR middle-end/23467
        * gcc.c-torture/execute/pr23467.c: New test.

From-SVN: r103394
2005-08-23 13:27:53 +01:00
Nathan Sidwell
f303a99631 re PR c++/21166 (g++ gives error on reference to packed structure elements)
.:	PR c++/21166
	* stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible.
testsuite:
	PR c++/21166
	* g++.dg/other/crash-4.C: Adjust
	* g++/dg/ext/packed9.C: New.

From-SVN: r102858
2005-08-08 14:22:35 +00:00
Joseph Myers
ea40ba9c04 c-common.h (GCC_DIAG_STYLE): Define.
* c-common.h (GCC_DIAG_STYLE): Define.
	* c-tree.h (GCC_DIAG_STYLE): Do not define.  Change minimum GCC
	version for format checking to 4.1.
	* c-format.c: Include toplev.h after c-common.h.
	(enum format_type): Add gcc_tdiag_format_type.
	(gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
	gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
	(format_types_orig): Add gcc_tdiag.
	(init_dynamic_diag_info): Support gcc_tdiag formats.
	(handle_format_attribute): Likewise.
	* toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
	(GCC_DIAG_STYLE): Default to __gcc_tdiag__.  Change minimum GCC
	version for format checking to 4.1.
	(warning0, warning, error, pedwarn, sorry): Use
	ATTRIBUTE_GCC_DIAG.
	* config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
	(finish_aliases_1): Do not use %qE.
	* config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
	config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
	Correct format bugs.
	* config/v850/v850-protos.h (v850_output_aligned_bss): Change size
	parameter to unsigned HOST_WIDE_INT.
	* config/v850/v850.c (v850_output_aligned_bss): Likewise.

cp:
	* cp-tree.h (GCC_DIAG_STYLE): #undef before defining.  Change
	minimum GCC version for format checking to 4.1.

testsuite:
	* gcc.dg/format/gcc_diag-1.c: Update.

From-SVN: r101543
2005-07-03 01:38:49 +01:00
Joseph Myers
dee158440e toplev.c (default_tree_printer): Handle setting location with '+' flag.
2005-07-02  Zack Weinberg  <zack@codesourcery.com>
            Joseph S. Myers  <joseph@codesourcery.com>

	* toplev.c (default_tree_printer): Handle setting location with
	'+' flag.
	* c-objc.common.c (c_tree_printer): Likewise.
	* c-format.c (gcc_diag_flag_specs): Add '+'.
	(gcc_cdiag_char_table): Allow '+' flag for tree formats.
	(format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
	formats.
	* c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
	config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
	config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
	config/v850/v850.c, function.c, stor-layout.c, toplev.c,
	tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
	instead of %J or %H.  Use 'q' flag for quoting.  Avoid '.' at end
	of diagnostics.  Use %q+D not %s for a decl.  Do not pass excess
	format arguments where %J is used without %D.

cp:
	* error.c (location_of): Add comment.
	(locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
	* cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
	* call.c, class.c, decl.c, decl2.c, friend.c, init.c,
	name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
	typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
	or cp_pedwarn_at.  Mark up some diagnostic strings with N_.

java:
	* class.c, decl.c, expr.c: Use '+' flag instead of %J.  Use 'q'
	flag for quoting.

objc:
	* objc-act.c: Use '+' flag instead of %J.  Use 'q' flag for
	quoting.

testsuite:
	* gcc.dg/format/gcc_diag-1.c: Update.

From-SVN: r101532
2005-07-02 11:55:32 +01:00
DJ Delorie
3176a0c28f c-decl.c (pop_scope): Move warning control into warning call.
* c-decl.c (pop_scope): Move warning control into warning call.
(diagnose_mismatched_decls): Likewise.
(pushdecl): Likewise.
(start_decl): Likewise.
(grokparms): Likewise.
(start_function): Likewise.
(store_parm_decls_newstyle): Likewise.
(store_parm_decls_oldstyle): Likewise.
(finish_function): Likewise.
(declspecs_add_scspec): Likewise.
* c-format.c (decode_format_attr): Likewise.
(maybe_read_dollar_number): Likewise.
(avoid_dollar_number): Likewise.
(finish_dollar_format_checking): Likewise.
(check_format_info): Likewise.
(check_format_info_main): Likewise.
(check_format_types): Likewise.
(format_type_warning): Likewise.
* c-typeck.c (function_types_compatible_p): Likewise.
(build_array_ref): Likewise.
(convert_arguments): Likewise.
(build_c_cast): Likewise.
(store_init_value): Likewise.
(process_init_element): Likewise.
(c_start_case): Likewise.
* stor-layout.c (finalize_record_size): Likewise.
* tree-cfg.c (execute_warn_function_noreturn): Likewise.
* tree-inline.c (expand_call_inline): Likewise.

From-SVN: r101384
2005-06-28 15:33:23 -04:00
Kelley Cook
366ccddb2b Update FSF address.
From-SVN: r101317
2005-06-25 02:02:01 +00:00
DJ Delorie
5c498b10af common.opt (-Wattributes): New.
* common.opt (-Wattributes): New.  Default true.
* doc/invoke.texi (-Wno-attributes): Document.

* attribs.c (decl_attributes): Move warning control from if() to
warning(OPT_*).
* c-common.c (handle_packed_attribute): Likewise.
(handle_nocommon_attribute): Likewise.
(handle_common_attribute): Likewise.
(handle_noreturn_attribute): Likewise.
(handle_noinline_attribute): Likewise.
(handle_always_inline_attribute): Likewise.
(handle_used_attribute): Likewise.
(handle_unused_attribute): Likewise.
(handle_const_attribute): Likewise.
(handle_transparent_union_attribute): Likewise.
(handle_constructor_attribute): Likewise.
(handle_destructor_attribute): Likewise.
(handle_mode_attribute): Likewise.
(handle_alias_attribute): Likewise.
(handle_visibility_attribute): Likewise.
(handle_tls_model_attribute): Likewise.
(handle_malloc_attribute): Likewise.
(handle_returns_twice_attribute): Likewise.
(handle_pure_attribute): Likewise.
(handle_deprecated_attribute): Likewise.
(handle_vector_size_attribute): Likewise.
(handle_nothrow_attribute): Likewise.
(handle_cleanup_attribute): Likewise.
(handle_warn_unused_result_attribute): Likewise.
(handle_sentinel_attribute): Likewise.
* c-decl.c (diagnose_mismatched_decls): Likewise.
(start_decl): Likewise.
(grokdeclarator): Likewise.
(start_function): Likewise.
* c-format.c (check_function_format): Likewise.
* stor-layout.c (place_field): Likewise.
(finalize_record_size): Likewise.
* tree.c (handle_dll_attribute)): Likewise.
* varasm.c (default_assemble_visibility): Likewise.
* config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
(darwin_assemble_visibility): Likewise.
* config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
* config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
(arm_handle_isr_attribute): Likewise.
* config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
(avr_handle_fndecl_attribute): Likewise.
* config/bfin/bfin.c (handle_int_attribute): Likewise.
* config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
* config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
(h8300_handle_eightbit_data_attribute): Likewise.
(h8300_handle_tiny_data_attribute): Likewise.
* config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
(ix86_handle_regparm_attribute): Likewise.
(ix86_handle_struct_attribute): Likewise.
* config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
(i386_pe_encode_section_info): Likewise.
* config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
* config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
(ip2k_handle_fndecl_attribute): Likewise.
* config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
* config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
(m68hc11_handle_fntype_attribute): Likewise.
(m68hc11_encode_section_info): Likewise.
* config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
* config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
* config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
* config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
* config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
(sh_handle_sp_switch_attribute): Likewise.
(sh_handle_trap_exit_attribute): Likewise.
* config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
(sh_symbian_handle_dll_attribute): Likewise.
* config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
(xstormy16_handle_below100_attribute): Likewise.
* config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.

[testsuite]

* gcc.dg/Wattributes-1.c: New.
* gcc.dg/Wattributes-2.c: New.
* gcc.dg/Wattributes-3.c: New.

[cp]

* decl.c (duplicate_decls): Move warning control from if() to
warning(OPT_*).
* name-lookup.c (parse_using_directive): Likewise.
* parser.c (cp_parser_elaborated_type_specifier): Likewise.
(cp_parser_init_declarator): Likewise.
* tree.c (handle_com_interface_attribute): Likewise.

[java]

* class.c (set_constant_value): Move warning control from if() to
warning(OPT_*).

From-SVN: r100136
2005-05-25 00:18:19 -04:00
DJ Delorie
44c21c7f03 c-common.c (unsigned_conversion_warning): Move warning control from if() to warning(OPT_*).
* c-common.c (unsigned_conversion_warning): Move warning control
from if() to warning(OPT_*).
(c_common_truthvalue_conversion): Likewise.
(c_do_switch_warnings): Likewise.
* c-decl.c (diagnose_mismatched_decls): Likewise.
(diagnose_mismatched_decls): Likewise.
(define_label): Likewise.
(grokdeclarator): Likewise.
* c-format.c (check_format_info): Likewise.
* c-lex.c (interpret_integer): Likwise.
(lex_string): Likewise.
* c-opts.c (c_common_post_options): Likewise.
* c-parser.c (c_parser_unary_expression): Likewise.
* c-pragma.c (handle_pragma_redefine_extname): Likewise.
(handle_pragma_extern_prefix): Likewise.
* c-typeck.c (build_binary_op): Likewise.
* gcse.c (is_too_expensive): Likewise.
* opts.c (decode_options): Likewise.
* stor-layout.c (place_field): Likewise.
* tree-cfg.c (remove_bb): Likewise.

* c.opt (-Wreturn-type): Add Var(warn_return_type).
* flags.h (warn_return_type): Remove.
* toplev.c (warn_return_type): Likewise.

From-SVN: r100135
2005-05-24 23:59:00 -04:00
J"orn Rennecke
cbbaf4aefa re PR middle-end/20371 (Some corner cases of MS bitfields don't work)
PR middle-end/20371:
	* tree.h (record_layout_info_s): New member prev_packed.
	* stor-layout.c (update_alignment_for_field): Fix comment about
	KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
	we start it properly aligned.
	(place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
	to update_alignment_for_field, and recompute it afterwards using
	the alignment of the record.
	When a packed bitfield precedes an MS bitfield, don't add padding
	at the end of the packed bitfield on behalf of the base type of
	the packed bit field.
	Don't adjust rli->bitpos at the end
	of an MS bitfield run if we already adjusted bitpos/offset for an
	alignment as large or larger than the bitfield type size.
	Take possible record alignment > BIGGEST_ALIGNMENT into account
	when calculating actual_align.
	Only put packed buit fields into rli->prev_field if they end up
	suitably aligned.
	Also set rli->remaining_in_alignment when we re-set rli->prev_field.
	Update rli->remaining_in_alignment when we have already started a
	run of bit fields and we process a packed bit field.

From-SVN: r99574
2005-05-11 13:24:43 +01:00
Kazu Hirata
4845b383bb dojump.c: Fix comment typos.
* dojump.c: Fix comment typos.  emit-rtl.c, expmed.c, expr.c,
	stmt.c, stor-layout.c: Use fold_buildN instead of
	fold (buildN (...)).

From-SVN: r98848
2005-04-27 16:02:43 +00:00
DJ Delorie
d4ee4d2525 diagnostic.c (warning): Accept parameter to classify warning option.
* diagnostic.c (warning): Accept parameter to classify warning option.
(warning0): New, for when a pointer to an error() like function is needed.
* errors.c (warning): Likewise.
* errors.h (warning, warning0): Adjust prototypes.
* toplev.h (warning, warning0): Likewise.

* attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.

* config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
config/darwin.c, config/darwin.h, config/h8300/h8300.c,
config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
config/rs6000/aix52.h, config/rs6000/darwin.h,
config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
config/stormy16/stormy16.c, config/v850/v850-c.c,
config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
callers.

* ada/misc.c: Adjust warning() callers.

* cp/call.c, cp/class.c, cp/cvt.c, cp/decl.c, cp/decl2.c,
cp/except.c, cp/friend.c, cp/init.c, cp/lex.c, cp/mangle.c,
cp/method.c, cp/name-lookup.c, cp/parser.c, cp/repo.c, cp/rtti.c,
cp/tree.c, cp/typeck.c, cp/typeck2.c: Adjust warning() callers.

* fortran/trans-decl.c: Adjust warning() callers.

* java/class.c, java/decl.c, java/expr.c, java/jcf-io.c,
java/jcf-parse.c, java/jv-scan.c, java/parse.y: Adjust warning()
callers.

* objc/objc-act.c: Adjust warning() callers.

* treelang/parse.y: Adjust warning() callers.

From-SVN: r98633
2005-04-23 17:29:07 -04:00
Tom Tromey
5662a50dd8 tree.def (FILE_TYPE): Removed.
gcc:
	* tree.def (FILE_TYPE): Removed.
	* typeclass.h (enum type_class): Removed file_type_class.
	* dwarf2out.c (is_base_type): Updated.
	(gen_type_die): Likewise.
	* dbxout.c (dbxout_type): Updated.
	* builtins.c (type_to_class): Updated.
	* tree.c (type_contains_placeholder_1): Updated.
	* config/sparc/sparc.c (sparc_type_code): Updated.
	* config/ia64/ia64.c (hfa_element_mode): Updated.
	* expr.c (count_type_elements): Updated.
	* stor-layout.c (layout_type): Updated.
	* tree-inline.c (remap_type): Updated.
	* tree-pretty-print.c (dump_generic_node): Updated.
gcc/java:
	* decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.

From-SVN: r97282
2005-03-30 21:34:41 +00:00
Kazu Hirata
1bb1155897 * stor-layout.c (lang_adjust_rli): Make it static.
From-SVN: r96112
2005-03-08 16:20:35 +00:00
Kazu Hirata
25d8d27de5 c-semantics.c, [...]: Update copyright.
* c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
	loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
	config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
	copyright.

From-SVN: r96100
2005-03-08 12:49:01 +00:00
Kazu Hirata
2e56d969e9 stor-layout.c (set_alignment): Remove.
* stor-layout.c (set_alignment): Remove.
	* tree.h: Remove the corresponding prototype.

From-SVN: r96018
2005-03-07 13:59:50 +00:00
Kazu Hirata
bb80db7b6d combine.c (simplify_and_const_int): Use gen_int_mode instead of GEN_INT (trunc_int_for_mode (...)).
* combine.c (simplify_and_const_int): Use gen_int_mode instead
	of GEN_INT (trunc_int_for_mode (...)).
	* loop-iv.c (iv_number_of_iterations): Likewise.
	* postreload.c (reload_cse_move2add): Likewise.
	* simplify-rtx.c (simplify_const_unary_operation,
	simplify_const_binary_operation): Likewise.
	* stor-layout.c (get_mode_bounds): Likewise.

From-SVN: r95935
2005-03-05 17:25:33 +00:00
Richard Henderson
ad50bc8d80 [multiple changes]
2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

        * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.

2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

        * tree.h (TYPE_SIZES_GIMPLIFIED): New.
        * function.c (gimplify_parm_type): Don't gimplify type if already done.
        * gimplify.c (gimplify_decl_expr): Likewise.
        (gimplify_type_sizes): Set TYPE_SIZES_GIMPLIFIED.  Examine nested
        array types.

2004-12-22  Richard Henderson  <rth@redhat.com>

        * gimplify.c (eval_save_expr): Remove.
        (gimplify_one_sizepos): Unshare expr before gimplifying.
        * stor-layout.c (variable_size): Revert 2004-12-19 change.
        (layout_decl): Revert 2004-12-18 change.
        (layout_type): Revert 2004-12-21 change.

From-SVN: r92495
2004-12-22 10:51:24 -08:00
Richard Henderson
b4830636f8 gimplify.c (eval_save_expr): New.
* gimplify.c (eval_save_expr): New.
        (gimplify_one_sizepos): Use it.
        * stor-layout.c (layout_type): Unshare TYPE_MIN/MAX_VALUE.

From-SVN: r92468
2004-12-21 11:27:08 -08:00
Richard Henderson
cd801ba166 re PR tree-optimization/18067 (ICE at loc_descriptor_from_tree_1 in dwarf2out.c (VLA) with const int.)
PR 18067
        * stor-layout.c (variable_size): Force creation of a SAVE_EXPR.

From-SVN: r92389
2004-12-19 13:08:33 -08:00
Richard Henderson
f54ff90037 * stor-layout.c (layout_decl): Use unshare_expr, not unsave_expr.
From-SVN: r92362
2004-12-18 12:19:37 -08:00
Richard Henderson
3e527d38c3 stor-layout.c (layout_decl): Unshare size expressions copied from the type.
* stor-layout.c (layout_decl): Unshare size expressions copied
        from the type.

From-SVN: r92359
2004-12-18 11:18:48 -08:00
Nathan Sidwell
08f2586c92 tree.def (SET_TYPE): Remove.
* tree.def (SET_TYPE): Remove.
	(CONSTRUCTOR): Update description.
	* builtins.c (type_to_class) Remove SET_TYPE case.
	* dbxout.c (dbxout_type): Likewise.
	* dwarf2out.c (is_base_type): Likewise.
	(gen_set_type_die): Remove.
	(gen_type_die): Remove SET_TYPE case.
	* expr.c (count_type_elements): Likewise.
	(mostly_zeroes_p): Likewise.
	(store_constructor): Likewise.
	* print_tree.c (print_node): Likewise.
	* stor-layout.c (layout_type): Likewise.
	* tree-browser.c (browse_tree): Likewise.
	* tree-inline.c (remap_type): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* tree.c (type_contains_plaeholder_1, type_hash_eq,
	variably_modified_type_p, initializer_zerop): Likewise.
	* tree.h (SET_OR_ARRAY_CHECK): Remove.
	(AGGREGATE_TYPE_P): Remove SET_TYPE check.
	(TYPE_DOMAIN): Use ARRAY_TYPE_CHECK.
	* typeclass.h (enum type_class): Remove set_type_class.
	* varasm.c (const_hash_1): Remove SET_TYPE case.
	(compare_constant, copy_constant, output_constant): Likewise.
	* config/i386/i386.c (classify_argument): Likewise.
	* config/ia64/ia64.c (hfa_element_mode): Likewise.
	* config/sparc/sparc.c (sparc_type_code): Likewise.

	* ada/decl.c (gnat_substitute_in_type): Remove SET_TYPE case.

From-SVN: r91931
2004-12-09 10:54:50 +00:00
Kazu Hirata
34bc6352dc * stor-layout.c: Fix a comment typo.
From-SVN: r89331
2004-10-20 13:14:01 +00:00