Commit Graph

526 Commits

Author SHA1 Message Date
Zack Weinberg
4977bab6ed Merge basic-improvements-branch to trunk
From-SVN: r60174
2002-12-16 18:23:00 +00:00
Neil Booth
b3a5a50c26 c-common.c (builtin_define_type_max): Handle unsigned types too.
* c-common.c (builtin_define_type_max): Handle unsigned
	types too.
testsuite:
	* gcc.dg/fshort-wchar: New test.

From-SVN: r60023
2002-12-11 06:36:17 +00:00
Mark Mitchell
c9f8536c5d re PR c++/8332 (strlen/template interaction causes ICE)
PR c++/8332
	PR c++/8493
	* decl.c (cxx_init_decl_processing): Use size_type_node, not
	c_size_type_node.
	* decl2.c (coerce_new_type): Likewise.
	* except.c (do_allocate_exception): Likewise.

	* builtin-types.def (BT_SIZE): Use size_type_node.
	* builtins.c (fold_builtin): Make the builtin strlen returns a
	size_t, not a sizetype.
	* c-common.c (c_sizeof_or_alignof_type): Use size_type_node, not
	c_size_type_node.
	(c_alignof_expr): Likewise.
	(c_common_nodes_and_builtins): Likewise.
	* c-common.h (CTI_C_SIZE_TYPE): Remove.
	(c_size_type_node): Likewise.
	* c-format.c (T_ST): Use size_type_node, not c_size_type_node.
	* tree.h (TI_SIZE_TYPE): New enumeral.
	(size_type_node): Likewise.

	PR c++/8332
	PR c++/8493
	* g++.dg/template/strlen1.C: New test.

From-SVN: r59689
2002-12-01 17:51:51 +00:00
Richard Henderson
25fdb4dc97 c-common.c (handle_visibility_attribute): Accept "default".
* c-common.c (handle_visibility_attribute): Accept "default".
	* tree.h (enum symbol_visibility): New.
	(decl_visibility): Declare.
	* target.h (gcc_target.visibility): Take visibility arg as integer.
	* varasm.c (default_assemble_visibility): Likewise.
	(decl_visibility): New.
	(maybe_assemble_visibility): Use it.
	* output.h (default_assemble_visibility): Update prototype.
	* config/rs6000/rs6000.c (rs6000_assemble_visibility): Take
	visibility arg as integer.

From-SVN: r59559
2002-11-26 22:13:23 -08:00
Aldy Hernandez
27bd7792bf c-common.c: Add GTY to vector_type_node_list.
2002-10-30  Aldy Hernandez  <aldyh@redhat.com>

        * c-common.c: Add GTY to vector_type_node_list.

From-SVN: r58666
2002-10-31 06:57:28 +00:00
Richard Henderson
da6eec72f5 real.c (real_to_decimal): Accept BUF_SIZE and CROP_TRAILING_ZEROS as arguments.
gcc/
        * real.c (real_to_decimal): Accept BUF_SIZE and CROP_TRAILING_ZEROS
        as arguments.  Bound DIGITS by the available buffer size.
        (real_to_hexadecimal): Likewise.
        * real.h (real_to_decimal, real_to_hexadecimal): Update prototypes.
        (REAL_VALUE_TO_DECIMAL): Remove.
        * c-common.c, c-pretty-print.c, print-rtl.c, print-tree.c,
        sched-vis.c, config/arc/arc.c, config/c4x/c4x.c, config/fr30/fr30.c,
        config/i370/i370.h, config/i386/i386.c, config/i960/i960.c,
        config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
        config/m68k/hp320.h, config/m68k/m68k.h, config/m68k/sun2o4.h,
        config/m68k/sun3.h, config/mips/mips.c, config/ns32k/ns32k.c,
        config/pdp11/pdp11.h, config/vax/vax.h: Update all callers to
        use real_to_decimal directly, and with the proper arguments.
        * doc/tm.texi (REAL_VALUE_TO_DECIMAL): Remove.

gcc/cp/
        * error.c (dump_expr): Use real_to_decimal directly, and with
        the new arguments.

gcc/f/
        * target.h (ffetarget_print_real1, ffetarget_print_real2): Use
        real_to_decimal directly, and with the new arguments.

From-SVN: r58187
2002-10-15 17:40:39 -07:00
J"orn Rennecke
7457a126c6 c-common.c (c_common_type_for_mode): Add V2HImode case.
* c-common.c (c_common_type_for_mode): Add V2HImode case.
	* tree.c (build_common_tree_nodes_2): Initialize
	unsigned_V2HI_type_node and V2HI_type_node.
	* tree.h (enum tree_index): Add TI_UV2HI_TYPE and TI_V2HI_TYPE.
	(unsigned_V2HI_type_node, V2HI_type_node): Define.

From-SVN: r58123
2002-10-14 11:36:41 +01:00
Gabriel Dos Reis
8d15eebcb0 c-common.c (cb_register_builtins): Define __WCHAR_MAX__.
* c-common.c (cb_register_builtins): Define __WCHAR_MAX__.
	* doc/cpp.texi (Common Predefined Macros): Document.

From-SVN: r57966
2002-10-09 00:13:57 +00:00
Jan Hubicka
b3dc87c570 * c-common.c (cb_register_builtins): Use really_no_inline.
From-SVN: r57844
2002-10-05 17:44:37 +00:00
Jakub Jelinek
dce81a1a59 extend.texi (tls_model): Document.
* doc/extend.texi (tls_model): Document.
	* varasm.c (decl_tls_model): New.
	* c-common.c (handle_tls_model_attribute): New.
	(c_common_attribute_table): Add tls_model.
	* config/alpha/alpha.c (alpha_encode_section_info): Use
	decl_tls_model.
	* flags.h (enum tls_model, flag_tls_default): Move...
	* tree.h (enum tls_model, flag_tls_default): ...here.
	(decl_tls_model): New prototype.
	* config/ia64/ia64.c (ia64_encode_section_info): Likewise.
	* config/i386/i386.c (ix86_encode_section_info): Likewise.
	* config/i386/i386.md (tls_global_dynamic, tls_local_dynamic_base):
	Allow !flag_pic.

