aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-common.c
AgeCommit message (Collapse)AuthorFilesLines
2002-08-16c-common.c (cb_register_builds): Define __NEXT_RUNTIME__ for ObjC with ↵Stan Shebs1-0/+4
-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-12c-common.c (STDC_0_IN_SYSTEM_HEADERS, [...]): Move to c-copts.c.Neil Booth1-57/+1
* 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-11c-common.c (c_common_init): Call preprocess_file instead.Neil Booth1-12/+1
* 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-10c-common.c (flag_objc): New.Ziemowit Laski1-0/+3
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-07Makefile.in (c-opts.o, [...]): Update.Neil Booth1-68/+0
* 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-06c-common.c (c_expand_expr): If the last expression is a VAR_DECL with RTL ↵Jason Merrill1-3/+18
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-06Mark __func__ with line number 0, to avoid confusing debuggers.Dale Johannesen1-0/+8
From-SVN: r56081
2002-08-02c-common.c (c_common_init): -Wtraditional also implies -Wlong-long.Zack Weinberg1-2/+3
* 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-02c-common.c (cb_register_builtins): Always define __GXX_ABI_VERSION.Franz Sirl1-1/+4
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-01* c-common.c (__GXX_ABI_VERSION): Correct spelling.Neil Booth1-1/+1
From-SVN: r55947
2002-08-01c-common.c (cb_register_builtins): Set __GXX_ABI_VERSION__ to 102.Benjamin Kosnik1-1/+1
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-01c-common.c (cb_register_builtins): Set __FINITE_MATH_ONLY__ to 1 if ↵Toon Moene1-1/+3
-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-01c-common.c (cb_register_builtins): If C++, define __EXCEPTIONS, __DEPRECATED ↵Neil Booth1-0/+5
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-01c-common.c: Define all C/ObjC/C++ warning and flag variables.Neil Booth1-0/+393
* 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-07-30flags.h: Declare flag_finite_math_only.Toon Moene1-0/+2
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-28Makefile.in: rtlanal.o now depends upon real.h.Roger Sayle1-0/+2
* 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-25c-common.c (c_sizeof_or_alignof_type): Take a third argument for complaining.Gabriel Dos Reis1-5/+10
* 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-23Fix PR/7363:Gabriel Dos Reis1-20/+45
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-07c-common.c (c_common_post_options): Update prototype; don't init backends if ↵Neil Booth1-1/+3
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-06re PR c++/7099 (G++ doesn't set the noreturn attribute on std::exit and ↵Roger Sayle1-67/+39
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-01tree.h: Modify builtin_function interface to take an extra argument ATTRS...Roger Sayle1-3/+5
* 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-06-20c-common.c (c_common_get_alias_set): Correctly handle characters.Richard Henderson1-14/+10
* 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-18simd-1.c: New.Aldy Hernandez1-33/+50
2002-06-16 Aldy Hernandez <aldyh@redhat.com> * gcc.c-torture/execute/simd-1.c: New. * gcc.dg/simd-1.c: New. * doc/extend.texi (Vector Extensions): Document that we can specify simd types not specifically supported by the hardware. Document that simd types can be used as function arguments. Document that signness does make a difference in SIMD types. Misc cleanups and revisions to the "vector extensions" section. * simplify-rtx.c (simplify_subreg): Simplify subregs of vector constants. * expr.c (vector_mode_valid_p): New. * expr.h: Add vector_mode_valid_p. * defaults.h (VECTOR_MODE_SUPPORTED_P): Set default. * emit-rtl.c (immed_double_const): Do not abort on vectors. * c-common.c (type_for_mode): Always build vector nodes regardless of VECTOR_MODE_SUPPORTED_P. (handle_mode_attribute): Error if we can't emulate a nonexisting vector mode. (handle_vector_size_attribute): Same. * optabs.c (expand_binop): Open-code vector operations. (expand_unop): Open-code vector unops. (expand_vector_binop): New. (expand_vector_unop): New. * c-typeck.c (build_binary_op): Allow vectors in binops. Allow vectors in conditional operatiors. (build_unary_op): Allow vectors in unary minus. * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Conditionalize on TARGET_ALTIVEC. From-SVN: r54727
2002-06-16c-common.c (flag_ms_extensions): Move from c++ front end.Richard Henderson1-0/+3
* c-common.c (flag_ms_extensions): Move from c++ front end. * c-common.h (flag_ms_extensions): Declare. * c-decl.c (c_decode_option): Add -fms-extensions. (grokfield): Don't accept anonymous structures in ISO C mode; accept only unnamed anonymous structures in GNU C mode; accept Plan 9 extensions in MS mode. * c-parse.in (SAVE_EXT_FLAGS, RESTORE_EXT_FLAGS): Rename from SAVE/RESTORE_WARN_FLAGS; add flag_iso frobbing; update all callers. (extension): Clear flag_iso. * doc/invoke.texi (C Dialect Options): Add -fms-extensions. * cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common. * g++.dg/ext/anon-struct1.C: New. * g++.dg/ext/anon-struct2.C: New. * g++.dg/ext/anon-struct3.C: New. * gcc.dg/anon-struct-1.c: New. * gcc.dg/anon-struct-2.c: New. * gcc.dg/anon-struct-3.c: New. * gcc.dg/20011008-1.c: Adjust warning text. * gcc.dg/20020527-1.c: Add -fms-extensions. From-SVN: r54670
2002-06-11c-common.c (builtin_define_type_max): New.Richard Henderson1-0/+62
* c-common.c (builtin_define_type_max): New. (cb_register_builtins): Define __SCHAR_MAX__, __SHRT_MAX__, __INT_MAX__, __LONG_MAX__, __LONG_LONG_MAX__, __CHAR_BIT__. From Joseph S. Myers: * glimits.h: Rewrite to expect the double underscore definitions from the compiler. * config/alpha/unicosmk.h, config/avr/avr.h, config/h8300/h8300.h, config/i386/linux64.h, config/ia64/aix.h, config/ia64/hpux.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/m68hc11/m68hc12.h, config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h, config/pa/pa.h, config/rs6000/aix43.h, config/rs6000/aix51.h, config/rs6000/linux64.h, config/s390/linux.h, config/sh/sh.h, config/stormy16/stormy16.h: Don't define any of __SHRT_MAX__, __INT_MAX__, __LONG_MAX__, or __LONG_LONG_MAX__. From-SVN: r54544
2002-06-04Merge from pch-branch up to tag pch-commit-20020603.Geoffrey Keating1-37/+3
From-SVN: r54232
2002-06-02c-common.c (c_common_init): Override cpplib's default warn_long_long setting.Neil Booth1-0/+4
* c-common.c (c_common_init): Override cpplib's default warn_long_long setting. * c-lex.c (lex_number): Replace with interpret_integer, interpret_float, narrowest_unsigned_type and narrowest_signed_type, taking advantage of the new cpplib functionality. * cpperror.c (_cpp_begin_message): If a warning is turned into an error, avoid printing "warning:". * cppexp.c (cpp_num_sign_extend): New. * cppinit.c: Update comment. * cpplib.h (cpp_num_sign_extend): New. * tree.h: Update comment. testsuite: * gcc.dg/wtr-int-type-1.c, gcc.dg/wtr-suffix-1.c, gcc.dg/cpp/paste4.c, gcc.dg/cpp/sysmac2.c: Update for mofified diagnostics. * gcc.dg/c99-intconst-1.c: No longer fail. From-SVN: r54180
2002-05-31* c-common.c (builtin_define_std): Correct logic.Neil Booth1-4/+7
From-SVN: r54089
2002-05-30c-common.c (c_common_attribute_table): Add "may_alias" entry.Osku Salerma1-0/+5
* c-common.c (c_common_attribute_table): Add "may_alias" entry. (c_common_get_alias_set): Handle it. * doc/extend.texi: Document it. * gcc.c-torture/execute/mayalias-1.c: New file. From-SVN: r54074
2002-05-28tree.h: Forward-declare struct realvaluetype.Zack Weinberg1-0/+1
* tree.h: Forward-declare struct realvaluetype. (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not contain it. (TREE_REAL_CST_PTR): New accessor. (TREE_REAL_CST): Update. * real.h: Include machmode.h. (realvaluetype): Make it struct realvaluetype, not a typedef. (build_real): Prototype here. * tree.c: Include real.h. (build_real): Allocate the REAL_VALUE_TYPE as a separate object in GC memory, set TREE_REAL_CST_PTR to point to it. (build_real_from_int_cst): Use build_real. * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a REAL_CST. * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c, fold-const.c, print-tree.c, real.c, cp/mangle.c, cp/tree.c, f/bld.c, f/com.c, f/expr.c, f/target.c, java/decl.c, java/jcf-parse.c, java/parse.y, java/typeck.c: Include real.h. * Makefile.in, cp/Make-lang.in, f/Make-lang.in, java/Make-lang.in: Update dependency lists. From-SVN: r53959
2002-05-27c-common.c: Add support for __attribute__((nothrow)) to specify that a ↵Roger Sayle1-0/+27
function cannot... * c-common.c: Add support for __attribute__((nothrow)) to specify that a function cannot throw an exception (using TREE_NOTHROW). (handle_nothrow_attribute): New function to process this attribute. * doc/extend.texi: Document the new nothrow function attribute. 2002-05-27 Richard Henderson <rth@redhat.com> * g++.dg/ext/attrib6.C: New test case. From-SVN: r53940
2002-05-27c-common.c (c_common_init): Always use intmax_t.Neil Booth1-4/+1
* c-common.c (c_common_init): Always use intmax_t. testsuite: * gcc.dg/cpp/arith-2.c: Remove. * gcc.dg/cpp/arith-3.c: Don't set std=c99. From-SVN: r53936
2002-05-27* c-common.c (c_common_init): Use intmax_t for now.Neil Booth1-1/+1
From-SVN: r53935
2002-05-27c-common.c (c_common_init): Set CPP arithmetic precision.Neil Booth1-0/+4
* c-common.c (c_common_init): Set CPP arithmetic precision. * cppexp.c (cpp_num_part): Move typedef ... * cpphash.h: ...here; make unsigned HOST_WIDE_INT. * cppinit.c (cpp_create_reader): Default to host long arithmetic. (sanity_checks): Update. testsuite: * gcc.dg/cpp/arith-2.c, gcc.dg/cpp/arith-3.c: New tests. * gcc.dg/cpp/if-3.c: Remove. From-SVN: r53911
2002-05-25Makefile.in (C_COMMON_H): Fix.Neil Booth1-3/+8
* Makefile.in (C_COMMON_H): Fix. Update other targets. * c-common.c: Don't include c-lex.h. (builtin_define_with_value): Make static and prototype. (builtin_define_std): Move from c-lex.h. * c-common.h (init_c_lex): Move from c-lex.h. * c-decl.c: Don't include c-lex.h. (make_pointer_declarator): Move from c-parse.in. * c-lex.c: Don't include c-lex.h. * c-lex.h: Remove. * c-parse.in: Don't include c-lex.h; include c-pragma.h. (make_pointer_declarator): Move to c-decl.c. * c-pragma.c: Don't include c-lex.h. * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h. * c-tree.h (make_pointer_declarator): New. cp: * lex.c: Don't include c-lex.h. * parse.y, spew.c: Don't include c-lex.h; include c-pragma.h. doc: * passes.texi, tm.texi: Update. objc: * Make-lang.in: Update and correct. * objc-act.c: Don't include c-lex.h or cpplib.h. treelang: * treetree.c: Don't include c-lex.h. config: * darwin-c.c: Don't include c-lex.h. * c4x/c4x-c.c: Don't include c-lex.h. * c4x/t-c4x: Update. * i370/i370-c.c: Don't include c-lex.h. * i370/t-i370: Update. * i960/i960-c.c: Don't include c-lex.h. * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h. * i960/t-960bare: Update. * i960/t-vxworks: Update. * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h. * rs6000/t-darwin: Update. * rs6000/t-rs6000-c-rule: Update. * v850/v850-c.c: Don't include c-lex.h. * v850/v850.c: Don't include c-lex.h or cpplib.h. From-SVN: r53876
2002-05-23c-common.c (warn_nonnull): Declare.Jason Thorpe1-0/+293
* c-common.c (warn_nonnull): Declare. (c_common_attribute_table): Add "nonnull" attribute. (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p, check_nonnull_arg, get_nonnull_operand, check_function_arguments, check_function_arguments_recurse): New functions. * c-common.h (warn_nonnull): Declare extern. (check_function_arguments, check_function_arguments_recurse): New prototypes. * c-decl.c (c_decode_option): Add -Wnonnull option. * c-format.c (set_Wformat): Set warn_nonnull if enabling format checking. (format_check_context): New structure. (check_format_info_recurse): Remove recursion and rename to... (check_format_arg): ...this. Update comment. (check_format_info): Use check_function_arguments_recurse. * c-typeck.c (build_function_call): Call check_function_arguments instead of check_function_format. * doc/extend.texi: Document "nonnull" attribute. * doc/invoke.texi: Docuemnt -Wnonnull option. * testsuite/gcc.dg/nonnull-1.c: New test. * testsuite/gcc.dg/nonnull-2.c: New test. From-SVN: r53790
2002-05-22* c-common.c (cb_register_builtins): Don't indent '#' of #define.J"orn Rennecke1-1/+1
From-SVN: r53740
2002-05-22re PR preprocessor/6517 (gcc hangs on C compile with multiple "-I-")Neil Booth1-0/+4
PR preprocessor/6517 * Makefile.in: Update. * c-common.c (c_common_post_options): Add preprocessor errors to the error count. * c-lang.c (c_post_options): Kill. (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. * hooks.h: Add header guards. * langhooks-def.h: Include hooks.h. (LANG_HOOKS_POST_OPTIONS): Update. * langhooks.h (struct lang_hooks): Update post_options. * toplev.c (parse_options_and_default_flags): Update. cp: * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. * cp-tree.h (cxx_post_options): Kill. * cp-lex.c (cxx_post_options): Kill. objc: * objc-lang.c (objc_post_options): Kill. (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. From-SVN: r53724
2002-05-21c-common.c (c_common_init): Set options->unsigned_char from flag_signed_char.Zack Weinberg1-9/+7
* c-common.c (c_common_init): Set options->unsigned_char from flag_signed_char. (cb_register_builtins): Define __STRICT_ANSI__ and __CHAR_UNSIGNED__ here... * cppinit.c (init_builtins): Not here. (cpp_create_reader): unsigned_char option defaults to 0, not !DEFAULT_SIGNED_CHAR. (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char and -funsigned-char. * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__. * cpphash.c (_cpp_init_hashtable): Don't set it. * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting directly. Clarify comment. From-SVN: r53703
2002-05-19c-common.c (preprocessing_asm): New macro.Neil Booth1-4/+5
* c-common.c (preprocessing_asm): New macro. * c-lex.h (builtin_define, builtin_assert): Use pfile. doc: * tm.texi: Update. config/alpha: * alpha.h (CPLUSPLUS_CPP_SPEC): Remove. (CPP_SPEC): Simplify. (TARGET_CPU_CPP_BUILTINS): Update. * freebsd.h (TARGET_OS_CPP_BUILTINS): New. (CPP_SPEC): Simplify. * linux.h (CPLUSPLUS_CPP_SPEC): Remove. (TARGET_OS_CPP_BUILTINS): Update. * osf.h (CPP_XFLOAT_SPEC): Kill. (TARGET_OS_CPP_BUILTINS): Update. (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify. * osf5.h (CPP_XFLOAT_SPEC): Kill. * vms.h (CPP_SUBTARGET_SPEC): Kill. (TARGET_OS_CPP_BUILTINS): Update. From-SVN: r53641
2002-05-18c-common.c (c_common_post_options): Warn if -Wformat-zero-length is used ↵Jason Thorpe1-0/+2
without -Wformat. * c-common.c (c_common_post_options): Warn if -Wformat-zero-length is used without -Wformat. * c-common.h (warn_format_zero_length): Declare extern. * c-decl.c (warn_options): Add "format-zero-length". * c-format.c (warn_format_zero_length): Declare. (set_Wformat): Set warn_format_zero_length for -Wformat. (check_format_info): Only warn about zero-length formats if warn_format_zero_length is true. Include the format type name in the warning message. * doc/invoke.texi: Document -Wformat-zero-length. * testsuite/gcc.dg/format/zero-length-1.c: New test. From-SVN: r53592
2002-05-17c-common.c (c_common_init_options): Use C89 for Objective-C, and set the ↵Neil Booth1-2/+4
options flag. * c-common.c (c_common_init_options): Use C89 for Objective-C, and set the options flag. * cppinit.c (lang_flags): Remove objc. (lang_defaults): Remove OBJC and OBJCXX. (set_lang): Update. (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++. (cpp_handle_option): Remove -+ and -lang-objc++. For ObjC, just set a flag. (print_help): Update. * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX. From-SVN: r53566
2002-05-16c-common.c (cb_register_builtins): Handle more built-ins here rather than in ↵Neil Booth1-0/+17
gcc.c specs. * c-common.c (cb_register_builtins): Handle more built-ins here rather than in gcc.c specs. * gcc.c (cpp_unique_options): Move many built-ins to c-common.c. (cpp_options): Pass -O flags even when only preprocessing. * toplev.c (set_fast_math_flags): New prototype. (fast_math_flags_set_p): New. (set_no_fast_math_flags): Remove. (decode_f_option): Update. * toplev.h (set_fast_math_flags): Update. (fast_math_flags_set_p): New. (set_no_fast_math_flags): Remove. config: * c4x/c4x.c (c4x_override_options): Update. From-SVN: r53526
2002-05-16c-common.c (STDC_0_IN_SYSTEM_HEADERS, [...]): Default-define here.Zack Weinberg1-14/+35
* c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX): Default-define here. (builtin_define_with_value): Can now wrap the expansion in quotation marks if such is wanted. (cb_register_builtins): Update calls to builtin_define_with_value. Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__ here. (c_common_init): Set options->stdc_0_in_system_headers. * c-lex.h: Update prototype of builtin_define_with_value. * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX and REGISTER_PREFIX. * cppinit.c (VERS, ULP, C, X): Kill. (builtin_array): Remove entries for __VERSION__, __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and __HAVE_BUILTIN_SETJMP__. Make __STDC__ always a builtin, not a constant. (init_builtins): Kill off a bunch of now-dead code. (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and -fno-leading-underscore. (cpp_handle_option): Remove code to set user_label_prefix. (cpp_post_options): Likewise. * cpplib.h (struct cpp_options): Remove user_label_prefix. (stdc_0_in_system_headers): New. * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile, stdc_0_in_system_headers) too to decide the value of __STDC__. * tradcpp.c (user_label_prefix): Kill. (main): Remove code handling -f(no-)leading-underscore. (initialize_builtins): Don't define __REGISTER_PREFIX__ or __USER_LABEL_PREFIX__. (install_value): Wrap compound statement in dummy loop so the macro works properly in an if statement. From-SVN: r53525
2002-05-15c-parse.in (MODIFIED_WCHAR_TYPE): New macro.Zack Weinberg1-8/+35
* c-parse.in (MODIFIED_WCHAR_TYPE): New macro. (c_common_nodes_and_builtins): Use it. (builtin_define_with_value): New function. (cb_register_builtins): Define __SIZE_TYPE__, __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here, using builtin_define_with_value. Use consistent notation when defining __GXX_WEAK__. (WCHAR_TYPE_SIZE): Don't redefine. (combine_strings): Don't use WCHAR_TYPE_SIZE. * cppdefault.h: Don't provide defaults for SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE. * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc. * tradcpp.c (initialize_builtins): Likewise. * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__. * c-lex.h (builtin_define_with_value): Prototype. * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE, NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE. * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc. * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h, config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h, config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h, config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h, config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h, config/sparc/linux64.h, config/sparc/netbsd-elf.h, config/sparc/sol2-bi.h, config/sparc/sparc.h: Do not define NO_BUILTIN_SIZE_TYPE etc. Remove all references to __SIZE_TYPE__ etc from all spec strings. When this makes extra specs empty, delete them. From-SVN: r53472
2002-05-13Makefile.in (c-common.o, cppinit.o): Update.Neil Booth1-3/+7
* Makefile.in (c-common.o, cppinit.o): Update. * c-common.c: Include except.h. (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__. Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS. * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here. * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS, CPP_PREDEFINES): Handle here. config: * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h, alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h, alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define TARGET_OS_CPP_BUILTINS. * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define. (CPP_SPEC, EXTRA_SPECS): Update. (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC, CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC, CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC, CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC, CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove. doc: * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove. (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define. From-SVN: r53410
2002-05-09Makefile.in: Update.Neil Booth1-0/+81
* Makefile.in: Update. * c-common.c (flag_iso, flag_undef, cb_register_builtins, builtin_define_std): New. (c_common_init): Register CPP builtins callback. * c-common.h (flag_iso, flag_undef): New. * c-decl.c (c_decode_option): Set flag_iso and flag_undef. * c-lex.c: Don't include target.h. (cb_register_builtins): Move to c-common.c. (init_c_lex): Don't register hook here. * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New. (cpp_define, cpp_assert): Remove. * gcc.c (cc1_options): Pass -undef to front end. * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove. (TARGET_INITIALIZER): Update. * target.h (struct cpp_reader): Don't predeclare. (struct gcc_target): Remove cpp builtin hook. * tree.c (default_register_cpp_builtins): Remove. cp: * cp-tree.h (flag_ansi): Remove. * decl2.c (flag_ansi): Remove. (cxx_decode_option): Set flag_iso and flag_undef. doc: * tm.texi: Update. From-SVN: r53349
2002-05-07c-common.c (c_common_init): Set options->unsigned_wchar.Neil Booth1-0/+9
* c-common.c (c_common_init): Set options->unsigned_wchar. * cppinit.c (cpp_create_reader): Default unsigned_wchar, group target dependencies. (init_builtins, cpp_handle_option): Update. * cpplex.c (cpp_interpret_charconst): Update. * cpplib.h (struct cpp_options): Add unsigned_wchar, rename signed_char to unsigned_char, group target dependencies. * defaults.h (WCHAR_UNSIGNED): Remove. * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison. config: * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h, i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h, i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h, i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h, sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED. doc: * tm.texi: Remove MAX_CHAR_TYPE_SIZE. From-SVN: r53271
2002-05-06c-common.c (warn_multichar): New.Neil Booth1-0/+6
* c-common.c (warn_multichar): New. (c_common_init): Set CPP's warn_multichar. * c-common.h (warn_multichar): New. * c-decl.c (warn_multichar): Remove. * c-lex.c (lex_charconst): Update. * c-tree.h (warn_multichar): Remove. * cppexp.c (eval_token): Sign-extend charconst value. * cppinit.c (cpp_create_reader): Set warn_multichar. * cpplex.c (cpp_interpret_charconst): Don't sign-extend each character. Update prototype. Sign-extend the result. * cpplib.h: Fix conditions. (struct cpp_options): Add new warning flag. (cpp_interpret_charconst): Update prototype. cp: * Make-lang.in (decl2.o): Update. * cp-tree.h (warn_multichar): Remove. * decl2.c: Include c-common.h. (warn_multichar): Remove. doc: * cpp.texi: Update documentation. testsuite: * gcc.dg/cpp/charconst-3.c: Correct tests accordingly. From-SVN: r53240
2002-05-05c-common.c (c_common_init): Set up CPP arithmetic.Neil Booth1-0/+8
* c-common.c (c_common_init): Set up CPP arithmetic. * cppinit.c (cpp_create_reader): Default CPP arithmetic to something reasonable for the host. (sanity_checks): Add checks. (cpp_read_main_file): Call sanity_checks() from here... (cpp_post_options): ... not here. * cpplex.c (cpp_interpret_charconst): Get max_chars right. * cpplib.h (struct cpp_options): New member int_precision. testsuite: * gcc.dg/cpp/charconst.c: Update tests. From-SVN: r53186