aboutsummaryrefslogtreecommitdiff
path: root/gcc/c.opt
AgeCommit message (Collapse)AuthorFilesLines
2010-06-05c-common.c: Move to c-family/.Steven Bosscher1-1060/+0
gcc/ChangeLog: * c-common.c: Move to c-family/. * c-common.def: Likewise. * c-common.h: Likewise. * c-cppbuiltin.c: Likewise. * c-dump.c: Likewise. * c-format.c: Likewise. * c-format.h : Likewise. * c-gimplify.c: Likewise. * c-lex.c: Likewise. * c-omp.c: Likewise. * c.opt: Likewise. * c-opts.c: Likewise. * c-pch.c: Likewise. * c-ppoutput.c: Likewise. * c-pragma.c: Likewise. * c-pragma.h: Likewise. * c-pretty-print.c: Likewise. * c-pretty-print.h: Likewise. * c-semantics.c: Likewise. * stub-objc.c: Likewise. * gengtype.c (get_file_langdir): Special-case files in c-family/. (get_output_file_with_visibility): Fix name for c-common.h. * c-config-lang.in: Update paths in gtfiles for files in c-family/. * c-tree.h: Update include path for moved files. * c-lang.c: Likewise. * c-lang.h: Likewise. * c-parser.c: Likewise. * c-convert.c: Likewise. * c-decl.c: Likewise. * c-objc-common.c: Likewise. * configure.ac: Make sure c-family/ exists in the build directory. * configure: Regenerate. * Makefile.in: Update paths for moved files. Regroup files per location and update dependencies. Move generated_files down after ALL_GTFILES_H. * config/spu/spu-c.c: Update paths for moved files. * config/mep/mep-pragma.c: Likewise. * config/darwin-c.c: Likewise. * config/i386/msformat-c.c: Likewise. * config/i386/i386-c.c: Likewise. * config/avr/avr-c.c: Likewise. * config/sol2-c.c: Likewise. * config/ia64/ia64-c.c: Likewise. * config/rs6000/rs6000-c.c: Likewise. * config/arm/arm.c: Likewise. * config/arm/arm-c.c: Likewise. * config/h8300/h8300.c: Likewise. * config/v850/v850-c.c: Likewise. * config/t-darwin: Fix dependencies for moved files. * config/t-sol2: Fix dependencies for moved files. * config/mep/t-mep: Fix dependencies for moved files. * config/ia64/t-ia64: Fix dependencies for moved files. * config/rs6000/t-rs6000: Fix dependencies for moved files. * config/v850/t-v850: Fix dependencies for moved files. * config/v850/t-v850e: Fix dependencies for moved files. * config/m32c/m32c-pragma.c * po/exgettext: Look in c-family/ also. c-family/ChangeLog: * c-common.c: Include gt-c-family-c-common.h. * c-pragma.c: Include gt-c-family-c-pragma.h. objc/ChangeLog: * objc-act.c: Update include path for moved files. * objc-lang.c: Likewise. * config-lang.in: Update paths in gtfiles for files in c-family/. objcp/ChangeLog: * objcp-lang.c: Update include path for moved files. * config-lang.in: Update paths in gtfiles for files in c-family/. cp/ChangeLog: * typeck.c: Update include path for moved files. * decl.c: Likewise. * rtti.c: Likewise. * cp-gimplify.c: Likewise. * cp-lang.c: Likewise. * pt.c: Likewise. * semantics.c: Likewise. * cxx-pretty-print.h: Likewise. * decl2.c: Likewise. * parser.c: Likewise. * cp-objcp-common.c: Likewise. * cp-tree.h: Likewise. * name-lookup.c: Likewise. * lex.c: Likewise. * name-lookup.h: Likewise. * config-lang.in: Update paths in gtfiles for files in c-family/. * Make-lang.in: Likewise. From-SVN: r160330
2010-05-15c.opt: Add -fnothrow-opt.Jason Merrill1-0/+4
gcc: * c.opt: Add -fnothrow-opt. gcc/cp: * cp-tree.h (TYPE_NOEXCEPT_P): New macro. * except.c (begin_eh_spec_block): Use MUST_NOT_THROW_EXPR if TYPE_NOEXCEPT_P. (finish_eh_spec_block): Adjust. From-SVN: r159450
2010-05-06re PR c/40989 (-Werror= and #pragma diagnostics do not work with group flags)Manuel López-Ibáñez1-2/+3
2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org> PR 40989 * doc/invoke.texi (Wimplicit): Document as C only. * opts.c (common_handle_option): Add argument kind. (handle_option): Rename as read_cmdline_option. Factor out code to... (handle_option): ... here. New. (handle_options): Rename as read_cmdline_options. (decode_options): Update call. (set_option): Use option index instead of option pointer. Classify diagnostics correctly. (enable_warning_as_error): Call handle_option. * opts.h (set_option): Update declaration. (handle_option): Declare. * langhooks.h (struct lang_hooks): Add argument kind to handle_option. * c.opt (Wimplicit,Wimplicit-int): Initialize to -1. * c-opts.c (set_Wimplicit): Delete. (c_family_lang_mask): New static constant. (c_common_handle_option): Add argument kind. Use handle_option instead of set_Wimplicit. (c_common_post_options): warn_implicit and warn_implicit_int are disabled by default. * c-common.c (warn_implicit): Do not define here. * c-common.h (warn_implicit): Do not declare here. (c_common_handle_option): Update declaration. * lto-opts.c (lto_reissue_options): Update call to set_option. java/ * lang.c (java_handle_option): Add argument kind. fortran/ * options.c (gfc_handle_option): Add argument kind. * gfortran.h (gfc_handle_option): Update declaration. ada/ * gcc-interface/misc.c (gnat_handle_option): Add argument kind. testsuite/ * gcc.dg/pr40989.c: New. From-SVN: r159102
2010-05-03re PR c++/43680 ([DR 1022] G++ is too aggressive in optimizing away bounds ↵Jason Merrill1-0/+4
checking with enums) PR c++/43680 gcc: * c.opt (-fstrict-enums): New. * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums. gcc/cp: * decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE from the selected underlying type unless -fstrict-enums. Set ENUM_UNDERLYING_TYPE to have the restricted range. * cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE. * class.c (check_bitfield_decl): Likewise. From-SVN: r159006
2010-04-25c-common.c (flag_isoc1x): New.Joseph Myers1-0/+8
gcc: * c-common.c (flag_isoc1x): New. (flag_isoc99): Update comment. * c-common.h (flag_isoc1x): New. (flag_isoc99): Update comment. * c-cppbuiltin.c (builtin_define_float_constants): Also define __<type>_DECIMAL_DIG__. * c-opts.c (set_std_c1x): New. (c_common_handle_option): Handle -std=c1x and -std=gnu1x. (set_std_c89, set_std_c99): Also set flag_isoc1x to 0. * c.opt (-std=c1x, -std=gnu1x): New options. * doc/cpp.texi: Mention -std=c1x. * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document. * doc/extend.texi: Mention -std=c1x and -std=gnu1x. * doc/invoke.texi (-std=c1x, -std=gnu1x): Document. * doc/standards.texi: Mention C1X. * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN): Define for C1X. gcc/testsuite: * gcc.dg/c90-float-1.c: Also test that C1X macros are not defined. * gcc.dg/c99-float-1.c: Also test that C1X macros are not defined. * gcc.dg/c1x-float-1.c: New test. libcpp: * include/cpplib.h (enum c_lang): Add CLK_GNUC1X and CLK_STDC1X. * init.c (lang_defaults): Add entries for new language variants. (cpp_init_builtins): Define __STDC_VERSION__ to 201000L for C1X variants. From-SVN: r158711
2010-04-09re PR c++/28584 (Cast to pointer from integer of different size)Manuel López-Ibáñez1-1/+1
2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org> PR c++/28584 * c.opt (Wint-to-pointer-cast): Available in C++. * doc/invoke.texi (Wint-to-pointer-cast): Available in C++. cp/ * typeck.c (cp_build_c_cast): Warn for casting integer to larger pointer type. testsuite/ * gcc.dg/Wint-to-pointer-cast-1.c: Move to... * c-c++-common/Wint-to-pointer-cast-1.c: ... here. * gcc.dg/Wint-to-pointer-cast-2.c: Move to... * c-c++-common/Wint-to-pointer-cast-2.c: ... here. * gcc.dg/Wint-to-pointer-cast-3.c: Move to... * c-c++-common/Wint-to-pointer-cast-3.c: ... here. Update. * g++.old-deja/g++.mike/warn1.C: Add -Wno-int-to-pointer-cast. * g++.dg/other/increment1.C: Likewise. From-SVN: r158150
2010-04-02Make-lang.in, [...]: Update copyright years.Steven Bosscher1-1/+1
* ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c, basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h, collect2.h, config/alpha/alpha.c, config/alpha/alpha.md, config/alpha/predicates.md, config/arm/arm.md, config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml, config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c, config/darwin9.h, config/darwin.c, config/darwin.h, config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h, config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c, config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c, config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c, config/mips/mips.md, config/mn10300/mn10300.c, config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md, config/rs6000/aix.h, config/rs6000/dfp.md, config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c, config/rs6000/vector.md, config/rtems.h, config/rx/rx.md, config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h, config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md, config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c, config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in, c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c, diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi, doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi, doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c, fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h, gensupport.c, gimple.h, gimple-iterator.c, graphite.c, graphite-clast-to-gimple.c, graphite-clast-to-gimple.h, graphite-dependences.c, graphite-poly.c, graphite-poly.h, graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c, graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c, intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h, ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c, ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c, loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c, objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk, opt-functions.awk, opth-gen.awk, params.def, passes.c, postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h, rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h, store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c, tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h, tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c, tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c, tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c, unwind-dw2-fde-darwin.c, varpool.c: Update copyright years. From-SVN: r157950
2010-02-26re PR c/20631 (Support -std=c90 as alias for -std=c89)Manuel López-Ibáñez1-0/+8
2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org> PR c/20631 * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89. * doc/standards.texi: Likewise. * doc/extend.texi: Likewise. * doc/trouble.texi: Likewise. * doc/cppopts.texi: Likewise. * doc/install.texi: Likewise. * c.opt (std=c90,std=gnu90): New options. * c-opts.c (c_common_handle_option): Handle them. testsuite/ * gcc.dg/cpp/c90-pedantic.c: New. * gcc.dg/cpp/c90.c: New. * gcc.dg/gnu90-const-expr-1.c: New. * gcc.dg/Woverlength-strings-pedantic-c90.c: New. From-SVN: r157096
2010-02-24c.opt (-ftemplate-depth=): New.Manuel López-Ibáñez1-1/+4
2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org> * c.opt (-ftemplate-depth=): New. (-ftemplate-depth-): Deprecate. * optc-gen.awk: Handle -ftemplate-depth=. * opth-gen.awk: Likewise. * c-opts.c (c_common_handle_option): Likewise. * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=. cp/ * pt.c (push_tinst_level): Replace -ftemplate-depth- with -ftemplate-depth=. From-SVN: r157054
2010-02-20re PR c++/35669 (NULL (__null) not considered different from 0 with C++)Manuel López-Ibáñez1-0/+4
2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org> PR c++/35669 * c.opt (Wconversion-null): New option. * doc/invoke.texi (Wconversion-null): Document. cp/ * call.c (conversion_null_warnings): Replace -Wconversion with -Wconversion-null. * cvt.c (build_expr_type_conversion): Likewise. testsuite/ * g++.dg/warn/Wconversion2.C: Replace -Wconversion with -Wconversion-null. * g++.dg/warn/Wconversion-null.C: New test. * g++.old-deja/g++.other/null1.C: Move to... * g++.dg/warn/Wconversion-null-2.C: ... here. Remove -Wconversion. libstdc++-v3/ * testsuite/18_support/headers/cstddef/macros.cc: Add -Wno-conversion-null. From-SVN: r156928
2010-01-11re PR translation/42467 (exgettext should not remove TABs from option help ↵Joseph Myers1-1/+1
strings) gcc/po/ 2010-01-11 Joseph Myers <joseph@codesourcery.com> Shujing Zhao <pearly.zhao@oracle.com> PR translation/42467 * exgettext: Keep the text before tab character in the option help string at *.opt file. gcc/ 2010-01-11 Joseph Myers <joseph@codesourcery.com> Shujing Zhao <pearly.zhao@oracle.com> PR translation/42469 * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=, fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab character between option name and help text. * c.opt (imultilib): Likewise. gcc/fortran 2010-01-11 Joseph Myers <joseph@codesourcery.com> Shujing Zhao <pearly.zhao@oracle.com> PR translation/42469 * lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=, finit-logical=, finit-real=, fmax-array-constructor=): Use tab character between option name and help text. Co-Authored-By: Shujing Zhao <pearly.zhao@oracle.com> From-SVN: r155801
2010-01-08re PR lto/42528 (ICE with -flto and -fsigned-char)Richard Guenther1-2/+2
2010-01-08 Richard Guenther <rguenther@suse.de> PR lto/42528 * c.opt (fsigned-char): Also let LTO handle this option. (funsigned-char): Likewise. lto/ * lto-lang.c (lto_handle_option): Handle -f[un]signed-char. (lto_init): Do not init char_type_node in a standard way but according to flag_signed_char. * gcc.dg/lto/20100103-1_0.c: New testcase. * gcc.dg/lto/20100103-2_0.c: Likewise. From-SVN: r155740
2009-10-05Fix check_warning_flags warnings.Ralf Wildenhues1-1/+1
gcc/: * c.opt (Wjump-misses-init): Fix typo to enable for ObjC. * doc/invoke.texi (Warning Options): Annotate allowed languages for -Wunsuffixed-float-constants. From-SVN: r152469
2009-10-03Merge lto branch into trunk.Diego Novillo1-2/+2
From-SVN: r152434
2009-09-18c.opt: Add -fno-deduce-init-list.Jason Merrill1-0/+4
* c.opt: Add -fno-deduce-init-list. * pt.c (get_pattern_parm): New. (listify): Split out from... (listify_autos): ...here. (unify): Deduce std::initializer_list for T. * call.c (build_over_call): Warn about it. From-SVN: r151867
2009-07-10re PR c/25509 (can't disable __attribute__((warn_unused_result)))Manuel López-Ibáñez1-0/+4
2009-07-10 Manuel López-Ibáñez <manu@gcc.gnu.org> PR 25509 PR 40614 * c.opt (Wunused-result): New. * doc/invoke.texi: Document it. * c-common.c (c_warn_unused_result): Use it. testsuite/ * g++.dg/warn/unused-result1-Werror.c: New. From-SVN: r149458
2009-06-16df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.Ian Lance Taylor1-0/+4
./: * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch. * gcov.c (read_count_file): Add braces around variables declared before label. * c.opt (Wjump-misses-init): New warning. * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for -Wall and -Wc++-compat if not already set. (c_common_post_options): Clear warn_jump_misses_init if it was not set. * c-decl.c (struct c_binding): Change type field to a union with new label field. Make it the first field in the struct. Update references to type to use u.type instead. (struct c_spot_bindings): Define. (struct c_goto_bindings): Define. (c_goto_bindings_p): Define, along with VECs. (struct c_label_vars): Define. (struct c_scope): Add has_label_bindings field. (bind_label, set_spot_bindings): New static functions. (decl_jump_unsafe, update_spot_bindings): New static functions. (update_label_decls): New static function. (pop_scope): Call update_label_decls. Don't call c_end_vm_scope. Update binding u.label field to shadowed field. (c_binding_start_stmt_expr): New function. (c_binding_end_stmt_expr): New function. (pushdecl): Don't call c_begin_vm_scope. (make_label): Add defining and p_label_vars parameters. Change all callers. (lookup_label): Correct test for whether a label has not yet been defined. Call bind_label rather than bind. (warn_about_goto): New static function. (lookup_label_for_goto): New function. (declare_label): Call bind_label rather than bind. (check_earlier_gotos): New static function. (define_label): Don't give errors about jumping into statement expressions or scopes of variably modified types. Call set_spot_bindings and check_earlier_gotos. Call bind_label instead of bind. Don't set label_context_stack_se or label_context_stack_vm. (c_get_switch_bindings): New function. (c_release_switch_bindings): New function. (c_check_switch_jump_warnings): New function. (start_function): Don't set label_context_stack_se or label_context_stack_vm. (finish_function): Likewise. * c-typeck.c (label_context_stack_se): Don't define. (label_context_stack_vm): Don't define. (c_finish_goto_label): Call lookup_label_for_goto rather than lookup_label. Don't give errors about jumping into a statement expression or the scope of a variably modified type. Don't set label_context_stack_se or label_context_stack_vm. (struct c_switch): Remove blocked_stmt_expr and blocked_vm fields. Add bindings field. (c_start_case): Don't set deleted fields. Set bindings field. (do_case): Rework order of tests. Don't check blocked_stmt_expr or blocked_vm. Call c_check_switch_jump_warnings. (c_finish_case): Don't test blocked_stmt_expr field. Call c_release_switch_bindings. (c_begin_stmt_expr): Don't increment blocked_stmt_expr in c_switch_stack. Don't walk label_context_stack_se labels. Don't set label_context_stack_se. Call c_bindings_start_stmt_expr. (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in c_switch_stack. Don't walk label_context_stack_se labels. Don't set label_context_stack_se. Call c_bindings_end_stmt_expr. (c_begin_vm_scope, c_end_vm_scope): Don't define. * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define. (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define. (C_DECL_UNJUMPABLE_VM): Don't define. (C_DECL_UNDEFINABLE_VM): Don't define. (struct c_label_list): Don't define. (struct c_label_context_se): Don't define. (struct c_label_context_vm): Don't define. (struct c_spot_bindings): Declare. (c_bindings_start_stmt_expr): Declare. (c_bindings_end_stmt_expr): Declare. (lookup_label_for_goto): Declare. (c_get_switch_bindings, c_release_switch_bindings): Declare. (c_check_switch_jump_warnings): Declare. (label_context_stack_se, label_context_stack_vm): Don't declare. (c_finish_goto_label): Update declaration. (c_begin_vm_scope, c_end_vm_scope): Don't declare. * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init. (Warning Options): Document -Wjump-misses-init. cp/: * parser.c (cp_parser_direct_declarator): Add braces around variables declared before label. objc/: * objc-act.c (objc_start_function): Don't set label_context_stack_se or label_context_stack_vm. testsuite/: * gcc.dg/Wjump-misses-init-1.c: New testcase. * gcc.dg/Wjump-misses-init-2.c: New testcase. * gcc.dg/c99-vla-jump-5.c: Adjust expected error messages. Recognize new notes. * gcc.dg/stmt-expr-label-2.c: Likewise. * gcc.dg/c99-vla-jump-1.c: Recognize new notes. Fix column numbers. * gcc.dg/c99-vla-jump-2.c: Recognize new notes. * gcc.dg/c99-vla-jump-3.c: Recognize new notes. * gcc.dg/c99-vla-jump-4.c: Likewise. * gcc.dg/stmt-expr-label-1.c: Likewise. * gcc.dg/stmt-expr-label-3.c: Likewise. * gcc.dg/vla-8.c: Likewise. Move error message to different line. From-SVN: r148512
2009-05-19re PR c/40172 (Revision 147596 breaks bootstrap)Manuel López-Ibáñez1-1/+1
2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org> PR c/40172 gcc/ * c.opt (Wlogical-op): Disabled by default. * c-opt (c_common_post_options): Do not enable Wlogical-op with Wextra. * doc/invoke.texi (Wlogical-op): Likewise. testsuite/ * gcc.dg/pr40172.c: Add -Wlogical-op to dg-options. From-SVN: r147717
2009-05-07re PR c/39037 (FLOAT_CONST_DECIMAL64 pragma not supported)Janis Johnson1-0/+4
gcc/ PR c/39037 * c-common.h (mark_valid_location_for_stdc_pragma, valid_location_for_stdc_pragma_p, set_float_const_decimal64, clear_float_const_decimal64, float_const_decimal64_p): New. * c.opt (Wunsuffixed-float-constants): New. * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for unsuffixed float constant, handle new warning. * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants. * c-decl.c (c_scope): New flag float_const_decimal64. (set_float_const_decimal64, clear_float_const_decimal64, float_const_decimal64_p): New. (push_scope): Set new flag. * c-parser.c (c_parser_translation_unit): Mark when it's valid to use STDC pragmas. (c_parser_external_declaration): Ditto. (c_parser_compound_statement_nostart): Ditto. * c-pragma.c (valid_location_for_stdc_pragma, mark_valid_location_for_stdc_pragma, valid_location_for_stdc_pragma_p, handle_stdc_pragma, handle_pragma_float_const_decimal64): New. (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64. * cp/semantics.c (valid_location_for_stdc_pragma_p, set_float_const_decimal64, clear_float_const_decimal64, float_const_decimal64_p): New dummy functions. * doc/extend.texi (Decimal Float): Remove statement that the pragma, and suffix for double constants, are not supported. * doc/invoke.texi (Warning Options): List new option. (-Wunsuffixed-float-constants): New. gcc/testsuite PR c/39037 * gcc.dg/Wunsuffixed-float-constants-1.c: New test. * gcc.dg/cpp/pragma-float-const-decimal64-1.c: New test. * gcc.dg/dfp/float-constant-double.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-1.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-2.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-3.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-4.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-5.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-6.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-7.c: New test. * gcc.dg/dfp/pragma-float-const-decimal64-8.c: New test. * g++.dg/cpp/pragma-float-const-decimal64-1.C: New test. From-SVN: r147259
2009-04-20re PR c++/13358 (long long and C++ do not mix well)Manuel López-Ibáñez1-1/+1
2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR c++/13358 * doc/invoke.texi (-Wlong-long): Update description. * c-lex (interpret_integer): Only warn if there was no previous overflow and -Wlong-long is enabled. * c-decl.c (declspecs_add_type): Drop redundant flags. * c.opt (Wlong-long): Init to -1. * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long and front-end warn_long_long. Wlong-long only depends on other flags if it is uninitialized. * c-parser.c (disable_extension_diagnostics): warn_long_long is the same for CPP and FE. (restore_extension_diagnostics): Likewise. libcpp/ * init.c (cpp_create_reader): Wlong_long is disabled by default. * expr.c (cpp_classify_number): Give different messages for C and C++ front-ends. cp/ * parser.c (cp_parser_check_decl_spec): Drop redundant flags. * error.c (pedwarn_cxx98): New. * cp-tree.h (pedwarn_cxx98): Declare. testsuite/ * gcc.dg/wtr-int-type-1.c: Use two dg-warning to match two messages. Test for "long long" in system headers. * gcc.dg/c99-longlong-2.c: New. * g++.dg/warn/pr13358.C: New. * g++.dg/warn/pr13358-2.C: New. * g++.dg/warn/pr13358-3.C: New. * g++.dg/warn/pr13358-4.C: New. From-SVN: r146459
2009-04-19re PR c/32061 ((Wlogical-op) wording of warning of constant logicials need ↵Manuel López-Ibáñez1-0/+4
improvement) 2009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org> PR c/32061 PR c++/36954 * doc/invoke.texi: Add -Wlogical-op to -Wextra. * common.opt (Wlogical-op): Move from here... * c.opt (Wlogical-op): ... to here. * c-typeck.c (parser_build_binary_op): Update call to warn_logical_operator. * c-opts.c (c_common_post_options): Enable warn_logical_op with extra_warnings. * c-common.c (warn_logical_op): Update. * c-common.h (warn_logical_op): Update declaration. cp/ * call.c (build_new_op): Save the original codes of operands before folding. testsuite/ * gcc.dg/pr32061.c: New. * gcc.dg/Wlogical-op-1.c: Update. * g++.dg/warn/Wlogical-op-1.C: Update. * g++.dg/warn/pr36954.C: New. From-SVN: r146344
2009-04-15c.opt (Wenum-compare): Enable for C and Objc.Ian Lance Taylor1-1/+1
gcc/: * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1. * c-opts.c (c_common_handle_option): For C, set warn_enum_compare for -Wall and for -Wc++-compat. (c_common_post_options): For C++, set warn_enum_compare if not already set. * c-tree.h (struct c_expr): Add field original_type. (build_external_ref): Update declaration. * c-parser.c (c_parser_braced_init): Set original_type. (c_parser_initelt): Likewise. (c_parser_expr_no_commas): Likewise. (c_parser_conditional_expression): Likewise. (c_parser_cast_expression): Likewise. (c_parser_unary_expression): Likewise. Pull setting of original_code to top of function. (c_parser_sizeof_expression): Set original_type. (c_parser_alignof_expression): Likewise. (c_parser_postfix_expression): Likewise. Pull setting of original_code to top of function. (c_parser_postfix_expression_after_paren_type): Set original_type. (c_parser_postfix_expression_after_primary): Likewise. (c_parser_expression): Likewise. * c-typeck.c (build_external_ref): Add type parameter. Change all callers. (c_expr_sizeof_expr): Set original_type field. (parser_build_unary_op): Likewise. (parser_build_binary_op): Likewise. Optionally warn about comparisons of enums of different types. (digest_init): Set original_type field. (really_start_incremental_init): Likewise. (push_init_level, pop_init_level): Likewise. * doc/invoke.texi (Warning Options): -Wenum-compare now supported in C. gcc/testsuite/: * gcc.dg/Wenum-compare-1.c: New testcase. From-SVN: r146127
2009-04-07re PR c++/25185 (deep typedef substitution in error message)Jason Merrill1-0/+4
PR c++/25185 * c-common.h, c-common.c: Add flag_pretty_templates. * c-opts.c (c_common_handle_option): Set it. * c.opt: Add -fno-pretty-templates. * doc/invoke.texi (C++ Dialect Options): Likewise. * error.c (dump_function_decl): Don't pretty-print templates if -fno-pretty-templates. (count_non_default_template_args): Print all args if -fno-pretty-templates. From-SVN: r145697
2009-03-18c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers, and -fopenmp.Ralf Wildenhues1-3/+3
gcc/ * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers, and -fopenmp. gcc/java/ * lang.opt: Unify help text for -Wdeprecated. gcc/fortran/ * lang.opt: Unify help texts for -I, -Wconversion, -d, -fopenmp, and -fpreprocessed. From-SVN: r144943
2009-02-20Update Copyright years for files modified in 2008 and/or 2009.Jakub Jelinek1-1/+2
From-SVN: r144324
2009-02-17re PR target/39082 (union with long double doesn't follow x86-64 psABI)H.J. Lu1-1/+4
gcc/ 2009-02-17 H.J. Lu <hongjiu.lu@intel.com> PR target/39082 * c.opt (Wabi): Support C and ObjC. (Wpsabi): New. * c-opts.c (c_common_handle_option): Handle OPT_Wabi. * config/i386/i386.c (classify_argument): Warn once about the ABI change when passing union with long double. * doc/invoke.texi: Update -Wabi for warning psABI changes. gcc/testsuite/ 2009-02-17 H.J. Lu <hongjiu.lu@intel.com> PR target/39082 * g++.dg/compat/struct-layout-1_generate.c (dg_options): Add -Wno-abi for x86. * gcc.dg/compat/struct-layout-1_generate.c (dg_options): Likewise. * gcc.target/i386/pr39082-1.c: New. * gcc.target/x86_64/abi/abi-x86_64.exp (additional_flags): Add -Wno-abi. * gcc.target/x86_64/abi/args.h (XMM_T): Add _m64 and _m128 if CHECK_M64_M128 is defined. (check_f_arguments): Add "do". (check_vector_arguments): New. (check_m64_arguments): Likewise. (check_m128_arguments): Likewise. * gcc.target/x86_64/abi/defines.h: Include <xmmintrin.h>. (CHECK_M64_M128): Define. * gcc.target/x86_64/abi/test_m64m128_returning.c: New. Based on abitest. * gcc.target/x86_64/abi/test_passing_m64m128.c: Likewise. * gcc.target/x86_64/abi/test_passing_structs.c: Define __m128 tests only if CHECK_M64_M128 is defined. * gcc.target/x86_64/abi/test_passing_structs.c (m128_struct): New. (m128_2_struct): Likewise. (check_struct_passing5): Likewise. (check_struct_passing6): Likewise. (main): Test struct with __m128 if CHECK_M64_M128 is defined. * gcc.target/x86_64/abi/test_passing_unions.c (un4): New. (un5): Likewise. (check_union_passing4): Likewise. (main): Test union with __m128 if CHECK_M64_M128 is defined. From-SVN: r144257
2009-01-28c.opt (Wpacked-bitfield-compat): Change init value to -1.Adam Nemet1-1/+1
* c.opt (Wpacked-bitfield-compat): Change init value to -1. * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat was not supplied then set warn_packed_bitfield_compat to the default value of 1. * stor-layout.c (place_field): Check warn_packed_bitfield_compat against 1. From-SVN: r143718
2009-01-23c-decl.c (finish_struct): Move code to set DECL_PACKED after DECL_BIT_FIELD ↵Adam Nemet1-0/+4
is alreay known. * c-decl.c (finish_struct): Move code to set DECL_PACKED after DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields regardless of their type. * c-common.c (handle_packed_attribute): Don't ignore packed on bitfields. * c.opt (Wpacked-bitfield-compat): New warning option. * stor-layout.c (place_field): Warn if offset of a field changed. * doc/extend.texi (packed): Mention the ABI change. * doc/invoke.texi (-Wpacked-bitfield-compat): Document. (Warning Options): Add it to the list. cp/ * class.c (check_field_decls): Also inherit packed for bitfields regardless of their type. testsuite/ * gcc.dg/bitfld-15.c, gcc.dg/bitfld-16.c, gcc.dg/bitfld-17.c,gcc.dg/bitfld-18.c: New tests. * g++.dg/ext/bitfield2.C, g++.dg/ext/bitfield3.C, g++.dg/ext/bitfield4.C, g++.dg/ext/bitfield5.C: New tests. From-SVN: r143584
2008-11-17re PR middle-end/37908 (atomic NAND op generate wrong code; ↵Uros Bizjak1-0/+4
__sync_nand_and_fetch, __sync_fetch_and_nand) PR middle-end/37908 * optabs.c (expand_sync_operation): Properly handle NAND case by calculating ~(t1 & val) instead of (~t1 & val). * builtins.c (expand_builtin_sync_operation): Warn for changed semantics in NAND builtins. * c.opt (Wsync-nand): New warning option. Describe -Wsync-nand. * doc/invoke.texi (Warning options): Add Wsync-nand. * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct __sync_fetch_and_nand builtin operation in the example. Add a note about changed semantics in GCC 4.4. [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin operation in the example. Add a note about changed semantics in GCC 4.4. testsuite/ChangeLog: PR middle-end/37908 * gcc.dg/pr37908.c: New test. * gcc.dg/ia64-sync-1.c: Correct __sync_fetch_and_nand and __sync_nand_and_fetch results. Add dg-message to look for the warning about changed semantics of NAND builtin. (init_si, init_di): Change init value for __sync_fetch_and_nand to -1. (test_si, test_di): Change expected result of __sync_nand_and_fetch to ~7. * gcc.dg/ia64-sync-2.c: Correct __sync_fetch_and_nand and __sync_nand_and_fetch results. Add dg-message to look for the warning about changed semantics of NAND builtin. (init_noret_si, init_noret_di): Change init value for __sync_fetch_and_nand to -1. (init_noret_si, init_noret_di): Change expected result of __sync_nand_and_fetch to ~7. * gcc.dg/sync-2.c: Correct __sync_fetch_and_nand and __sync_nand_and_fetch results. Add dg-message to look for the warning about changed semantics of NAND builtin. (init_qi, init_qi): Change init value for __sync_fetch_and_nand to -1. (init_hi, init_hi): Change expected result of __sync_nand_and_fetch to ~7. * gcc.dg/sync-3.c: Copy from sync-2.c instead of including the c source file. * gcc.c-torture/compile/sync-1.c: Add dg-message to look for the warning about changed semantics of NAND builtin. * gcc.c-torture/compile/sync-2.c: Ditto. * gcc.c-torture/compile/sync-3.c: Ditto. From-SVN: r141942
2008-09-18cpplib.h (struct cpp_options): Add new boolean flag ↵Simon Baldwin1-0/+4
warn_builtin_macro_redefined. * include/cpplib.h (struct cpp_options): Add new boolean flag warn_builtin_macro_redefined. * init.c (cpp_create_reader): Initialize warn_builtin_macro_redefined. * (struct builtin_operator): Split out from previous struct builtin, enhance extra const correctness. * (struct builtin_macro): Split out from previous struct builtin, add new always_warn_if_redefined flag, enhance const correctness. * (mark_named_operators): Use struct builtin_operator. * (cpp_init_special_builtins): Use struct builtin_macro, add NODE_WARN to builtins selectively. * macro.c (warn_of_redefinition): Return false if a builtin macro is not flagged with NODE_WARN. * c-opts.c (c_common_handle_option): Add handling for -Wbuiltin-macro-redefined command line option. * c.opt: Added builtin-macro-redefined option. * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined documentation. * gcc.dg/builtin-redefine.c: New. From-SVN: r140461
2008-08-13re PR c/30551 (-pedantic does not include -Wmain, but -pedantic-errors does ↵Manuel López-Ibáñez1-1/+1
make -Wmain cause error messages) 2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 30551 * doc/invoke.texi (Wmain): Update. * c-decl.c (start_decl): warn_main is only 0 or 1. (start_function): Likewise. Fix formatting. (finish_function): Delete redundant warning. * c.opt (Wmain): Add Var(warn_main) and Init(-1). * c-opts (c_common_handle_option): -Wall only has effect if warn_main is uninitialized. OPT_Wmain is automatically handled. -pedantic also enables Wmain. (c_common_post_options): Handle all logic for Wmain here. * c-common.c (warn_main): Delete. (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain. * c-common.h (warn_main): Delete. cp/ * decl.c (grokfndecl): Call check_main_parameters_type only if -Wmain. testsuite/ * gcc.dg/pr30551.c: New. * gcc.dg/pr30551-2.c: New. * gcc.dg/pr30551-3.c: New. * gcc.dg/pr30551-4.c: New. * gcc.dg/pr30551-5.c: New. * gcc.dg/pr30551-6.c: New. * gcc.dg/tree-ssa/reassoc-3.c: Don't compile with -pedantic-errors. * g++.dg/warn/pr30551.C: New. * g++.dg/warn/pr30551-2.C: New. From-SVN: r139063
2008-06-15omp-low.c (extract_omp_for_data): Fix comment typo.Ralf Wildenhues1-1/+1
gcc/ * omp-low.c (extract_omp_for_data): Fix comment typo. * c.opt: Fix typo. gcc/cp/ * parser.c: Fix comment typo. From-SVN: r136804
2008-05-27Fix c++/27975.Michael Matz1-0/+4
* c.opt (Wenum-compare): New warning option. * doc/invoke.texi (Warning Options): Document -Wenum-compare. cp/ * call.c (build_new_op): Make warning conditional on OPT_Wenum_compare. testsuite/ * g++.dg/warn/Wenum-compare.C: New testcase. * g++.dg/warn/Wenum-compare-no.C: Ditto. From-SVN: r136035
2008-05-25re PR fortran/18428 (No preprocessing option -cpp for gfortran)Daniel Franke1-3/+0
gcc: 2008-05-26 Daniel Franke <franke.daniel@gmail.com> PR fortran/18428 * c.opt: Removed undocumented option '-lang-fortran'. * c-common.h: Removed global variable 'lang_fortran'. * c-opts.c (c_common_handle_option): Removed code to handle option '-lang-fortran'. Updated includes. * c-cppbuiltin.c (c_cpp_builtins): Removed conditional definition of '__GFORTRAN__'. (define__GNUC__): Reimplemented to use BASEVER and cpp_define_formatted. (builtin_define_with_value_n): Removed. * c-incpath.h: Renamed to ... * incpath.h: ... this. * c-incpath.c: Renamed to ... * incpath.c: ... this. Updated includes. * fix-header.c: Updated includes. * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch]. (c-cppbuiltin.o): Added dependency on and definition of BASEVER. (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o. gcc/cp: 2008-05-26 Daniel Franke <franke.daniel@gmail.com> * Makefile.in: Adjusted dependencies on c-incpath.o. gcc/fortran: 2008-05-26 Daniel Franke <franke.daniel@gmail.com> PR fortran/18428 * lang.opt (A, C, CC, D, E, H, P, U, cpp, d, fworking-directory, imultilib, iprefix, iquote, isysroot, isystem, nocpp, nostdinc, o, undef, v): New options. * options.c (gfc_init_options): Also initialize preprocessor options. (gfc_post_options): Also handle post-initialization of preprocessor options. (gfc_handle_option): Check if option is a preprocessor option. If yes, let gfc_cpp_handle_option() handle the option. * lang-specs.h: Reorganized to handle new options. * scanner.c (gfc_new_file): Read temporary file instead of input source if preprocessing is enabled. * f95-lang.c (gfc_init): Initialize preprocessor. (gfc_finish): Clean up preprocessor. * cpp.c: New. * cpp.h: New. * Make-lang.in: Added new objects and dependencies. * gfortran.texi: Updated section "Preprocessing and conditional compilation". * invoke.texi: Added new section "Preprocessing Options", listed and documented the preprocessing options handled by gfortran. From-SVN: r135882
2008-05-22c.opt (Wimport): Mark as undocumented.Tom Tromey1-2/+1
* c.opt (Wimport): Mark as undocumented. * doc/invoke.texi (Option Summary): Don't mention -Wimport or -Wno-import. (Warning Options): Likewise. * doc/cppopts.texi: Don't mention -Wimport. From-SVN: r135747
2008-05-13re PR preprocessor/22168 (#if #A == #B should have a diagnostic in ISO C mode)Tom Tromey1-1/+1
libcpp PR preprocessor/22168: * include/cpplib.h (struct cpp_options) <objc>: Update documentation. * expr.c (eval_token): Warn for use of assertions. * directives.c (directive_diagnostics): Warn about extensions. (DEPRECATED): New define. (DIRECTIVE_TABLE): Use it. gcc PR preprocessor/22168: * doc/cpp.texi (Top): Update menu. (Alternatives to Wrapper #ifndef): New node. (Other Directives): Document deprecation. (Obsolete Features): Remove menu. (Assertions): Merge node into Obsolete Features. (Obsolete once-only headers): Move earlier; rename to Alternatives to Wrapper #ifndef. * doc/cppopts.texi: Update. * c.opt (Wdeprecated): Enable for C and ObjC. * doc/invoke.texi (Option Summary): Move -Wno-deprecated. (C++ Dialect Options): Move -Wno-deprecated from here to... (Warning Options): ... here. gcc/testsuite PR preprocessor/22168: * gcc.dg/pch/import-2.hs: Add -Wno-deprecated. * gcc.dg/pch/import-1.hs: Add -Wno-deprecated. * gcc.dg/pch/import-2.c: Add -Wno-deprecated. * gcc.dg/pch/import-1.c: Add -Wno-deprecated. * gcc.dg/cpp/import2.c: Add -Wno-deprecated. * gcc.dg/cpp/import1.c: Add -Wno-deprecated. * gcc.dg/cpp/trad/assert3.c: Add -Wno-deprecated. * gcc.dg/cpp/trad/assert2.c: Add -Wno-deprecated. * gcc.dg/cpp/trad/assert1.c: Add -Wno-deprecated. * gcc.dg/cpp/ident.c: Add -Wno-deprecated. * gcc.dg/cpp/ident-1.c: Add -Wno-deprecated. * gcc.dg/cpp/extratokens.c: Add -Wno-deprecated. * gcc.dg/cpp/assert3.c: Add -Wno-deprecated. * gcc.dg/cpp/assert2.c: Add -Wno-deprecated. * gcc.dg/cpp/assert1.c: Add -Wno-deprecated. * gcc.dg/cpp/assert4.c: Compile with -ansi and not -pedantic. Add -Wno-deprecated. * gcc.dg/cpp/pr22168.c: New file. * gcc.dg/cpp/pr22168-2.c: New file. From-SVN: r135264
2008-03-09c.opt (Wsynth): Deprecate.Ralf Wildenhues1-1/+1
gcc/ * c.opt (Wsynth): Deprecate. * doc/invoke.texi (Option Summary, Warning Options): Document -Wno-format-contains-nul. gcc/fortran/ * invoke.texi (Error and Warning Options): Document -Wline-truncation. contrib/ * check_warning_flags.sh: Instead of invoke.texi, take the path to the doc directory as argument. Check that warnings listed in 'gcc --help' are accepted by the compiler, and listed in the manuals. From-SVN: r133059
2008-02-26re PR c/34351 (Please get us the "volatile register" warning back)Manuel López-Ibáñez1-0/+4
2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR 34351 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var. * c-opts.c (c_common_handle_option): Wall enables Wvolatile-register-var. * common.opt: Move Wvolatile-register-var to... * c.opt: ...here. testsuite/ * gcc.dg/pr34351.c: New. From-SVN: r132675
2008-02-24http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.htmlDiego Novillo1-4/+0
PR 33738 * tree-vrp.c (vrp_evaluate_conditional): With -Wtype-limits, emit a warning when comparing against a constant outside the natural range of OP0's type. * c.opt (Wtype-limits): Move ... * common.opt (Wtype-limits): ... here. testsuite/ChangeLog PR 33738 * g++.dg/warn/pr33738.C: New. From-SVN: r132591
2008-02-19re PR other/31349 (gcc -v --help returns no options for C, C++)Nick Clifton1-1/+1
PR other/31349 * opts.c (undocumented_msg): Leave blank unless checking is enabled. (handle_options): Fix indentation. (print_filtered_help): If no language-specific options were displayed tell the user how to list all the options supported by the language's front-end. (print_specific_help): Fix indentation and remove duplicate line. (common_handle_option): Handle the -v option. For --help enable the display of undocumented options if the -v switch has been included on the command line. For --help= check for overlaps in the arguments between the option classes and the language names and issue a warning when they cannot be disambiguated. * c.opt (v): Pass on to the common option handler. From-SVN: r132427
2008-01-13c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers instead of ↵Doug Kwan1-0/+4
OPT_Wreturn_type in... ChangeLog: 2008-01-12 Doug Kwan <dougkwan@google.com> * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers instead of OPT_Wreturn_type in warning due to ignored return type qualifiers. * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to options included in -Wextra. * c.opt: New option -Wignored_qualifiers. * doc/invoke.texi (Warning Options, -Wextra): Add new option -Wignore_qualifiers. (-Wignored-qualifiers): Document. (-Wreturn-type): Remove description of functionality now handled by -Wignored-qualifiers. cp/ChangeLog: 2008-01-12 Doug Kwan <dougkwan@google.com> * decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers instead of OPT_Wreturn_type in warning due to ignored return type qualifiers. * pt.c: (tsubst_function_type): Use OPT_Wignored_qualifiers instead of OPT_Wreturn_type in warning due to ignored return type qualifiers. testsuite/ChangeLog: 2008-01-12 Doug Kwan <dougkwan@google.com> * gcc.dg/qual-return-1.c: Add -Wignored-qualifiers. * g++.dg/warn/Wreturn-type-4.C: Replace -Wreturn-type by -Wignored-qualifiers. From-SVN: r131499
2007-07-30directives-only.c: New file.Ollie Wild1-0/+4
libcpp/ * directives-only.c: New file. * internal.h (struct _cpp_dir_only_callbacks): New. (_cpp_preprocess_dir_only): New function. * directives.c (_cpp_handle_directive): Check directives_only before disabling execution of indented directives. * files.c (_cpp_stack_file): Add directives_only check. * include/cpplib.h (struct cpp_options): Add directives_only. (cpp_init_special_builtins): New function. * init.c (cpp_init_special_builtins): New function. (cpp_init_builtins): Move builtin_array initialization to cpp_init_special_builtins. (post_options): Check directives_only before setting pfile->state.prevent_expansion = 1. * macro.c (_cpp_builtin_macro_text): Print an error if __COUNTER__ is expanded inside a directive while -fdirectives-only is enabled. * Makefile.in (libcpp_a_OBJS): Add directives-only.o. (libcpp_a_SOURCES): Add directives-only.c. gcc/ * c-ppoutput.c (print_lines_directives_only): New function. (scan_translation_unit_directives_only): New function. (preprocess_file): Add call to scan_translation_unit_directives_only. * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only. (sanitize_cpp_opts): Add default flag_dump_macros setting for -fdirectives-only. Add errors for -fdirectives-only conflict with -Wunused-macros and -traditional. (finish_options): Add builtin macro initialization for -fdirectives-only + -fpreprocessed. * c.opt (fdirectives-only): New. * doc/cppopts.texi (fdirectives-only): New. gcc/testsuite/ * gcc.dg/cpp/counter-2.c: New test. * gcc.dg/cpp/counter-3.c: New test. * gcc.dg/cpp/dir-only-1.c: New test. * gcc.dg/cpp/dir-only-1.h: New file. * gcc.dg/cpp/dir-only-2.c: New test. * gcc.dg/cpp/dir-only-3.c: New test. * gcc.dg/cpp/dir-only-3a.h: New file. * gcc.dg/cpp/dir-only-3b.h: New file. * gcc.dg/cpp/dir-only-4.c: New test. * gcc.dg/cpp/dir-only-5.c: New test. * gcc.dg/cpp/dir-only-6.c: New test. From-SVN: r127066
2007-07-26Change copyright header to refer to version 3 of the GNU General Public ↵Nick Clifton1-4/+3
License and to point readers at the COPYING3 file and the FSF's license web page. From-SVN: r126948
2007-06-28Index: gcc/ChangeLogGeoffrey Keating1-0/+4
2007-06-21 Geoffrey Keating <geoffk@apple.com> * doc/invoke.texi (C++ Dialect Options): Document fvisibility-ms-compat. * c.opt (fvisibility-ms-compat): New. Index: gcc/cp/ChangeLog 2007-06-21 Geoffrey Keating <geoffk@apple.com> * decl2.c (determine_visibility): Implement flag_visibility_ms_compat effect on type info. * decl.c (cxx_init_decl_processing): Implement global effect of flag_visibility_ms_compat. Index: gcc/testsuite/ChangeLog 2007-06-26 Geoffrey Keating <geoffk@apple.com> * g++.dg/ext/visibility/ms-compat-1.C: New. From-SVN: r126088
2007-05-20re PR middle-end/7651 (Define -Wextra strictly in terms of other warning flags)Manuel López-Ibáñez1-0/+4
2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR middle-end/7651 PR c++/11856 PR c/12963 PR c/23587 PR other/29694 * c.opt (Wtype-limits): New. * doc/invoke.texi (Wtype-limits): Document it. (Wextra): Enabled by -Wextra. * c-opts.c (c_common_post_options): Enabled by -Wextra. * c-common.c (shorten_compare): Warn with Wtype-limits. testsuite/ * gcc.dg/compare6.c: Replace Wall with Wtype-limits. * gcc.dg/Wtype-limits.c: New. * gcc.dg/Wtype-limits-Wextra.c: New. * gcc.dg/Wtype-limits-no.c: New. * g++.dg/warn/Wtype-limits.C: New. * g++.dg/warn/Wtype-limits-Wextra.C: New. * g++.dg/warn/Wtype-limits-no.C: New. From-SVN: r124875
2007-05-19invoke.texi (Warning Options): Add -Wconversion-sign.Manuel López-Ibáñez1-0/+4
2007-05-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org> * doc/invoke.texi (Warning Options): Add -Wconversion-sign. (Wconversion): Update description. (Wconversion-sign): New. * c.opt (Wconversion-sign): New. * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign means disabled for C++. Otherwise, take the status of Wconversion. * c-common.c (conversion_warning): Warn with either Wconversion or Wconversion-sign. (warnings_for_convert_and_check): Conditions are already checked by conversion_warning. (convert_and_check): Don't check warnings if the conversion failed. cp/ * cvt.c (cp_convert_and_check): Don't check warnings if the conversion failed. testsuite/ * gcc.dg/Wconversion-integer.c: Group testcases and add more. * gcc.dg/Wconversion-sign.c: New. * gcc.dg/Wconversion-integer-no-sign.c: New. * g++.dg/warn/Wconversion-integer.C: Move some warnings to Wconversion-sign.C * g++.dg/warn/Wconversion-sign.C: New. * g++.old-deja/g++.other/warn4.C: Update. * g++.dg/warn/Wconversion1.C: Likewise. From-SVN: r124856
2007-05-04c.opt (Wmain,ffreestanding): Enable for C++,ObjC++.Dirk Mueller1-2/+2
2007-05-04 Dirk Mueller <dmueller@suse.de> * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++. * cp-tree.h (DECL_MAIN_P): only if -ffreestanding is not in effect. From-SVN: r124404
2007-04-23c.opt (Wformat-contains-nul): Add warning attribute.Nick Clifton1-1/+1
From-SVN: r124063
2007-04-17invoke.texi (Debugging Options): Add documentation for the ↵Lawrence Crowl1-0/+12
-femit-struct-debug options... ./: * doc/invoke.texi (Debugging Options): Add documentation for the -femit-struct-debug options -femit-struct-debug-baseonly, -femit-struct-debug-reduced, and -femit-struct-debug-detailed[=...]. * c-opts.c (c_common_handle_option): Add OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced, and OPT_femit_struct_debug_detailed_. * c.opt: Add specifications for -femit-struct-debug-baseonly, -femit-struct-debug-reduced, and -femit-struct-debug-detailed[=...]. * opts.c (set_struct_debug_option): Parse the -femit-struct-debug-... options. * opts.c (matches_main_base, main_input_basename, main_input_baselength, base_of_path, matches_main_base): Add variables and functions to compare header base name to compilation unit base name. * opts.c (should_emit_struct_debug): Add to determine to emit a structure based on the option. (dump_struct_debug) Also disabled function to debug this function. * opts.c (handle_options): Save the base name of the compilation unit. * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define. (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add. This hook indicates if a type is generic. Set it by default to "never generic". * langhooks.h (struct lang_hooks_for_types): Add a new hook to determine if a struct type is generic or not. * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook. * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook. * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook with live C++ hook. * flags.h (enum debug_info_usage): Add an enumeration to describe a program's use of a structure type. * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter to indicate the program's usage of the type. Filter structs based on the -femit-struct-debug-... specification. (gen_type_die): Split into two routines, gen_type_die and gen_type_die_with_usage. gen_type_die is now a wrapper that assumes direct usage. (gen_type_die_with_usage): Replace calls to gen_type_die with gen_type_die_with_usage adding the program usage of the referenced type. (dwarf2out_imported_module_or_decl): Suppress struct debug information using should_emit_struct_debug when appropriate. testsuite/: * g++.dg/other/fesd-any.C: Test -femit-struct-debug-detailed=any. * g++.dg/other/fesd-any.h: Test -femit-struct-debug-detailed=any. * g++.dg/other/fesd-baseonly.C: Test -femit-struct-debug-baseonly. * g++.dg/other/fesd-baseonly.h: Test -femit-struct-debug-baseonly. * g++.dg/other/fesd-none.C: Test -femit-struct-debug-detailed=none. * g++.dg/other/fesd-none.h: Test -femit-struct-debug-detailed=none. * g++.dg/other/fesd-reduced.C: Test -femit-struct-debug-reduced. * g++.dg/other/fesd-reduced.h: Test -femit-struct-debug-reduced. * g++.dg/other/fesd-sys.C: Test -femit-struct-debug-detailed=sys. * g++.dg/other/fesd-sys.h: Test -femit-struct-debug-detailed=sys. * g++.dg/other/fesd.h: Common to -femit-struct-debug-... tests. * gcc.dg/fesd-any.c: Test -femit-struct-debug-detailed=any. * gcc.dg/fesd-any.h: Test -femit-struct-debug-detailed=any. * gcc.dg/fesd-baseonly.c: Test -femit-struct-debug-baseonly. * gcc.dg/fesd-baseonly.h: Test -femit-struct-debug-baseonly. * gcc.dg/fesd-none.c: Test -femit-struct-debug-detailed=none. * gcc.dg/fesd-none.h: Test -femit-struct-debug-detailed=none. * gcc.dg/fesd-reduced.c: Test -femit-struct-debug-reduced. * gcc.dg/fesd-reduced.h: Test -femit-struct-debug-reduced. * gcc.dg/fesd-sys.c: Test -femit-struct-debug-detailed=sys. * gcc.dg/fesd-sys.h: Test -femit-struct-debug-detailed=sys. * gcc.dg/fesd.h: Common to -femit-struct-debug-... tests. From-SVN: r123909
2007-04-07Separate NUL byte detection from rest of -Wformat warningsBruce Korb1-0/+4
From-SVN: r123640