From-SVN: r57588
2002-09-27 15:30:10 +02:00
Richard Henderson
ddf0fc7224 c-common.c (cpp_define_data_format): Remove.
* c-common.c (cpp_define_data_format): Remove.
        (cb_register_builtins): Don't define __WCHAR_BIT__, __SHRT_BIT__,
        __INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__,
        __DOUBLE_BIT__, __LONG_DOUBLE_BIT__.
        * doc/cpp.texi: Don't document them either.
        (__SCHAR_MAX__, __SHRT_MAX__, __INT_MAX__, __LONG_MAX__,
        __LONG_LONG_MAX__): Document.
        (__TARGET_FLOAT_FORMAT__): Remove.

From-SVN: r57436
2002-09-23 04:32:43 -07:00
Mark Mitchell
2d3e278d62 c-common.c (flag_abi_version): New variable.
* c-common.c (flag_abi_version): New variable.
	* c-common.h (flag_abi_version): Declare it.
	* c-opts.c (missing_arg): Add -fabi-version.
	(c_common_decode_option): Process -fabi-version.
	* doc/invoke.texi (-fabi-version): Document it.
	(-Wabi): Add information about bit-fields in unions.

	* cp/class.c (layout_virtual_bases): Do not round the size of the
	type to a multiple of the alignment before laying out virtual bases.
	(layout_class_type): Correct handling of bit-fields that are wider
	than their type inside unions.  Round the size of the type to a
	even number of bytes when computing the size without virtual
	bases.
	* cp/cp-tree.h (abi_version_at_least): New macro.

	* g++.dg/abi/bitfield6.C: New test.
	* g++.dg/abi/bitfield7.C: New test.
	* g++.dg/abi/bitfield8.C: New test.
	* g++.dg/abi/vbase11.C: New test.

From-SVN: r57432
2002-09-23 09:22:17 +00:00
John David Anglin
c219e1da0a c-common.c (preprocessing_trad_p): Define.
* c-common.c (preprocessing_trad_p): Define.
	* pa-hiux.h, pa-hpux.h, pa-hpux7.h (CPP_PREDEFINES): Delete.
	(TARGET_OS_CPP_BUILTINS, SUBTARGET_SWITCHES): Define.
	* pa-hpux10.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC): Define.
	* pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define.
	* pa-linux.h (CPP_PREDEFINES): Delete.
	(TARGET_OS_CPP_BUILTINS, CPP_SPEC): Define.
	* pa32-linux.h, pa64-linux.h (CPP_SPEC): Delete.
	* pa-osf.h, pa-pro-end.h, rtems.h (CPP_PREDEFINES): Delete.
	(TARGET_OS_CPP_BUILTINS): Define.
	* pa.h (MASK_SIO, TARGET_SIO, TARGET_PA_10): Define.
	(TARGET_SWITCHES): Reformat.  Use N_() macro.  Add SUBTARGET_SWITCHES.
	(SUBTARGET_SWITCHES): Provide default definition.
	(TARGET_OPTIONS): Reformat.  Use N_() macro.
	(CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC, CPP_64BIT_SPEC,
	CPP_CPU_DEFAULT_SPEC, CPP_64BIT_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS,
	EXTRA_SPECS, CPP_SPEC, CPLUSPLUS_CPP_SPEC, CPP_PREDEFINES): Delete.
	(TARGET_CPU_CPP_BUILTINS): Define.
	(TARGET_OS_CPP_BUILTINS): Define for BSD-like systems.
	* doc/invoke.texi (msio, mwsio): Document new hppa options.
	* doc/tm.texi (TARGET_CPU_CPP_BUILTINS): Document macro
	preprocessing_trad_p().

From-SVN: r57416
2002-09-22 19:23:20 +00:00
Kazu Hirata
da7d830409 ChangeLog: Follow spelling conventions.
* ChangeLog: Follow spelling conventions.
	* ChangeLog.0: Likewise.
	* ChangeLog.1: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.3: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* ChangeLog.6: Likewise.
	* FSFChangeLog.10: Likewise.
	* FSFChangeLog.11: Likewise.
	* alias.c: Likewise.
	* basic-block.h: Likewise.
	* c-aux-info.c: Likewise.
	* c-common.c: Likewise.
	* c-common.h: Likewise.
	* c-decl.c: Likewise.
	* c-format.c: Likewise.
	* c-semantics.c: Likewise.
	* c-typeck.c: Likewise.
	* calls.c: Likewise.
	* cfganal.c: Likewise.
	* cfgloop.c: Likewise.
	* collect2.c: Likewise.
	* combine.c: Likewise.
	* conflict.c: Likewise.
	* cppexp.c: Likewise.
	* cppfiles.c: Likewise.
	* cpphash.h: Likewise.
	* cppinit.c: Likewise.
	* cpplex.c: Likewise.
	* cpplib.c: Likewise.
	* cpplib.h: Likewise.
	* cppmacro.c: Likewise.
	* cse.c: Likewise.

From-SVN: r57398
2002-09-22 02:03:17 +00:00
Richard Henderson
2a15d344d0 c-common.c (cpp_define_data_format): Remove __GCC_LITTLE_ENDIAN__...
* c-common.c (cpp_define_data_format): Remove __GCC_LITTLE_ENDIAN__,
        __GCC_BIG_ENDIAN__, __TARGET_BITS_ORDER__, __TARGET_BYTES_ORDER__,
        __TARGET_INT_WORDS_ORDER__, __TARGET_FLOAT_WORDS_ORDER__,
        __TARGET_USES_VAX_F_FLOAT__, __TARGET_USES_VAX_D_FLOAT__,
        __TARGET_USES_VAX_G_FLOAT__, __TARGET_USES_VAX_H_FLOAT__.
        * doc/cpp.texi: Don't document them.

From-SVN: r57391
2002-09-21 09:32:49 -07:00
Richard Henderson
3fdacdf9e3 c-common.c (builtin_define_float_constants): Use real_format to get the floating-point parameters.
* c-common.c (builtin_define_float_constants): Use real_format
        to get the floating-point parameters.

From-SVN: r57390
2002-09-21 09:27:40 -07:00
Nick Clifton
256e9fd21a machmode.def (V1DImode): New mode.
* machmode.def (V1DImode): New mode.  A single element vector.
* tree.h (TI_UV1DI_TYPE, TI_V1DI_TYPE): New tree_index enums.
  (unsigned_V1DI_type_node, V1D1_type_node): New type nodes.
* tree.c (build_common_tree_nodes_2): Build
  unsigned_V1DI_type_node and V1D1_type_node.
* c-common.c (c_common_type_for_mode): Return
  unsigned_V1DI_type_node or V1D1_type_node for V1DImode.
* rtl.c (class_narrowest_): Start integer vector nodes with V1DImode.

From-SVN: r57248
2002-09-17 13:03:40 +00:00
Richard Henderson
ac520ec919 c-common.c (builtin_define_float_constants): Emit __FOO_DENORM_MIN__.
gcc/
        * c-common.c (builtin_define_float_constants): Emit __FOO_DENORM_MIN__.

libstdc++/
        * include/std/std_limits.h (__glibcpp_f32_denorm_min_bytes,
        __glibcpp_f32_has_denorm, __glibcpp_f64_denorm_min_bytes,
        __glibcpp_f64_has_denorm, __glibcpp_f80_denorm_min_bytes,
        __glibcpp_f80_has_denorm, __glibcpp_f96_denorm_min_bytes,
        __glibcpp_f96_has_denorm, __glibcpp_f128_denorm_min_bytes,
        __glibcpp_f128_has_denorm, __glibcpp_float_denorm_min_bytes,
        __glibcpp_float_has_denorm, __glibcpp_double_denorm_min_bytes,
        __glibcpp_double_has_denorm, __glibcpp_long_double_denorm_min_bytes,
        __glibcpp_long_double_has_denorm): Remove.
        (__glibcpp_float_denorm_min, __glibcpp_double_denorm_min,
        __glibcpp_long_double_denorm_min): Remove.
        (std::numeric_limits<float>::has_denorm): Use __FLT_DENORM_MIN__.
        (std::numeric_limits<float>::denorm_min): Likewise.
        (std::numeric_limits<double>): Similarly.
        (std::numeric_limits<long double>): Similarly.
        * src/limits.cc (__glibcpp_float_denorm_min,
        __glibcpp_double_denorm_min, __glibcpp_long_double_denorm_min): Remove.

From-SVN: r57200
2002-09-16 09:58:42 -07:00
Richard Henderson
efdc7e19ca real.c, real.h: Rewrite from scratch.
gcc/
	* real.c, real.h: Rewrite from scratch.

	* Makefile.in (simplify-rtx.o): Depend on TREE_H.
	(paranoia): New target.
	* builtins.c (fold_builtin_inf): Use new real.h interface.
	* c-common.c (builtin_define_with_hex_fp_value): Likewise.
	* c-lex.c (interpret_float): Likewise.
	* emit-rtl.c (gen_lowpart_common): Likewise.
	* optabs.c (expand_float): Use real_2expN.
	* config/ia64/ia64.md (divsi3, udivsi3): Likewise.
	* defaults.h (INTEL_EXTENDED_IEEE_FORMAT): New.
	(FLOAT_WORDS_BIG_ENDIAN): New.
	* cse.c (find_comparison_args): Don't pass FLOAT_STORE_FLAG_VALUE
	directly to REAL_VALUE_NEGATIVE.
	* loop.c (canonicalize_condition): Likewise.
	* simplify-rtx.c: Include tree.h.
	(simplify_unary_operation): Don't handle FIX and UNSIGNED_FIX
	with floating-point result modes.
	* toplev.c (backend_init): Call init_real_once.

	* fold-const.c (force_fit_type): Don't call CHECK_FLOAT_VALUE.
	* tree.c (build_real): Likewise.
	* config/alpha/alpha.c, config/vax/vax.c (float_strings,
	float_values, inited_float_values, check_float_value): Remove.
	* config/alpha/alpha.h, config/m68hc11/m68hc11.h,
	config/m88k/m88k.h, config/vax/vax.h (CHECK_FLOAT_VALUE): Remove.
	* doc/tm.texi (CHECK_FLOAT_VALUE): Remove.

gcc/f/
	* target.c (ffetarget_real1): Don't pass FFETARGET_ATOF_
	directly to ffetarget_make_real1.
	(ffetarget_real2): Similarly.
	* target.h (ffetarget_cvt_r1_to_rv_, ffetarget_cvt_rv_to_r2_,
	ffetarget_cvt_r2_to_rv_): Use new real.h interface and simplify.

gcc/java/
	* jcf-parse.c (get_constant): Runtime check for IEEE format;
	use new real.h interface.
	* jcf-write.c (find_constant_index): Use new real.h interface.
	* lex.c (IS_ZERO): Use REAL_VALUES_EQUAL.

contrib/
	* paranoia.cc: New file.

From-SVN: r57198
2002-09-16 09:36:39 -07:00
Kazu Hirata
8d9afc4e2b ABOUT-NLS: Follow spelling conventions.
* ABOUT-NLS: Follow spelling conventions.
	* ChangeLog: Likewise.
	* ChangeLog.1: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.3: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* ChangeLog.6: Likewise.
	* FSFChangeLog.10: Likewise.
	* FSFChangeLog.11: Likewise.
	* c-common.c: Likewise.
	* c-lex.c: Likewise.
	* c-objc-common.c: Likewise.
	* cppexp.c: Likewise.
	* cppinit.c: Likewise.
	* cpplex.c: Likewise.
	* doloop.c: Likewise.
	* flow.c: Likewise.
	* function.c: Likewise.
	* integrate.c: Likewise.
	* loop.c: Likewise.
	* reg-stack.c: Likewise.
	* reload.h: Likewise.
	* ssa.c: Likewise.

From-SVN: r57188
2002-09-16 11:42:00 +00:00
Kazu Hirata
05713b80e0 ChangeLog: Follow spelling conventions.
* ChangeLog: Follow spelling conventions.
	* ChangeLog.0: Likewise.
	* ChangeLog.1: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.3: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* ChangeLog.6: Likewise.
	* FSFChangeLog.10: Likewise.
	* FSFChangeLog.11: Likewise.
	* c-common.c: Likewise.
	* c-common.h: Likewise.
	* c-format.c: Likewise.
	* c-opts.c: Likewise.
	* cpplib.c: Likewise.
	* langhooks.h: Likewise.
	* real.c: Likewise.
	* reg-stack.c: Likewise.
	* toplev.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/arm.md: Likewise.
	* config/arm/linux-gas.h: Likewise.
	* config/arm/netbsd.h: Likewise.
	* config/c4x/c4x.c: Likewise.
	* config/c4x/c4x.h: Likewise.
	* config/c4x/c4x.md: Likewise.
	* config/c4x/libgcc.S: Likewise.
	* config/fr30/fr30.md: Likewise.
	* config/frv/frv.md: Likewise.
	* config/ia64/ia64.md: Likewise.
	* config/mips/mips.h: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/v850/v850.md: Likewise.
	* doc/extend.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: Likewise.

From-SVN: r57166
2002-09-15 18:24:08 +00:00
Kazu Hirata
4b7e68e7d2 basic-block.h: Fix comment formatting.
* basic-block.h: Fix comment formatting.
	* c-common.c: Likewise.
	* c-common.h: Likewise.
	* c-lex.c: Likewise.
	* c-pretty-print.c: Likewise.
	* cfglayout.c: Likewise.
	* cfgloop.c: Likewise.
	* defaults.h: Likewise.
	* et-forest.c: Likewise.
	* explow.c: Likewise.
	* function.h: Likewise.
	* gcov.c: Likewise.
	* genattrtab.c: Likewise.
	* gengtype.c: Likewise.
	* ifcvt.c: Likewise.
	* libgcc2.c: Likewise.
	* loop.c: Likewise.
	* profile.c: Likewise.
	* ra-build.c: Likewise.
	* real.c: Likewise.
	* rtl.h: Likewise.
	* tracer.c: Likewise.
	* tree-inline.c: Likewise.
	* varasm.c: Likewise.

From-SVN: r56952
2002-09-08 12:47:27 +00:00
Richard Henderson
77e8a0cc9d c-common.c (builtin_define_with_hex_fp_value): New.
* c-common.c (builtin_define_with_hex_fp_value): New.
        (builtin_define_float_constants): Use it.  Fix H_FLOAT mant_dig.

From-SVN: r56800
2002-09-04 10:11:32 -07:00
Richard Henderson
d57a4b98c4 Makefile.in (USER_H): Add ginclude/float.h.
* Makefile.in (USER_H): Add ginclude/float.h.
        (FLOAT_H): Remove.
        (stmp-int-hdrs, install-mkheaders): Don't handle FLOAT_H.
        (mostlyclean): Don't remove float.h intermediate files.
        (distclean): Don't remove float.h.
        * config.gcc: Remove all float_format references.
        * configure.in (float_format, float_h_file): Remove.

        * c-common.c: Include tree-inline.h.
        (builtin_define_with_int_value): New.
        (builtin_define_type_precision): Use it.
        (builtin_define_float_constants): New.
        (cb_register_builtins): Use it.  Define __FLT_RADIX__ and
        __FLT_EVAL_METHOD__.
        * defaults.h (TARGET_FLT_EVAL_METHOD): New.
        * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): New.
        * config/m68k/m68k.h (TARGET_FLT_EVAL_METHOD): New.
        * doc/tm.texi (INTEL_EXTENDED_IEEE_FORMAT): Mention moto 96-bit format.
        (TARGET_FLT_EVAL_METHOD): New.

        * config/float-c4x.h, config/float-i128.h, config/float-i32.h,
        config/float-i386.h, config/float-i64.h, config/float-m68k.h,
        config/float-sh.h, config/float-sparc.h, config/float-vax.h: Remove.
        * ginclude/float.h: New.

From-SVN: r56769
2002-09-03 13:21:35 -07:00
Gabriel Dos Reis
585e661a79 c-common.c (builtin_define_type_precision): New function.
gcc/
 2002-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>

 * c-common.c (builtin_define_type_precision): New function.
 (cb_register_builtins): Use it.  Define __WCHAR_UNSIGNED__ is
 wchar_t is unsigned in C++.
 * doc/cpp.texi (Common Predefined Macros): Document
 __WCHAR_UNSIGNED__, __CHAR_BIT__, __WCHAR_BIT__, __SHRT_BIT__,
 __INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__,
 __DOUBLE_BIT__, __LONG_DOUBLE_BIT__.

libstdc++-v3/

2002-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	    * include/std/std_limits.h (__glibcpp_char_bits,
	    __glibcpp_short_bits, __glibcpp_int_bits,
	    __glibcpp_long_bits,
	    __glibcpp_long_long_bits, __glibcpp_float_bits,
	    __glibcpp_double_bits, __glibcpp_long_double_bits):
	    Remove.  Use
	    compiler predifined macros.
	    (__glibcpp_wchar_t_is_signed): Define based on compiler
	    predefined
	    __WCHAR_UNSIGNED__.

From-SVN: r56646
2002-08-28 21:41:55 +00:00
Mark Mitchell
eca7f13c69 c-common.c (warn_abi): New variable.
* c-common.c (warn_abi): New variable.
	* c-common.h (warn_abi): Likewise.
	* c-opts.c (COMMAND_LINE_OPTIONS): Add -Wabi.
	(c_common_decode_option): Handle it.
	* doc/invoke.texi:P Document -Wabi.

	* class.c (layout_virtual_bases): Warn about bugs in G++ that
	result in incorrect object layouts.
	(layout_class_type): Likewise.

	* testsuite/g++.dg/abi/bitfield5.C: New test.
	* testsuite/g++.dg/abi/vbase10.C: Likewise.

From-SVN: r56618
2002-08-27 22:14:51 +00:00
Nicola Pero
ece4ce85d8 Added -Wundeclared-selector ObjC command line option
From-SVN: r56615
2002-08-27 21:57:47 +00:00
Gabriel Dos Reis
35885eab33 c-common.c (cpp_define_data_format): New function.
* c-common.c (cpp_define_data_format): New function.
	(cb_register_builtins): Call it.

	* doc/cpp.texi (Common Predefined Macros): Document
	__TARGET_BITS_ORDER__, __TARGET_BYTES_ORDER__,
	__TARGET_INT_WORDS_ORDER__, __TARGET_FLOAT_WORDS_ORDER__,
	__TARGET_FLOAT_FORMAT__, __TARGET_USES_VAX_F_FLOAT__,
	__TARGET_USES_VAX_D_FLOAT__, __TARGET_USES_VAX_G_FLOAT__,
	__TARGET_USES_VAX_H_FLOAT__.

From-SVN: r56597
2002-08-27 09:38:05 +00:00
Stan Shebs
8aa5074e79 c-common.c (cb_register_builds): Define __NEXT_RUNTIME__ for ObjC with -fnext-runtime.
* c-common.c (cb_register_builds): Define __NEXT_RUNTIME__
	for ObjC with -fnext-runtime.
	* doc/cpp.texi: Document it.

	* objc/execute/selector-1.m: Add __NEXT_RUNTIME__ case.

From-SVN: r56390
2002-08-16 23:31:06 +00:00
Neil Booth
460bd0e32d c-common.c (STDC_0_IN_SYSTEM_HEADERS, [...]): Move to c-copts.c.
* c-common.c (STDC_0_IN_SYSTEM_HEADERS, c_common_init): Move
	to c-copts.c.
	(warn_multichar): Die.
	(cb_register_builtins): Export.
	* c-common.h (warn_multichar, preprocess_file): Remove.
	(cb_register_builtins): New.
	* c-lang.c (c_init): Remove.
	(LANG_HOOKS_INIT): Use c_objc_common_init.
	* c-lex.c (init_c_lex): Don't canonicalize filename.
	* c-opts.c (in_fname, STDC_0_IN_SYSTEM_HEADERS): New.
	(preprocess_file): Make static.  Update for cpplib.
	(c_common_decode_option): Remove warn_multichar.  Use in_fname.
	(c_common_post_options): Set some cpp options here.
	(c_common_init): Move from c-common.c.
	* cppinit.c (cpp_post_options): Don't canonicalize in_fname.
	* cpplib.h (struct cpp_options): Remove in_fname.
	(cpp_preprocess_file): Update.
	* cppmain.c (cpp_preprocess_file): Update for new prototypes.

From-SVN: r56223
2002-08-12 06:02:53 +00:00
Neil Booth
76c3e73e32 c-common.c (c_common_init): Call preprocess_file instead.
* c-common.c (c_common_init): Call preprocess_file instead.
	(c_common_finish): Move to c-opts.c.
	* c-common.h (preprocess_file): new.
	* c-opts.c (out_fname, out_stream, deps_append, preprocess_file,
	check_deps_environment_vars, c_common_finish): New.
	(c_common_decode_option): Update for out_fname and dependencies.
	* cppinit.c (init_dependency_output, output_deps): Remove.
	(cpp_destroy): Update prototype.
	(cpp_add_dependency_target): New.
	(cpp_read_main_file): Don't overlay a buffer.
	(cpp_finish): Take a deps output stream and write deps to it.
	Return the error count.
	(cpp_post_options): Don't canonicalize out_fname, or do anything
	with dependencies.
	* cpplib.h (struct cpp_options): Remove out_fname and
	preprocess_only.
	(cpp_add_dependency_target): New.
	(cpp_destroy, cpp_finish, cpp_preprocess_file): Update.
	* cppmain.c (cpp_preprocess_file): Update prototype.  Don't
	set preprocess_only.  Don't handle the output stream directly.

From-SVN: r56214
2002-08-11 22:22:28 +00:00
Ziemowit Laski
0f7866e7ba c-common.c (flag_objc): New.
2002-08-09  Ziemowit Laski  <zlaski@apple.com>

        * c-common.c (flag_objc): New.
        * c-common.h (c_language_kind): Get rid of clk_objective_c
        enum value.
        (flag_objc): New extern declaration.
        * c-decl.c (implicitly_declare): Call objc_check_decl
        instead of maybe_objc_check_decl.
        (finish_decl): Likewise.
        (grokfield): Likewise.
        (finish_struct): Likewise.
        * c-lang.c (maybe_objc_check_decl): Rename to objc_check_decl.
        (maybe_objc_comptypes): Rename to objc_comptypes.
        (maybe_building_objc_message_expr): Rename to
        objc_message_selector.
        * c-lex.c (lex_charconst): Remove uses of clk_objective_c,
        replace with flag_objc as needed.
        * c-opts.c (c_common_init_options): Likewise.
        (c_common_decode_option): Likewise.
        * c-parse.in (init_reswords): Likewise.
        * c-tree.h (maybe_objc_check_decl): Rename to objc_check_decl.
        (maybe_objc_comptypes): Rename to objc_comptypes.
        (maybe_building_objc_message_expr): Rename to
        objc_message_selector.
        * c-typeck.c (comptypes): Call objc_comptypes instead of
        maybe_objc_comptypes, and/or objc_message_selector instead of
        (comp_target_types): Likewise.
        (convert_for_assignment): Likewise.
        (warn_for_assignment): Likewise.
        * cppinit.c (init_builtins): Set __OBJC__ manifest constant
        independently of those for other languages.
        * objc/objc-act.c (maybe_objc_comptypes): Delete.
        (maybe_objc_check_decl): Delete.
        (maybe_building_objc_message_expr): Rename to
        objc_message_selector.
        * objc/objc-lang.c (objc_init_options): Use clk_c instead of
        clk_objective_c; set flag_objc flag.

From-SVN: r56173
2002-08-10 02:18:28 +00:00
Neil Booth
0b6f2917cf Makefile.in (c-opts.o, [...]): Update.
* Makefile.in (c-opts.o, c-common.o, C_AND_OBJC_OBJS): Update.
	* c-common.c: Don't include tree-inline.h.
	(c_common_init_options, c_common_post_options): Move to c-opts.c.
	* c-common.h (c_common_decode_option): New.
	* c-decl.c (c_decode_option): Remove.
	* c-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
	* c-opts.c: New file.
	* c-tree.h (c_decode_option): Remove.
	* doc/passes.texi: Update.
	* objc/objc-act.c (objc_decode_option): Remove.
	* objc/objc-act.h (objc_decode_option): Remove.
	* objc/ojbc-lang.c (LANG_HOOKS_DECODE_OPTION): Use
	c_common_decode_option.
cp:
	* Make-lang.in (CXX_C_OBJS): Update.
	* cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
	* cp-tree.h (cxx_decode_option): Remove.
	* decl2.c (compare_options, lang_f_options, unsupported_options,
	cxx_decode_option): Remove.
testsuite:
	* objc.dg/const-str-2.m: Update.
	* gcc.dg/cpp/c++98.c: Change to C extension.
	* gcc.dg/cpp/c++98-pedantic.c: Similarly.
	* gcc.dg/cpp/cpp.exp: Process .C extensions too.

From-SVN: r56105
2002-08-07 18:32:13 +00:00
Jason Merrill
f1a044c7da c-common.c (c_expand_expr): If the last expression is a VAR_DECL with RTL that matches the target...
* c-common.c (c_expand_expr) [STMT_EXPR]: If the last expression is
        a VAR_DECL with RTL that matches the target, just return that RTL.

From-SVN: r56083
2002-08-06 20:52:24 -04:00
Dale Johannesen
8d3e27d16b Mark __func__ with line number 0, to avoid confusing debuggers.
From-SVN: r56081
2002-08-06 23:36:22 +00:00
Zack Weinberg
56da7207c1 c-common.c (c_common_init): -Wtraditional also implies -Wlong-long.
* c-common.c (c_common_init): -Wtraditional also implies -Wlong-long.
	* cppinit.c (cpp_post_options): Likewise.

	* cppexp.c (cpp_classify_number): Suppress -Wtraditional
	warning about 'LL' suffix (but not 'ULL' etc) when
	-Wno-long-long is in effect.

	* cppmacro.c (_cpp_builtin_macro_text) [BT_TIME, BT_DATE]:
	Check for failing time()/localtime(), issue a warning, and
	make __TIME__ and __DATE__ expand to fallback strings.

	* doc/cpp.texi, doc/extend.texi: Document behavior of __DATE__
	and __TIME__ when the date and time cannot be determined.

From-SVN: r55969
2002-08-02 04:18:16 +00:00
Franz Sirl
a03e67c3a3 c-common.c (cb_register_builtins): Always define __GXX_ABI_VERSION.
2002-08-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* c-common.c (cb_register_builtins): Always define __GXX_ABI_VERSION.

From-SVN: r55959
2002-08-02 00:15:45 +00:00
Neil Booth
c288218ab6 * c-common.c (__GXX_ABI_VERSION): Correct spelling.
From-SVN: r55947
2002-08-01 21:10:44 +00:00
Benjamin Kosnik
43bfc248ba c-common.c (cb_register_builtins): Set __GXX_ABI_VERSION__ to 102.
2002-08-01  Benjamin Kosnik  <bkoz@redhat.com>

	* c-common.c (cb_register_builtins): Set __GXX_ABI_VERSION__ to 102.

From-SVN: r55944
2002-08-01 20:10:25 +00:00
Toon Moene
73e42cf342 c-common.c (cb_register_builtins): Set __FINITE_MATH_ONLY__ to 1 if -ffinite-math-only is given, and to 0 otherwise.
2002-08-01  Toon Moene  <toon@moene.indiv.nluug.nl>

	* c-common.c (cb_register_builtins): Set
	__FINITE_MATH_ONLY__ to 1 if -ffinite-math-only
	is given, and to 0 otherwise.
	* combine.c (simplify_if_then_else): HONOR_NANS
	implies FLOAT_MODE_P.

From-SVN: r55932
2002-08-01 09:08:38 +00:00
Neil Booth
abecfc8f7b c-common.c (cb_register_builtins): If C++, define __EXCEPTIONS, __DEPRECATED and __GXX_ABI_VERSION as appropriate.
* c-common.c (cb_register_builtins): If C++, define
	__EXCEPTIONS, __DEPRECATED and __GXX_ABI_VERSION as appropriate.
	* gcc.c (cpp_unique_options): Remove __GXX_ABI_VERSION.
cp:
	* lang-specs.h: Simplify in accordance with new code in
	c-common.c.

From-SVN: r55924
2002-08-01 06:25:06 +00:00
Neil Booth
4078b403a7 c-common.c: Define all C/ObjC/C++ warning and flag variables.
* c-common.c: Define all C/ObjC/C++ warning and flag variables.
	* c-common.h: Declare all C/ObjC/C++ warning and flag variables.
	* c-decl.c: Move all warning and flag variables to c-common.c.
	* c-format.c: Move all warning variables to c-common.c.
	* c-tree.h: Move all warning and flag declarations to c-common.h.
	* objc/objc-act.c: Move all warning variables to c-common.c.
	(flag_warn_protocol): Rename warn_protocol.
cp:
	* cp-tree.h: Move all warning and flag declarations to c-common.h.
	* decl.c: Move all warning and flag variables to c-common.c.
	* decl2.c: Move all warning and flag variables to c-common.c.
	* lex.c (flag_digraphs): Remove.
	(warn_traditional): Now in c-common.c.

From-SVN: r55923
2002-08-01 06:20:46 +00:00
Toon Moene
2e8f2e8f7d flags.h: Declare flag_finite_math_only.
2002-07-30  Toon Moene  <toon@moene.indiv.nluug.nl>

	* flags.h: Declare flag_finite_math_only.
	Use it in definition of HONOR_NANS and
	HONOR_INFINITIES.
	* c-common.c (cb_register_builtins): Emit
	__FINITE_MATH_ONLY__ when flag_finite_math_only
	is set.
	* combine.c (simplify_if_then_else): If
	flag_finite_math_only is set, a == b has a
	definite value.
	* toplev.c: Initialize flag_finite_math_only.
	(set_flags_fast_math): Set it on -ffast-math.
	(flag_fast_math_set_p): Test it.
doc:
	* invoke.texi: Document -ffinite-math-only.
f:
	* com.c (ffe_init_options): Set
	flag_finite_math_only.
	* invoke.texi: Document -fno-finite-math-only.

From-SVN: r55887
2002-07-30 22:23:26 +00:00
Roger Sayle
52bfebf091 Makefile.in: rtlanal.o now depends upon real.h.
* Makefile.in: rtlanal.o now depends upon real.h.

	* flags.h [flag_signaling_nans]: New flag.
	[HONOR_SNANS]: New macro.

	* toplev.c [flag_signaling_nans]: Initialize to false.
        (f_options): Add processing for "-fsignaling-nans".
	(set_fast_math_flags): Clear flag_signaling_nans with -ffast-math.
	(process_options): flag_signaling_nans implies flag_trapping_math.

	* c-common.c (cb_register_builtins): Define __SUPPORT_SNAN__
	when -fsignaling-nans.  First step to implementing WG14's N965.

	* fold-const.c (fold) [MULT_EXPR]: Conditionalize transforming
	1.0 * x into x, and -1.0 * x into -x on !HONOR_SNANS.
	[RDIV_EXPR]: Conditionalize x/1.0 into x on !HONOR_SNANS.

	* simplify-rtx.c (simplify_relational_operation): Conditionalize
	transforming abs(x) < 0.0 into false on !HONOR_SNANS.

	* rtlanal.c: #include real.c for TARGET_FLOAT_FORMAT definitions
	required by HONOR_SNANS.  (may_trap_p): Floating point DIV, MOD,
	UDIV, UMOD, GE, GT, LE, LT and COMPARE may always trap with
	-fsignaling_nans.  EQ and NE only trap for flag_signaling_nans
	not flag_trapping_math (i.e. HONOR_SNANS but not HONOR_NANS).

	* doc/invoke.texi: Document new -fsignaling-nans compiler option.

From-SVN: r55804
2002-07-28 02:11:05 +00:00
Gabriel Dos Reis
ea79391291 c-common.c (c_sizeof_or_alignof_type): Take a third argument for complaining.
* c-common.c (c_sizeof_or_alignof_type): Take a third argument for
	complaining.
	* c-common.h (c_sizeof): Adjust definition.
	(c_alignof): Likewise.
	* c-tree.h (c_sizeof_nowarn): Now macro.
	* c-typeck.c (c_sizeof_nowarn): Remove definition.
cp/
	* cp-tree.h (cxx_sizeof_nowarn): Now a macro.
	(cxx_sizeof_or_alignof_type): Take a third argument.
	(cxx_sizeof): Adjust definition.
	(cxx_alignof): Likewise.
	* init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality.
	* typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for
	complaining.
	(c_sizeof_nowarn): Remove definition.
	(build_unary_op): Use cxx_sizeof_nowarn.

From-SVN: r55744
2002-07-25 08:58:07 +00:00
Gabriel Dos Reis
fa72b06489 Fix PR/7363:
2002-07-21  Gabriel Dos Reis  <gdr@nerim.net>

        Fix PR/7363:
        * c-common.c (c_sizeof_or_alignof_type): New function.
        (c_alignof): Remove definition.
        * c-common.h (c_sizeof, c_alignof): Define as macros.
        (c_sizeof_or_alignof_type): Declare.
        (my_friendly_assert): Moved from cp/cp-tree.h
        * c-typeck.c (c_sizeof): Remove definition.

cp/

2002-07-21  Gabriel Dos Reis  <gdr@nerim.net>

        Fix PR/7363:
        * typeck.c (cxx_sizeof_or_alignof_type): New function.
        (c_sizeof): Remove definition.
        (expr_sizeof): Use cxx_sizeof.
        * decl2.c (build_expr_from_tree): Use cxx_sizeof_or_alignof_type.
        * decl.c (finish_destructor_body): Use cxx_sizeof.
        * semantics.c (finish_alignof): Likewise.
        (finish_alignof): Use cxx_alignof.
        * cp-tree.h (cxx_sizeof, cxx_alignof): New macros.
        (cxx_sizeof_or_alignof_type): Declare.
        (my_friendly_assert): Move to ../c-common.h.

From-SVN: r55678
2002-07-23 13:54:06 +00:00
Neil Booth
5351f1ca74 c-common.c (c_common_post_options): Update prototype; don't init backends if preprocessing only.
* c-common.c (c_common_post_options): Update prototype;
	don't init backends if preprocessing only.
	* langhooks-def.h (LANG_HOOKS_POST_OPTIONS): Update.
	* langhooks.h (struct lang_hooks): Update post_options to
	return a boolean.
	* toplev.c (parse_options_and_default_flags, do_compile,
	lang_independent_init): Update prototypes.  Allow the
	front end to specify that there is no need to initialize
	the back end.
	(general_init): Move call to hex_init here...
	(toplev_main): ...from here.  Pass flag for back end init
	suppression.
java:
	* lang.c (java_post_options): Update prototype.

From-SVN: r55306
2002-07-07 22:10:18 +00:00
Roger Sayle
df061a43b6 re PR c++/7099 (G++ doesn't set the noreturn attribute on std::exit and std::abort)
PR c++/7099
	* builtin-attrs.def: Define new attribute lists for use in
	builtins.def.
	* builtins.def [DEF_BUILTIN]: Modify to take an additional
	ATTRS argument, an enumerated value defined in builtin-attrs.def
	that represents the attribute list for the builtins.  Modify
	all builtin functions to pass an appropriate attribute list.
	Specify "abort", "exit", "_exit" and "_Exit" builtins here with
	their required noreturn attributes.
	* tree.h (enum_builtin_function): Ignore the additional parameter
	to DEF_BUILTIN.
	* builtins.c (built_in_names): Likewise.
	* c-common.c: (builtin_function_2): Replace the "int noreturn_p"
	argument with a tree representing the functions attribute list.
	Pass this "attrs" argument to builtin_function.  No longer handle
	the noreturn_p processing manually.
	(built_in_attributes): Move the definitions from builtin-attrs.def
	before c_common_nodes_and_builtins.
	(c_common_nodes_and_builtins): Handle the new ATTRS parameter in
	DEF_BUILTIN, passing it to both builtin_function and the changed
	builtin_function_2.

	* doc/extend.texi: Document __builtin_abort, __builtin_exit,
	__builtin__exit and __builtin__Exit.

	* java/builtins.c (initialize_builtins): Ignore the additional
	parameter to DEF_BUILTIN.  Handle more C/C++ specific junk in
	the builtins.def file.

From-SVN: r55276
2002-07-06 00:16:44 +00:00
Roger Sayle
6a2dd09a65 tree.h: Modify builtin_function interface to take an extra argument ATTRS...
* tree.h:  Modify builtin_function interface to take an extra
	argument ATTRS, which is a tree representing an attribute list.

	* c-decl.c (builtin_function): Accept additional parameter.
	* objc/objc-act.c (builtin_function): Likewise.
	* f/com.c (builtin_function): Likewise.
	* java/decl.c (builtin_function): Likewise.
	* ada/utils.c (builtin_function): Likewise.
	* cp/decl.c (builtin_function): Likewise.
	(builtin_function_1): Likewise.

	* c-common.c (c_common_nodes_and_builtins): Pass an additional
	NULL_TREE argument to builtin_function.  (builtin_function_2):
	Likewise.
	* cp/call.c (build_java_interface_fn_ref): Likewise.
	* objc/objc-act.c (synth_module_prologue): Likewise.
	* java/decl.c (java_init_decl_processing): Likewise.
	* f/com.c (ffe_com_init_0): Likewise.

	* config/alpha/alpha.c (alpha_init_builtins): Pass an additional
	NULL_TREE argument builtin_function.
	* config/arm/arm.c (def_builtin): Likewise.
	* config/c4x/c4x.c (c4x_init_builtins): Likewise.
	* config/i386/i386.c (def_builtin): Likewise.
	* config/ia64/ia64.c (def_builtin): Likewise.
	* config/rs6000/rs6000.c (def_builtin): Likewise.

From-SVN: r55161
2002-07-01 23:07:19 +00:00
Richard Henderson
74d86f4fc1 c-common.c (c_common_get_alias_set): Correctly handle characters.
* c-common.c (c_common_get_alias_set): Correctly handle characters.
        Rearrange order of expressions; don't handle vectors here.
        * alias.c (get_alias_set): Let vectors match their components.

From-SVN: r54821
2002-06-20 00:30:04 -07:00