1. 25 Nov, 2009 1 commit
    • Remove trailing white spaces. · b8698a0f
      2009-11-25  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* alias.c: Remove trailing white spaces.
      	* alloc-pool.c: Likewise.
      	* alloc-pool.h: Likewise.
      	* attribs.c: Likewise.
      	* auto-inc-dec.c: Likewise.
      	* basic-block.h: Likewise.
      	* bb-reorder.c: Likewise.
      	* bt-load.c: Likewise.
      	* builtins.c: Likewise.
      	* builtins.def: Likewise.
      	* c-common.c: Likewise.
      	* c-common.h: Likewise.
      	* c-cppbuiltin.c: Likewise.
      	* c-decl.c: Likewise.
      	* c-format.c: Likewise.
      	* c-lex.c: Likewise.
      	* c-omp.c: Likewise.
      	* c-opts.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* c-tree.h: Likewise.
      	* c-typeck.c: Likewise.
      	* caller-save.c: Likewise.
      	* calls.c: Likewise.
      	* cfg.c: Likewise.
      	* cfganal.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfghooks.h: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloop.h: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* cif-code.def: Likewise.
      	* collect2.c: Likewise.
      	* combine.c: Likewise.
      	* convert.c: Likewise.
      	* coverage.c: Likewise.
      	* crtstuff.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* dbgcnt.c: Likewise.
      	* dbgcnt.def: Likewise.
      	* dbgcnt.h: Likewise.
      	* dbxout.c: Likewise.
      	* dce.c: Likewise.
      	* ddg.c: Likewise.
      	* ddg.h: Likewise.
      	* defaults.h: Likewise.
      	* df-byte-scan.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* df.h: Likewise.
      	* dfp.c: Likewise.
      	* diagnostic.c: Likewise.
      	* diagnostic.h: Likewise.
      	* dominance.c: Likewise.
      	* domwalk.c: Likewise.
      	* double-int.c: Likewise.
      	* double-int.h: Likewise.
      	* dse.c: Likewise.
      	* dwarf2asm.c: Likewise.
      	* dwarf2asm.h: Likewise.
      	* dwarf2out.c: Likewise.
      	* ebitmap.c: Likewise.
      	* ebitmap.h: Likewise.
      	* emit-rtl.c: Likewise.
      	* et-forest.c: Likewise.
      	* except.c: Likewise.
      	* except.h: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* expr.h: Likewise.
      	* final.c: Likewise.
      	* flags.h: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* function.h: Likewise.
      	* fwprop.c: Likewise.
      	* gcc.c: Likewise.
      	* gcov-dump.c: Likewise.
      	* gcov-io.c: Likewise.
      	* gcov-io.h: Likewise.
      	* gcov.c: Likewise.
      	* gcse.c: Likewise.
      	* genattr.c: Likewise.
      	* genattrtab.c: Likewise.
      	* genautomata.c: Likewise.
      	* genchecksum.c: Likewise.
      	* genconfig.c: Likewise.
      	* genflags.c: Likewise.
      	* gengtype-parse.c: Likewise.
      	* gengtype.c: Likewise.
      	* gengtype.h: Likewise.
      	* genmddeps.c: Likewise.
      	* genmodes.c: Likewise.
      	* genopinit.c: Likewise.
      	* genpreds.c: Likewise.
      	* gensupport.c: Likewise.
      	* ggc-common.c: Likewise.
      	* ggc-page.c: Likewise.
      	* ggc-zone.c: Likewise.
      	* ggc.h: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple.c: Likewise.
      	* gimple.def: Likewise.
      	* gimple.h: Likewise.
      	* gimplify.c: Likewise.
      	* graphds.c: Likewise.
      	* graphite-clast-to-gimple.c: Likewise.
      	* gthr-nks.h: Likewise.
      	* gthr-posix.c: Likewise.
      	* gthr-posix.h: Likewise.
      	* gthr-posix95.h: Likewise.
      	* gthr-single.h: Likewise.
      	* gthr-tpf.h: Likewise.
      	* gthr-vxworks.h: Likewise.
      	* gthr.h: Likewise.
      	* haifa-sched.c: Likewise.
      	* hard-reg-set.h: Likewise.
      	* hooks.c: Likewise.
      	* hooks.h: Likewise.
      	* hosthooks.h: Likewise.
      	* hwint.h: Likewise.
      	* ifcvt.c: Likewise.
      	* incpath.c: Likewise.
      	* init-regs.c: Likewise.
      	* integrate.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-struct-reorg.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* ipa-type-escape.h: Likewise.
      	* ipa-utils.c: Likewise.
      	* ipa-utils.h: Likewise.
      	* ipa.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* ira-costs.c: Likewise.
      	* ira-emit.c: Likewise.
      	* ira-int.h: Likewise.
      	* ira-lives.c: Likewise.
      	* ira.c: Likewise.
      	* jump.c: Likewise.
      	* lambda-code.c: Likewise.
      	* lambda-mat.c: Likewise.
      	* lambda-trans.c: Likewise.
      	* lambda.h: Likewise.
      	* langhooks.c: Likewise.
      	* lcm.c: Likewise.
      	* libgcov.c: Likewise.
      	* lists.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-iv.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-compress.c: Likewise.
      	* lto-opts.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* lto-section-out.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* lto-streamer.c: Likewise.
      	* lto-streamer.h: Likewise.
      	* lto-symtab.c: Likewise.
      	* lto-wpa-fixup.c: Likewise.
      	* matrix-reorg.c: Likewise.
      	* mcf.c: Likewise.
      	* mode-switching.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* omega.c: Likewise.
      	* omega.h: Likewise.
      	* omp-low.c: Likewise.
      	* optabs.c: Likewise.
      	* optabs.h: Likewise.
      	* opts-common.c: Likewise.
      	* opts.c: Likewise.
      	* params.def: Likewise.
      	* params.h: Likewise.
      	* passes.c: Likewise.
      	* plugin.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* predict.def: Likewise.
      	* pretty-print.c: Likewise.
      	* pretty-print.h: Likewise.
      	* print-rtl.c: Likewise.
      	* print-tree.c: Likewise.
      	* profile.c: Likewise.
      	* read-rtl.c: Likewise.
      	* real.c: Likewise.
      	* recog.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regcprop.c: Likewise.
      	* reginfo.c: Likewise.
      	* regmove.c: Likewise.
      	* regrename.c: Likewise.
      	* regs.h: Likewise.
      	* regstat.c: Likewise.
      	* reload.c: Likewise.
      	* reload1.c: Likewise.
      	* resource.c: Likewise.
      	* rtl.c: Likewise.
      	* rtl.def: Likewise.
      	* rtl.h: Likewise.
      	* rtlanal.c: Likewise.
      	* sbitmap.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sched-int.h: Likewise.
      	* sched-rgn.c: Likewise.
      	* sched-vis.c: Likewise.
      	* sdbout.c: Likewise.
      	* sel-sched-dump.c: Likewise.
      	* sel-sched-dump.h: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* sel-sched-ir.h: Likewise.
      	* sel-sched.c: Likewise.
      	* sel-sched.h: Likewise.
      	* sese.c: Likewise.
      	* sese.h: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stack-ptr-mod.c: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* stringpool.c: Likewise.
      	* stub-objc.c: Likewise.
      	* sync-builtins.def: Likewise.
      	* target-def.h: Likewise.
      	* target.h: Likewise.
      	* targhooks.c: Likewise.
      	* targhooks.h: Likewise.
      	* timevar.c: Likewise.
      	* tlink.c: Likewise.
      	* toplev.c: Likewise.
      	* toplev.h: Likewise.
      	* tracer.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-affine.h: Likewise.
      	* tree-browser.def: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-chrec.h: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-data-ref.h: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-dump.h: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-flow.h: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-loop-linear.c: Likewise.
      	* tree-mudflap.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-nomudflap.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-pass.h: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* tree-ssa-operands.h: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vectorizer.h: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tree.def: Likewise.
      	* tree.h: Likewise.
      	* treestruct.def: Likewise.
      	* unwind-compat.c: Likewise.
      	* unwind-dw2-fde-glibc.c: Likewise.
      	* unwind-dw2.c: Likewise.
      	* value-prof.c: Likewise.
      	* value-prof.h: Likewise.
      	* var-tracking.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      	* vec.c: Likewise.
      	* vec.h: Likewise.
      	* vmsdbgout.c: Likewise.
      	* web.c: Likewise.
      	* xcoffout.c: Likewise.
      
      From-SVN: r154645
      H.J. Lu committed
  2. 19 Oct, 2009 1 commit
    • charset.c (cpp_init_iconv): Initialize utf8_cset_desc. · 2c6e3f55
      	* charset.c (cpp_init_iconv): Initialize utf8_cset_desc.
      	(_cpp_destroy_iconv): Destroy utf8_cset_desc, char16_cset_desc
      	and char32_cset_desc.
      	(converter_for_type): Handle CPP_UTF8STRING.
      	(cpp_interpret_string): Handle CPP_UTF8STRING and raw-strings.
      	* directives.c (get__Pragma_string): Handle CPP_UTF8STRING.
      	(parse_include): Reject raw strings.
      	* include/cpplib.h (CPP_UTF8STRING): New token type.
      	* internal.h (struct cpp_reader): Add utf8_cset_desc field.
      	* lex.c (lex_raw_string): New function.
      	(lex_string): Handle u8 string literals, call lex_raw_string
      	for raw string literals.
      	(_cpp_lex_direct): Call lex_string even for u8" and {,u,U,L,u8}R"
      	sequences.
      	* macro.c (stringify_arg): Handle CPP_UTF8STRING.
      
      	* c-common.c (c_parse_error): Handle CPP_UTF8STRING.
      	* c-lex.c (c_lex_with_flags): Likewise.  Test C_LEX_STRING_NO_JOIN
      	instead of C_LEX_RAW_STRINGS.
      	(lex_string): Handle CPP_UTF8STRING.
      	* c-parser.c (c_parser_postfix_expression): Likewise.
      	* c-pragma.h (C_LEX_RAW_STRINGS): Rename to ...
      	(C_LEX_STRING_NO_JOIN): ... this.
      
      	* parser.c (cp_lexer_print_token, cp_parser_is_string_literal,
      	cp_parser_string_literal, cp_parser_primary_expression): Likewise.
      	(cp_lexer_get_preprocessor_token): Use C_LEX_STRING_JOIN instead
      	of C_LEX_RAW_STRINGS.
      
      	* gcc.dg/raw-string-1.c: New test.
      	* gcc.dg/raw-string-2.c: New test.
      	* gcc.dg/raw-string-3.c: New test.
      	* gcc.dg/raw-string-4.c: New test.
      	* gcc.dg/raw-string-5.c: New test.
      	* gcc.dg/raw-string-6.c: New test.
      	* gcc.dg/raw-string-7.c: New test.
      	* gcc.dg/utf8-1.c: New test.
      	* gcc.dg/utf8-2.c: New test.
      	* gcc.dg/utf-badconcat2.c: New test.
      	* gcc.dg/utf-dflt2.c: New test.
      	* gcc.dg/cpp/include6.c: New test.
      	* g++.dg/ext/raw-string-1.C: New test.
      	* g++.dg/ext/raw-string-2.C: New test.
      	* g++.dg/ext/raw-string-3.C: New test.
      	* g++.dg/ext/raw-string-4.C: New test.
      	* g++.dg/ext/raw-string-5.C: New test.
      	* g++.dg/ext/raw-string-6.C: New test.
      	* g++.dg/ext/raw-string-7.C: New test.
      	* g++.dg/ext/utf8-1.C: New test.
      	* g++.dg/ext/utf8-2.C: New test.
      	* g++.dg/ext/utf-badconcat2.C: New test.
      	* g++.dg/ext/utf-dflt2.C: New test.
      
      From-SVN: r152995
      Jakub Jelinek committed
  3. 14 Aug, 2009 1 commit
  4. 07 Jul, 2009 1 commit
    • c-lex.c: Replace %H by an explicit location. · fab922b1
      2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* c-lex.c: Replace %H by an explicit location. Update all calls.
      	* c-common.c: Likewise.
      	* c-decl.c: Likewise.
      	* c-typeck.c: Likewise.
      	* fold-const.c: Likewise.
      	* gimplify.c: Likewise.
      	* stmt.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* value-prof.c: Likewise.
      java/
      	* jcf-parse.c: Replace %H by an explicit location. Update all calls.
      objc/
      	* objc-act.c: Replace %H by an explicit location. Update all calls.
      testsuite/
      	* gcc.dg/plugin/selfassign.c: Replace %H by an explicit
      	location. Update all calls.
      	* g++.dg/plugin/selfassign.c: Likewise.
      
      From-SVN: r149310
      Manuel López-Ibáñez committed
  5. 10 May, 2009 1 commit
    • c-lex.c (c_lex_with_flags): Expect cpp_hashnode in tok->val.node.node. · 9a0c6187
      gcc:
      	* c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
      	tok->val.node.node.
      
      libcpp:
      	* include/cpplib.h (enum cpp_token_fld_kind): Add
      	CPP_TOKEN_FLD_TOKEN_NO.
      	(struct cpp_macro_arg, struct cpp_identifier): Define.
      	(union cpp_token_u): Use struct cpp_identifier for identifiers.
      	Use struct cpp_macro_arg for macro arguments.  Add token_no for
      	CPP_PASTE token numbers.
      	* directives.c (_cpp_handle_directive, lex_macro_node, do_pragma,
      	do_pragma_poison, parse_assertion): Use val.node.node in place of
      	val.node.
      	* expr.c (parse_defined, eval_token): Use val.node.node in place
      	of val.node.
      	* lex.c (cpp_ideq, _cpp_lex_direct, cpp_token_len,
      	cpp_spell_token, cpp_output_token, _cpp_equiv_tokens,
      	cpp_token_val_index): Use val.macro_arg.arg_no or val.token_no in
      	place of val.arg_no.  Use val.node.node in place of val.node.
      	* macro.c (replace_args, cpp_get_token, parse_params,
      	lex_expansion_token, create_iso_definition, cpp_macro_definition):
      	Use val.macro_arg.arg_no or val.token_no in place of val.arg_no.
      	Use val.node.node in place of val.node.
      
      From-SVN: r147341
      Joseph Myers committed
  6. 07 May, 2009 1 commit
    • re PR c/39037 (FLOAT_CONST_DECIMAL64 pragma not supported) · 6ec637a4
      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
      Janis Johnson committed
  7. 20 Apr, 2009 1 commit
    • re PR c++/13358 (long long and C++ do not mix well) · 9c650d90
      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
      Manuel López-Ibáñez committed
  8. 01 Apr, 2009 1 commit
    • re PR target/39027 (double floating point suffix of 'd' and 'D' not accepted) · 839a3b8a
      gcc/
      	PR c/29027
      	* c-lex.c (interpret_float): Default (no suffix) is double.
      
      libcpp/
      	PR c/29027
      	* include/cpplib.h (CPP_N_DEFAULT): Define.
      	* expr.c (interpret_float_suffix): Recognize d or D for double,
      	return new value for default.
      	(cpp_classify_number): Issue pedwarn for use of d or D in suffix.
      
      gcc/testsuite/
      	PR c/29027
      	* gcc.dg/fltconst-1.c: Don't error for use of d or D in suffix.
      	* gcc.dg/fltconst-2.c: New test.
      	* gcc.dg/fltconst-double-pedantic-1.c: New test.
      	* gcc.dg/fltconst-double-pedantic-2.c: New test.
      
      From-SVN: r145422
      Janis Johnson committed
  9. 30 Mar, 2009 1 commit
    • re PR middle-end/323 (optimized code gives strange floating point results) · 8ce94e44
      	PR rtl-optimization/323
      	* c-common.c (c_fully_fold, convert_and_check,
      	c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
      	(c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
      	* c-common.def (EXCESS_PRECISION_EXPR): New.
      	* c-cppbuiltin.c (builtin_define_float_constants): Define
      	constants with enough digits for long double.
      	* c-lex.c (interpret_float): Interpret constant with excess
      	precision where appropriate.
      	* c-opts.c (c_common_post_options): Set
      	flag_excess_precision_cmdline.  Give an error for
      	-fexcess-precision=standard for C++ for processors where the
      	option is significant.
      	* c-parser.c (c_parser_conditional_expression): Handle excess
      	precision in condition.
      	* c-typeck.c (convert_arguments): Handle arguments with excess
      	precision.
      	(build_unary_op): Move excess precision outside operation.
      	(build_conditional_expr): Likewise.
      	(build_compound_expr): Likewise.
      	(build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
      	(build_modify_expr): Handle excess precision in RHS.
      	(convert_for_assignment): Handle excess precision in converted
      	value.
      	(digest_init, output_init_element, process_init_element): Handle
      	excess precision in initializer.
      	(c_finish_return): Handle excess precision in return value.
      	(build_binary_op): Handle excess precision in operands and add
      	excess precision as needed for operation.
      	* common.opt (-fexcess-precision=): New option.
      	* config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
      	* config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
      	For standard excess precision, output explicit conversion to and
      	truncation from XFmode.
      	(*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
      	*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
      	*float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
      	define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
      	define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
      	floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
      	divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
      	*fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
      	*fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
      	define_splits, sqrt<mode>2): Disable where appropriate for
      	standard excess precision.
      	* convert.c (convert_to_real): Do not shorten arithmetic to type
      	for which excess precision would be used.
      	* defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
      	* doc/invoke.texi (-fexcess-precision=): Document option.
      	(-mfpmath=): Correct index entry.
      	* flags.h (enum excess_precision, flag_excess_precision_cmdline,
      	flag_excess_precision): New.
      	* langhooks.c (lhd_post_options): Set
      	flag_excess_precision_cmdline.
      	* opts.c (common_handle_option): Handle -fexcess-precision=.
      	* toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
      	init_excess_precision): New.
      	(lang_dependent_init_target): Call init_excess_precision.
      	* tree.c (excess_precision_type): New.
      	* tree.h (excess_precision_type): Declare.
      
      ada:
      	* gcc-interface/misc.c (gnat_post_options): Set
      	flag_excess_precision_cmdline.  Give an error for
      	-fexcess-precision=standard for processors where the option is
      	significant.
      
      fortran:
      	* options.c (gfc_post_options): Set
      	flag_excess_precision_cmdline.  Give an error for
      	-fexcess-precision=standard for processors where the option is
      	significant.
      
      java:
      	* lang.c (java_post_options): Set flag_excess_precision_cmdline.
      	Give an error for -fexcess-precision=standard for processors where
      	the option is significant.
      
      testsuite:
      	* gcc.target/i386/excess-precision-1.c,
      	gcc.target/i386/excess-precision-2.c,
      	gcc.target/i386/excess-precision-3.c,
      	gcc.target/i386/excess-precision-4.c,
      	gcc.target/i386/excess-precision-5.c,
      	gcc.target/i386/excess-precision-6.c: New tests.
      
      From-SVN: r145272
      Joseph Myers committed
  10. 21 Aug, 2008 1 commit
    • diagnostic.c (pedwarn_at): Rename as pedwarn. · 509c9d60
      2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
      
      	* diagnostic.c (pedwarn_at): Rename as pedwarn.
      	(pedwarn): Delete.
      	* toplev.h (pedwarn_at): Likewise.
      	* builtins.c: Update all calls to pedwarn.
      	* c-lex.c: Likewise.
      	* toplev.c: Likewise.
      	* c-tree.h: Likewise.
      	* c-decl.c: Likewise.
      	* c-errors.c: Likewise.
      	* c-typeck.c: Likewise.
      	* c-common.c: Likewise.
      	* c-parser.c: Likewise.
      cp/
      	* typeck.c: Update all calls to pedwarn.
      	* decl.c: Likewise.
      	* call.c: Likewise.
      	* error.c: Likewise.
      	* pt.c: Likewise.
      	* name-lookup.c: Likewise.
      	* parser.c: Likewise.
      fortran/	
      	* f95-lang.c: Update all calls to pedwarn.
      
      From-SVN: r139373
      Manuel López-Ibáñez committed
  11. 23 Jul, 2008 1 commit
    • re PR c/35058 (-Werror= works only with some warnings) · fcf73884
      2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
      
      	PR 35058
      	* diagnostic.c (pedwarn): Add opt parameter.
      	(pedwarn0): New.
      	* c-tree.h (pedwarn_init): Add opt parameter.
      	(pedwarn_c90): Likewise.
      	(pedwarn_c99): Likewise.
      	* c-errors.c (pedwarn_c99): Likewise.
      	(pedwarn_c90): Likewise.
      	* toplev.h (pedwarn): Update declaration.
      	(pedwarn0): Declare.
      	* c-lex.c: All calls to pedwarn changed.
      	* builtins.c: All calls to pedwarn changed.
      	* toplev.c: All calls to pedwarn changed.
      	* c-decl.c: All calls to pedwarn changed.
      	* c-typeck.c: All calls to pedwarn changed.
      	* c-common.c: All calls to pedwarn changed.
      	* c-parser.c: All calls to pedwarn changed.
      cp/
      	* typeck.c: All calls to pedwarn changed.
      	* decl.c: All calls to pedwarn changed.
      	* call.c: All calls to pedwarn changed.
      	* error.c: All calls to pedwarn changed.
      	* typeck2.c: All calls to pedwarn changed.
      	* pt.c: All calls to pedwarn changed.
      	* name-lookup.c: All calls to pedwarn changed.
      	* parser.c: All calls to pedwarn changed.
      fortran/
      	* f95-lang.c (gfc_mark_addressable): All calls to pedwarn changed.
      testsuite/
      	* gcc.dg/Wdeclaration-after-statement-3.c: New.
      	* gcc/testsuite/gcc.dg/Wpointer-arith.c: New.
      
      From-SVN: r138089
      Manuel López-Ibáñez committed
  12. 21 Jul, 2008 1 commit
    • Makefile.in: Replace toplev.h with TOPLEV_H. · aa14403d
      2007-07-21  Rafael Avila de Espindola  <espindola@google.com>
      
      	* Makefile.in: Replace toplev.h with TOPLEV_H.
      	* c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
      	* c-lex.c (fe_file_change): Don't set in_system_header.
      	* c-parser.c (c_token): Remove in_system_header.
      	(c_lex_one_token): Don't set in_system_header.
      	(c_parser_set_source_position_from_token): Don't set in_system_header.
      	* diagnostic.c (diagnostic_report_diagnostic): Use location from
      	diagnostic_info.
      	(warning_at): New.
      	* diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
      	* flags.h (in_system_header): Remove.
      	* function.c (saved_in_system_header): Remove.
      	(push_cfun): Don't set in_system_header.
      	(pop_cfun): Don't set in_system_header.
      	(push_struct_function): Don't set in_system_header.
      	* input.h (expanded_location): Add sysp.
      	(in_system_header_at): New.
      	(in_system_header): New.
      	* toplev.c (in_system_header): Remove.
      	* toplev.h: Include input.h
      	(warning_at): New.
      	* tree-cfg.c (execute_warn_function_return): Call warning_at.
      	* tree-ssa.c (warn_uninit): Call warning_at.
      	(warn_uninitialized_var): Update calls to warn_uninit.
      	(warn_uninitialized_phi): Update calls to warn_uninit.
      	* tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
      	(expand_location): Initialize xloc.sysp.
      	* tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
      	(tree_decl_with_vis): Remove in_system_header_flag.
      
      2007-07-21  Rafael Avila de Espindola  <espindola@google.com>
      
      	* parser.c (cp_token): Remove in_system_header.
      	(eof_token): Remove in_system_header.
      	(cp_lexer_get_preprocessor_token): Don't set in_system_header.
      	(cp_lexer_set_source_position_from_token): Don't set in_system_header.
      	(cp_parser_member_declaration):  Use in_system_header_at.
      	* pt.c (lookup_template_class): Don't set DECL_IN_SYSTEM_HEADER.
      	(pop_tinst_level): Don't set in_system_header.
      	(instantiate_class_template): Don't set in_system_header.
      	(instantiate_decl): Don't set in_system_header.
      	(instantiate_pending_templates): Don't set in_system_header.
      
      From-SVN: r138031
      Rafael Avila de Espindola committed
  13. 27 Jun, 2008 1 commit
  14. 22 Jun, 2008 1 commit
    • c-lex.c (narrowest_unsigned_type): Change itk to int. · d75d71e0
      	* c-lex.c (narrowest_unsigned_type): Change itk to int.
      	(narrowest_signed_type): Likewise.
      	* c-typeck.c (c_common_type): Change local variable mclass to enum
      	mode_class, twice.
      	(parser_build_binary_op): Compare the TREE_CODE_CLASS with
      	tcc_comparison, not the tree code itself.
      	* c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
      	(c_expand_expr): Cast modifier to enum expand_modifier.
      	* c-common.h (C_RID_CODE): Add casts.
      	(C_SET_RID_CODE): Define.
      	* c-parser.c (c_parse_init): Use C_SET_RID_CODE.
      	(c_lex_one_token): Add cast to avoid warning.
      	(c_parser_objc_type_name): Rename local typename to type_name.
      	(check_no_duplicate_clause): Change code parameter to enum
      	omp_clause_code.
      	(c_parser_omp_var_list_parens): Change kind parameter to enum
      	omp_clause_code.
      	(c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
      	c_parser_omp_list_var_parens.
      	(c_parser_omp_threadprivate): Likewise.
      	* cp/lex.c (init_reswords): Use C_SET_RID_CODE.
      	* cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
      	* c-format.c (NO_FMT): Define.
      	(printf_length_specs): Use NO_FMT.
      	(asm_fprintf_length_specs): Likewise.
      	(gcc_diag_length_specs): Likewise.
      	(scanf_length_specs): Likewise.
      	(strfmon_length_specs): Likewise.
      	(gcc_gfc_length_specs): Likewise.
      	(printf_flag_specs): Change 0 to STD_C89.
      	(asm_fprintf_flag_specs): Likewise.
      	(gcc_diag_flag_specs): Likewise.
      	(gcc_cxxdiag_flag_specs): Likewise.
      	(scanf_flag_specs): Likewise.
      	(strftime_flag_specs): Likewise.
      	(strfmon_flag_specs): Likewise.
      	(print_char_table): Likewise.
      	(asm_fprintf_char_table): Likewise.
      	(gcc_diag_char_table): Likewise.
      	(gcc_tdiag_char_table): Likewise.
      	(gcc_cdiag_char_table): Likewise.
      	(gcc_cxxdiag_char_table): Likewise.
      	(gcc_gfc_char_table): Likewise.
      	(scan_char_table): Likewise.
      	(time_char_table): Likewis.
      	(monetary_char_table): Likewise.
      	* c-format.h (BADLEN): Likewise.
      
      From-SVN: r137019
      Ian Lance Taylor committed
  15. 11 Jun, 2008 1 commit
  16. 18 Apr, 2008 1 commit
    • cpp-id-data.h (UC): Was U, conflicts with U... · b6baa67d
      libcpp/ChangeLog:
      2008-04-14  Kris Van Hees <kris.van.hees@oracle.com>
      
      * include/cpp-id-data.h (UC): Was U, conflicts with U... literal.
      * include/cpplib.h (CHAR16, CHAR32, STRING16, STRING32): New tokens.
      (struct cpp_options): Added uliterals.
      (cpp_interpret_string): Update prototype.
      (cpp_interpret_string_notranslate): Idem.
      * charset.c (init_iconv_desc): New width member in cset_converter.
      (cpp_init_iconv): Add support for char{16,32}_cset_desc.
      (convert_ucn): Idem.
      (emit_numeric_escape): Idem.
      (convert_hex): Idem.
      (convert_oct): Idem.
      (convert_escape): Idem.
      (converter_for_type): New function.
      (cpp_interpret_string): Use converter_for_type, support u and U prefix.
      (cpp_interpret_string_notranslate): Match changed prototype.
      (wide_str_to_charconst): Use converter_for_type.
      (cpp_interpret_charconst): Add support for CPP_CHAR{16,32}.
      * directives.c (linemarker_dir): Macro U changed to UC.
      (parse_include): Idem.
      (register_pragma_1): Idem.
      (restore_registered_pragmas): Idem.
      (get__Pragma_string): Support CPP_STRING{16,32}.
      * expr.c (eval_token): Support CPP_CHAR{16,32}.
      * init.c (struct lang_flags): Added uliterals.
      (lang_defaults): Idem.
      * internal.h (struct cset_converter) <width>: New field.
      (struct cpp_reader) <char16_cset_desc>: Idem.
      (struct cpp_reader) <char32_cset_desc>: Idem.
      * lex.c (digraph_spellings): Macro U changed to UC.
      (OP, TK): Idem.
      (lex_string): Add support for u'...', U'...', u... and U....
      (_cpp_lex_direct): Idem.
      * macro.c (_cpp_builtin_macro_text): Macro U changed to UC.
      (stringify_arg): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
      
      gcc/ChangeLog:
      2008-04-14  Kris Van Hees <kris.van.hees@oracle.com>
        
      * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
      (fname_as_string): Match updated cpp_interpret_string prototype.
      (fix_string_type): Support char16_t* and char32_t*.
      (c_common_nodes_and_builtins): Add char16_t and char32_t (and
      derivative) nodes.  Register as builtin if C++0x.
      (c_parse_error): Support CPP_CHAR{16,32}.
      * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
      (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
      CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
      CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
      CTI_CHAR32_ARRAY_TYPE>: New elements.
      (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
      char32_type_node, signed_char32_type_node, char16_array_type_node,
      char32_array_type_node): New defines.
      * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
      (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
      (lex_string): Support CPP_STRING{16,32}, match updated
      cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
      (lex_charconst): Support CPP_CHAR{16,32}.
      * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
      and CPP_STRING{16,32}.
      
      gcc/cp/ChangeLog:
      2008-04-14  Kris Van Hees <kris.van.hees@oracle.com>
      
      * cvt.c (type_promotes_to): Support char16_t and char32_t.
      * decl.c (grokdeclarator): Disallow signed/unsigned/short/long on
      char16_t and char32_t.
      * lex.c (reswords): Add char16_t and char32_t (for c++0x).
      * mangle.c (write_builtin_type): Mangle char16_t/char32_t as vendor
      extended builtin type u8char32_t.
      * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Support
      RID_CHAR{16,32}.
      (cp_lexer_print_token): Support CPP_STRING{16,32}.
      (cp_parser_is_string_literal): Idem.
      (cp_parser_string_literal): Idem.
      (cp_parser_primary_expression): Support CPP_CHAR{16,32} and
      CPP_STRING{16,32}.
      (cp_parser_simple_type_specifier): Support RID_CHAR{16,32}. 
      * tree.c (char_type_p): Support char16_t and char32_t as char types.
      * typeck.c (string_conv_p): Support char16_t and char32_t.
      
      gcc/testsuite/ChangeLog:
      2008-04-14  Kris Van Hees <kris.van.hees@oracle.com>
      
      Tests for char16_t and char32_t support.
      * g++.dg/ext/utf-cvt.C: New
      * g++.dg/ext/utf-cxx0x.C: New
      * g++.dg/ext/utf-cxx98.C: New
      * g++.dg/ext/utf-dflt.C: New
      * g++.dg/ext/utf-gnuxx0x.C: New
      * g++.dg/ext/utf-gnuxx98.C: New
      * g++.dg/ext/utf-mangle.C: New
      * g++.dg/ext/utf-typedef-cxx0x.C: New
      * g++.dg/ext/utf-typedef-
      * g++.dg/ext/utf-typespec.C: New
      * g++.dg/ext/utf16-1.C: New
      * g++.dg/ext/utf16-2.C: New
      * g++.dg/ext/utf16-3.C: New
      * g++.dg/ext/utf16-4.C: New
      * g++.dg/ext/utf32-1.C: New
      * g++.dg/ext/utf32-2.C: New
      * g++.dg/ext/utf32-3.C: New
      * g++.dg/ext/utf32-4.C: New
      * gcc.dg/utf-cvt.c: New
      * gcc.dg/utf-dflt.c: New
      * gcc.dg/utf16-1.c: New
      * gcc.dg/utf16-2.c: New
      * gcc.dg/utf16-3.c: New
      * gcc.dg/utf16-4.c: New
      * gcc.dg/utf32-1.c: New
      * gcc.dg/utf32-2.c: New
      * gcc.dg/utf32-3.c: New
      * gcc.dg/utf32-4.c: New
      
      libiberty/ChangeLog:
      2008-04-14  Kris Van Hees <kris.van.hees@oracle.com>
      
      * testsuite/demangle-expected: Added tests for char16_t and char32_t.
      
      From-SVN: r134438
      Kris Van Hees committed
  17. 29 Feb, 2008 1 commit
    • toplev.c (input_file_stack, [...]): Remove. · 966e8f4d
      gcc
      	* toplev.c (input_file_stack, input_file_stack_tick, fs_p,
      	input_file_stack_history, input_file_stack_restored): Remove.
      	(push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
      	* input.h (struct file_stack): Remove.
      	(push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
      	(input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
      	Likewise.
      	* diagnostic.h (struct diagnostic_context) <last_module>: Change
      	type.
      	(diagnostic_last_module_changed): Add 'map' argument.
      	(diagnostic_set_last_function): Likewise.
      	* diagnostic.c (undiagnostic_report_current_module): Iterate using
      	line map, not input_file_stack.
      	* c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
      gcc/cp
      	* parser.c (struct cp_token) <input_file_stack_index>: Remove.
      	(cp_lexer_get_preprocessor_token): Update.
      	(cp_lexer_set_source_position_from_token): Don't call
      	restore_input_file_stack.
      	* lex.c (cxx_init): Don't use push_srcloc or pop_srcloc.
      gcc/testsuite
      	* g++.dg/warn/pragma-system_header2.C: Ignore "included from"
      	line.
      
      From-SVN: r132775
      Tom Tromey committed
  18. 26 Feb, 2008 1 commit
    • system.h (USE_MAPPED_LOCATION): Poison. · 2d593c86
      gcc
      	* system.h (USE_MAPPED_LOCATION): Poison.
      	* Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
      	* tree-cfg.c (make_cond_expr_edges): Remove old location code.
      	(make_goto_expr_edges): Likewise.
      	(remove_bb): Likewise.
      	(execute_warn_function_return): Likewise.
      	* basic-block.h (struct edge_def) <goto_locus>: Change type to
      	location_t.
      	* c-common.c (fname_decl): Remove old location code.
      	* tree-vect-transform.c (vect_finish_stmt_generation): Remove old
      	location code.
      	* rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
      	variant.
      	(ASM_INPUT_SOURCE_LOCATION): Likewise.
      	(gen_rtx_ASM_INPUT): Likewise.
      	(gen_rtx_ASM_INPUT_loc): Likewise.
      	(get_rtx_asm_OPERANDS): Remove.
      	* cfglayout.c (insn_locators_alloc): Remove old location code.
      	(set_curr_insn_source_location): Likewise.
      	(curr_insn_locator): Likewise.
      	* print-tree.c (print_node): Remove old location code.
      	* tree-mudflap.c (mf_varname_tree): Remove old location code.
      	(mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
      	* cfgexpand.c (expand_gimple_cond_expr): Don't use
      	location_from_locus.
      	(construct_exit_block): Remove old location code.
      	* emit-rtl.c (force_next_line_note): Remove old location code.
      	* profile.c (branch_prob): Remove old location code.
      	* tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
      	LOC_LINE): Remove old-location variants.
      	* langhooks.c (lhd_print_error_function): Remove old location
      	code.
      	* configure, config.in: Rebuilt.
      	* configure.ac (--enable-mapped-location): Remove.
      	* c-decl.c (c_init_decl_processing): Remove old location code.
      	(finish_function): Likewise.
      	* recog.c (decode_asm_operands): Remove old location code.
      	* c-pch.c (c_common_read_pch): Remove old location code.
      	* rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
      	variants.
      	* gimple-low.c (lower_function_body): Remove old location code.
      	* toplev.c (unknown_location): Remove.
      	(push_srcloc): Remove old-location variant.
      	(process_options): Remove old location code.
      	(lang_dependent_init): Likewise.
      	* input.h (UNKNOWN_LOCATION): Move definition.
      	(location_t): Undeprecate.
      	(source_locus): Remove.
      	(location_from_locus): Remove.
      	(struct location_s): Remove.
      	Remove all old-location code.
      	(input_line, input_filename): Remove.
      	* final.c (final_scan_insn): Remove old location code.
      	* diagnostic.c (diagnostic_build_prefix): Remove
      	USE_MAPPED_LOCATION test.
      	* tree.h (gimple_stmt) <locus>: Now a location_t.
      	(tree_exp) <locus>: Likewise.
      	(DECL_IS_BUILTIN): Remove old-location variant.
      	(annotate_with_file_line, annotate_with_locus): Likewise.
      	(expr_locus, set_expr_locus): Update.
      	* tree.c (build1_stat): Remove old location code.
      	(last_annotated_node): Remove.
      	(annotate_with_file_line): Remove old-location variant.
      	(annotate_with_locus): Likewise.
      	(expr_location): Remove old location code.
      	(set_expr_location): Likewise.
      	(expr_has_location): Likewise.
      	(expr_locus): Likewise.
      	(set_expr_locus): Likewise.
      	(expr_filename): Don't use location_from_locus.
      	(expr_lineno): Likewise.
      	* rtl-error.c (location_for_asm): Remove old location code.
      	* c-lex.c (cb_line_change): Remove old location code.
      	(fe_file_change): Likewise.
      	(cb_def_pragma): Likewise.
      	(c_lex_with_flags): Likewise.
      	* gengtype.c (do_typedef): Don't special-case location types.
      	(define_location_structures): Remove.
      	(main): Don't call define_location_structures.
      	* tree-pretty-print.c (dump_implicit_edges): Remove old location
      	code.
      gcc/ada
      	* misc.c (internal_error_function): Remove test of
      	USE_MAPPED_LOCATION.
      	* trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
      	(Sloc_to_locus): Remove old location code.
      gcc/cp
      	* parser.c (eof_token): Remove old location code.
      	(check_empty_body): Remove test of USE_MAPPED_LOCATION.
      	* decl2.c (generate_ctor_or_dtor_function): Remove old location
      	code.
      	(cp_write_global_declarations): Likewise.
      	* lex.c (cxx_init): Remove old location code.
      	(handle_pragma_implementation): Remove test of
      	USE_MAPPED_LOCATION.
      	* pt.c (tsubst): Remove old location code.
      	* error.c (cp_print_error_function): Remove test of
      	USE_MAPPED_LOCATION.
      	* decl.c (pop_label): Remove old location code.
      	(finish_function): Likewise.
      gcc/fortran
      	* trans-io.c (set_error_locus): Remove old location code.
      	* trans-decl.c (gfc_set_decl_location): Remove old location code.
      	* f95-lang.c (gfc_init): Remove test of USE_MAPPED_LOCATION.
      	* scanner.c (gfc_gobble_whitespace): Remove old location code.
      	(get_file): Likewise.
      	(preprocessor_line): Likewise.
      	(load_file): Likewise.
      	(gfc_new_file): Likewise.
      	* trans.c (gfc_trans_runtime_check): Remove old location code.
      	(gfc_get_backend_locus): Likewise.
      	(gfc_set_backend_locus): Likewise.
      	* data.c (gfc_assign_data_value): Remove old location code.
      	* error.c (show_locus): Remove old location code.
      	* gfortran.h (gfc_linebuf): Remove old location code.
      	(gfc_linebuf_linenum): Remove old-location variant.
      gcc/java
      	* lang.c (java_post_options): Remove conditional.
      	* expr.c (expand_byte_code): Remove old location code.
      	* jcf-parse.c (set_source_filename): Remove old location code.
      	(give_name_to_class): Likewise.
      	(jcf_parse): Likewise.
      	(duplicate_class_warning): Likewise.
      	(parse_class_file): Likewise.
      	(java_parse_file): Likewise.
      	* decl.c (finish_method): Remove old location code.
      	* class.c (push_class): Remove old location code.
      gcc/objc
      	* objc-act.c (objc_init): Remove old location code.
      gcc/treelang
      	* tree1.c (treelang_init): Remove old location code.
      	(treelang_parse_file): Likewise.
      	* lex.l (LINEMAP_POSITION_FOR_COLUMN): Remove.
      	(update_lineno_charno): Remove old location code.
      
      From-SVN: r132679
      Tom Tromey committed
  19. 13 Sep, 2007 1 commit
    • c-common.c (fname_as_string): Update. · 46c2514e
      gcc
      	* c-common.c (fname_as_string): Update.
      	* c-parser.c (c_parser) <lex_untranslated_string>: New field.
      	(c_lex_one_token): Update.  Add 'parser' argument.
      	(c_parser_simple_asm_expr): Update.
      	(c_parser_attributes): Update.
      	(c_parser_asm_statement): Update.
      	(c_parser_asm_operands): Update.
      	(c_parser_peek_token): Update.
      	(c_parser_peek_2nd_token): Update.
      	* c-lex.c (c_lex_string_translate): Remove.
      	(c_lex_return_raw_strings): Likewise.
      	(c_lex_with_flags): Added 'lex_flags' argument.
      	(lex_string): Added 'translate' argument.
      	* c-pragma.h (c_lex_with_flags): Update.
      	(c_lex_string_translate, c_lex_return_raw_strings): Remove.
      	(C_LEX_STRING_NO_TRANSLATE): New define.
      	(C_LEX_RAW_STRINGS): Likewise.
      gcc/cp
      	* parser.c (cp_lexer_new_main): Don't use
      	c_lex_return_raw_strings.
      	(cp_lexer_get_preprocessor_token): Update.  Add special case when
      	lexer is NULL.
      
      From-SVN: r128479
      Tom Tromey committed
  20. 06 Sep, 2007 1 commit
    • tree-cfg.c (remove_bb): Only warn if line is non-zero. · 5ffeb913
      gcc:
      	* tree-cfg.c (remove_bb): Only warn if line is non-zero.
      	* c-pch.c (c_common_read_pch): Restore current location after
      	reading PCH file.
      	* tree.c (expand_location): Update.
      	(expr_filename): Changed return type.  Unified the two cases.
      	(expr_lineno): Likewise.
      	(annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME
      	as lvalues.
      	* toplev.c (line_table): Changed type.
      	(general_init): Update.
      	(realloc_for_line_map): New function.
      	(general_init): Allocate line_table using GC.
      	* fix-header.c (line_table): Changed type.
      	(read_scan_file): Update.
      	(read_scan_file): Update.
      	* c-ppoutput.c (maybe_print_line): Update.
      	(print_line): Update.
      	(cb_line_change): Update.
      	(cb_define): Update.
      	(pp_file_change): Update.
      	* c-opts.c (c_common_init_options): Update.
      	(finish_options): Update.
      	(push_command_line_include): Update.
      	* c-lex.c (cb_line_change): Update.
      	(cb_def_pragma): Update.
      	(cb_define): Update.
      	(cb_undef): Update.
      	(c_lex_with_flags): Use cpp_get_token_with_location.
      	* input.h (line_table): Changed type.
      	(location_from_locus): New macro.
      	* tree.h (EXPR_FILENAME): No longer an lvalue.
      	(EXPR_LINENO): Likewise.
      	(expr_locus, set_expr_locus): Declare separately for
      	USE_MAPPED_LOCATION.
      	(expr_filename, expr_lineno): Changed return type.
      	* gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS.
      	* cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus.
      	(expand_gimple_basic_block): Likewise.
      	* final.c (final_scan_insn): Use expanded_location.
      gcc/cp:
      	* decl.c (finish_function): Put return's location on line zero of
      	file.
      gcc/fortran:
      	* scanner.c (get_file): Update.
      	(load_file): Update.
      	(gfc_next_char_literal): Use gfc_linebuf_linenum.
      	* f95-lang.c (gfc_init): Update.
      	* gfortran.h (gfc_linebuf_linenum): New macro.
      gcc/java:
      	* lang.c (java_post_options): Update.
      	* jcf-parse.c (set_source_filename): Update.
      	(give_name_to_class): Update.
      	(jcf_parse): Update.
      	(duplicate_class_warning): Update.
      	(parse_class_file): Update.
      	(java_parse_file): Update.
      	* expr.c (expand_byte_code): Update.
      gcc/testsuite:
      	* lib/g++.exp (g++_target_compile): Use -fno-show-column.
      gcc/treelang:
      	* tree1.c (treelang_init): Update.
      	(treelang_parse_file): Update.
      	(treelang_parse_file): Update.
      	(treelang_parse_file): Update.
      	* lex.l: Update.
      	(update_lineno_charno): Likewise.
      libcpp:
      	* internal.h (struct cpp_reader) <invocation_location>: New
      	field.
      	(struct cpp_reader) <set_invocation_location>: Likewise.
      	* init.c (cpp_set_line_map): New function.
      	* line-map.c (linemap_add): Use linemap's allocator.
      	* include/line-map.h (GTY): Define.
      	(line_map_realloc): New typedef.
      	(struct line_map): Mark with GTY.
      	(struct line_maps): Likewise.
      	(struct line_maps) <maps>: Likewise.
      	(struct line_maps) <reallocator>: New field.
      	* include/symtab.h (GTY): Conditionally define.
      	* include/cpplib.h (cpp_set_line_map): Declare.
      	(cpp_get_token_with_location): Declare.
      	* macro.c (cpp_get_token): Set invocation_location on the reader.
      	(cpp_get_token_with_location): New function.
      
      From-SVN: r128190
      Tom Tromey committed
  21. 03 Sep, 2007 1 commit
    • system.h (CONST_CAST2, [...]): New macros for type-specific casts. · b1d5455a
      	* system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
      	CONST_CAST_BB): New macros for type-specific casts.
      	(CONST_CAST): Add a TYPE parameter and define it in terms of
      	CONST_CAST2.
      
      	* c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST.
      	* c-lex.c (cb_ident, lex_string): Likewise,
      	* c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise,
      	* config/i386/i386.c (ix86_function_regparm,
      	ix86_function_sseregparm): Use CONST_CAST_TREE.
      	* config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for
      	CONST_CAST.
      	* gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
      	give_switch, set_multilib_dir): Likewise,
      	* gengtype-parse.c (string_seq, typedef_name): Likewise,
      	* gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE.
      	* jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX.
      	* passes.c (execute_one_pass): Supply a TYPE for CONST_CAST.
      	* prefix.c (update_path): Likewise,
      	* pretty-print.c (pp_base_destroy_prefix): Likewise,
      	* rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX.
      	* tree-cfg.c (tree_can_merge_blocks_p,
      	tree_block_ends_with_condjump_p): Use CONST_CAST_BB.
      	* tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE.
      	* tree.c (build_string): Supply a TYPE for CONST_CAST.
      	(attribute_list_contained): Use CONST_CAST_TREE.
      
      cp:
      	* call.c (name_as_c_string): Supply a TYPE for CONST_CAST.
      	* decl.c (cp_make_fname_decl): Likewise,
      	* parser.c (cp_parser_string_literal): Likewise,
      	* tree.c (pod_type_p, zero_init_p): Use CONST_CAST_TREE.
      	* typeck.c (cp_type_quals, cp_type_readonly, cp_has_mutable_p):
      	Likewise,
      
      fortran:
      	* gfortranspec.c (lang_specific_driver): Use CONST_CAST2.
      	* options.c (gfc_post_options): Supply a TYPE for CONST_CAST.
      	* parse.c (parse_omp_structured_block): Likewise,
      	* st.c (gfc_free_statement): Likewise,
      
      java:
      	* jcf-parse.c (read_class, java_parse_file): Supply a TYPE for
      	CONST_CAST.
      	* jcf.h (JCF_FINISH): Likewise.
      
      From-SVN: r128051
      Kaveh R. Ghazi committed
  22. 30 Aug, 2007 1 commit
    • c-lex.c (interpret_fixed): Declare. · 14c931f1
      	* c-lex.c (interpret_fixed): Declare.
      	(interpret_float): Process _Fract and _Accum.
      	(interpret_fixed): New function.
      	* final.c (output_addr_const): Process CONST_FIXED.
      	* simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG.
      	(simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT,
      	SS_DIV, US_DIV.
      	(simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV,
      	US_DIV, US_ASHIFT.
      	(simplify_immed_subreg): Support CONST_FIXED.
      	Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
      	(simplify_subreg): Support CONST_FIXED.
      
      From-SVN: r127941
      Chao-ying Fu committed
  23. 10 Aug, 2007 1 commit
    • system.h (CONST_CAST): New. · 68a57691
      	* system.h (CONST_CAST): New.
      	* c-decl.c (c_make_fname_decl): Use it.
      	* c-lex.c (cb_ident, lex_string): Likewise.
      	* c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
      	* gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
      	give_switch, set_multilib_dir): Likewise.
      	* gengtype-parse.c (string_seq, typedef_name): Likewise.
      	* passes.c (execute_one_pass): Likewise.
      	* prefix.c (update_path): Likewise.
      	* pretty-print.c (pp_base_destroy_prefix): Likewise.
      	* tree.c (build_string): Likewise.
      
      cp:
      	* call.c (name_as_c_string): Use CONST_CAST.
      	* decl.c (build_decl): Likewise.
      	* parser.c (cp_parser_string_literal): Likewise.
      
      fortran:
      	* gfortranspec.c (lang_specific_driver): Use CONST_CAST.
      	* options.c (gfc_post_options): Likewise.
      	* parse.c (parse_omp_structured_block): Likewise.
      	* st.c (gfc_free_statement): Likewise.
      
      java:
      	* jcf-parse.c (read_class, java_parse_file): Use CONST_CAST.
      	* jcf.h (JCF_FINISH): Likewise.
      
      From-SVN: r127344
      Kaveh R. Ghazi committed
  24. 26 Jul, 2007 1 commit
  25. 25 Jul, 2007 1 commit
    • c-lex.c (c_lex_with_flags, lex_string): Constify. · 5f754896
      	* c-lex.c (c_lex_with_flags, lex_string): Constify.
      	* c-ppoutput.c (print_line, pp_dir_change): Likewise.
      	* c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
      	* cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
      	* cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
      	* ddg.c (compare_sccs): Likewise.
      	* df-scan.c (df_ref_compare, df_mw_compare): Likewise.
      	* dfp.c (decimal_real_from_string, decimal_to_decnumber,
      	decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
      	decimal_do_fix_trunc, decimal_real_to_integer,
      	decimal_real_to_integer2, decimal_real_maxval): Likewise.
      	* dse.c (const_group_info_t): New.
      	(invariant_group_base_eq, invariant_group_base_hash): Constify.
      	* dwarf2out.c (const_dw_die_ref): New.
      	(decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
      	* tree-browser.c (TB_parent_eq): Likewise.
      	* unwind-dw2-fde.c (__register_frame_info_bases,
      	__deregister_frame_info_bases, fde_unencoded_compare, fde_split,
      	add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
      	Likewise.
      	* unwind-dw2-fde.h (get_cie, next_fde): Likewise.
      	* unwind-dw2.c (uw_frame_state_for): Likewise.
      	* value-prof.c (histogram_hash, histogram_eq): Likewise.
      	* value-prof.h (const_histogram_value): New.
      
      From-SVN: r126920
      Kaveh R. Ghazi committed
  26. 03 Jul, 2007 1 commit
    • cpplib.h (CPP_N_WIDTH_MD, [...]): Add new constants. · c77cd3d1
      libcpp/ChangeLog:
      
      	* include/cpplib.h (CPP_N_WIDTH_MD, CPP_N_MD_W, CPP_N_MD_Q):
      	Add new constants.
      	* expr.c (interpret_float_suffix): Process 'w', 'W', 'q' and 'Q'
      	suffixes.  Return CPP_N_MD_W for 'w' or 'W' suffixes and CPP_N_MD_Q
      	for 'q' or 'Q' suffixes.
      
      gcc/ChangeLog:
      
      	* targhooks.h (default_mode_for_suffix): New function declaration.
      	* targhooks.c (default_mode_for_suffix): New default target hook.
      	* target.h (struct c): New structure in the targetm struct.
      	(mode_for_suffix): New target hook as part of struct c.
      	target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
      	default_mode_for_suffix.
      	(TARGET_C): New define.
      	* c-lex.c: Include "target.h".
      	(interpret_float): Use targetm.c.mode_for_suffix to determine
      	the mode for a given non-standard suffix.
      	Makefile.in (c-lex.o): Depend on $(TARGET_H).
      
      	* config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
      	(TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
      
      	* doc/extend.texi (Floating Types): New node.  Document __float80 and
      	__float128 types.  Document 'w', 'W', 'q' and 'Q' suffixes.
      
      testsuite/ChangeLog:
      
      	* gcc.dg/const-float80.c : New test.
      	* gcc.dg/const-float128.c : New test.
      	* gcc.dg/const-float80-ped.c : New test.
      	* gcc.dg/const-float128-ped.c : New test.
      
      From-SVN: r126244
      Uros Bizjak committed
  27. 22 Mar, 2007 1 commit
    • re PR other/23572 (No warning for assigning a value to a 'float' variable that… · 92ef5cf9
      re PR other/23572 (No warning for assigning a value to a 'float' variable that overflows with option -Wextra)
      
      2007-03-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
      
      	PR other/23572
      	* c-lex.c (interpret_float): On overflow, emit pedantic warning if
      	infinities not supported, otherwise emit warning if -Woverflow. On
      	underflow, emit warning if -Woverflow.
      	* real.c (real_from_string): Return -1 if underflow, +1 if overflow
      	and 0 otherwise.
      	* real.h (real_from_string): Update declaration
      testsuite/
      	* gcc.dg/float-range-4.c: New.
      	* gcc.dg/float-range-1.c: Update. Test for a warning.
      	* gcc.dg/float-range-3.c: New.
      	* gcc.dg/float-range-5.c: New.
      
      From-SVN: r123137
      Manuel López-Ibáñez committed
  28. 29 Jun, 2006 1 commit
  29. 18 May, 2006 1 commit
  30. 04 Jan, 2006 1 commit
    • directives.c (struct pragma_entry): Add is_deferred. · bc4071dd
      libcpp/
      	* directives.c (struct pragma_entry): Add is_deferred.  Add ident
      	entry to value union.
      	(end_directive): Don't eat the line if in_deferred_pragma.
      	(run_directive): Remove pragma hacks.
      	(insert_pragma_entry): Remove.
      	(new_pragma_entry): New.
      	(register_pragma_1): Split out of register_pragma.  Only handle
      	the lookup tree and return the new entry.
      	(cpp_register_pragma): Fill in the pragma entry here.
      	(cpp_register_deferred_pragma): New.
      	(register_pragma_internal): New.
      	(_cpp_init_internal_pragmas): Use register_pragma_internal.
      	(do_pragma): Allow pragma expansion after namespace.  For deferred
      	pragmas, don't slurp the line into a string.
      	(destringize_and_run): Save tokens for deferred pragmas.
      	(cpp_handle_deferred_pragma): Remove.
      	* macro.c (builtin_macro): Remove pragma token hack.
      	(_cpp_push_token_context): Rename from push_token_context and export.
      	* internal.h (struct lexer_state): Add pragma_allow_expansion.
      	(_cpp_push_token_context): Declare.
      	* lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return
      	a token.  Update the line number correctly if so.
      	(_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens.
      	(cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas.
      	* include/cpplib.h (PRAGMA_EOL): New.
      	(CPP_TOKEN_FLD_PRAGMA): New.
      	(struct cpp_token): Add val.pragma.
      	(struct cpp_options): Remove defer_pragmas.
      	(cpp_handle_deferred_pragma): Remove.
      	(cpp_register_deferred_pragma): Declare.
      
      gcc/
      	* c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
      	via integer constant.
      	(pragma_lex): Remove.
      	* c-pch.c (c_common_pch_pragma): Accept the name as an argument,
      	rather than parsing it.
      	* c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
      	handle_pragma_extern_prefix): Add %< %> quotes.
      	(registered_pragmas): New.
      	(c_register_pragma_1): New.
      	(c_register_pragma): Use it.
      	(c_register_pragma_with_expansion): Likewise.
      	(c_invoke_pragma_handler): New.
      	(init_pragma): Use cpp_register_deferred_pragma directly for
      	pch_preprocess.
      	* c-pragma.h (enum pragma_kind): New.
      	(pragma_handler): New.
      	(c_invoke_pragma_handler): Declare.
      	* c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
      	CPP_PRAGMA_EOL.
      	* c-common.h (c_common_pch_pragma): Update decl.
      	* Makefile.in (c-parser.o): Update dependencies.
      	(GTFILES): Add c-pragma.h.
      	* c-parser.c (struct c_token): Add pragma_kind.
      	(struct c_parser): Add in_pragma.
      	(c_lex_one_token): Always initialize keyword and pragma_kind.
      	Extract data for CPP_PRAGMA.
      	(c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
      	(c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
      	Don't allow CPP_PRAGMA_EOL if in_pragma.
      	(c_parser_consume_pragma): New.
      	(c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
      	(c_parser_skip_to_end_of_parameter): Likewise.
      	(c_parser_skip_to_end_of_block_or_statement): Likewise.
      	(c_parser_skip_to_pragma_eol): New.
      	(c_parser_external_declaration): Handle CPP_PRAGMA.
      	(c_parser_compound_statement_nostart): Likewise.
      	(c_parser_statement_after_labels): Likewise.
      	(c_parser_pragma): New.
      	(pragma_lex): Likewise.
      	(c_parser_pragma_pch_preprocess): New.
      	(c_parser_new): Merge into ...
      	(c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
      
      gcc/cp/
      	* lex.c (handle_pragma_java_exceptions): Fix whitespace.
      	* parser.c (struct cp_token): Add pragma_kind.
      	(eof_token): Update to match.
      	(struct cp_lexer): Add in_pragma; rearrange next for better packing.
      	(cp_parser_initial_pragma): New.
      	(cp_lexer_new_main): Use it.  Don't bother clearing
      	c_lex_return_raw_strings.
      	(cp_lexer_get_preprocessor_token): Always initialize keyword
      	and pragma_kind fields.  Handle CPP_PRAGMA.
      	(cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when 
      	in_pragma is set.
      	(cp_lexer_handle_pragma): Remove.  Update callers to cp_parser_pragma.
      	(cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string.
      	(cp_parser_skip_to_pragma_eol): New.
      	(cp_parser_error): Use it.
      	(cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;
      	rearrange with switch statement.
      	(cp_parser_skip_to_end_of_statement): Likewise.
      	(cp_parser_skip_to_end_of_block_or_statement): Likewise.
      	(cp_parser_skip_to_closing_brace): Likewise.
      	(cp_parser_skip_until_found): Likewise.
      	(cp_parser_statement): Add in_compound argument; update callers.
      	Use it to decide how to handle pragma parsing.
      	(cp_parser_labeled_statement): Add in_compound argument; pass
      	it on to cp_parser_statement.
      	(cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.
      	(cp_parser_declaration_seq_opt): Likewise.
      	(cp_parser_parameter_declaration): Likewise.
      	(cp_parser_member_specification_opt): Likewise.
      	(cp_parser_function_definition_after_decl): Likewise.
      	(cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.
      	(cp_parser_pragma): New.
      	(pragma_lex): New.
      
      gcc/testsuite/
      	* g++.dg/parse/pragma2.C: Update expected error lines.
      
      From-SVN: r109336
      Richard Henderson committed
  31. 22 Dec, 2005 1 commit
    • re PR c++/23333 (accepts invalid pure specifier) · ab84748a
      2005-12-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
      
      	PR c++/23333
      	* include/cpplib.h: Add PURE_ZERO to flags for the cpp_token structure.
      
      	* c-lex.c (c_lex_with_flags): Add PURE_ZERO to cpp_flags if
      	number is a single digit '0'.
      
      	* parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
      	identify a single '0'.
      
      	* g++.dg/parse/error25.C: Add more tests.
      
      From-SVN: r108947
      Volker Reichelt committed
  32. 16 Dec, 2005 1 commit
    • target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New. · 9a8ce21f
      2005-12-16  Jon Grimm  <jgrimm2@us.ibm.com>
      	    Janis Johnson  <janis187@us.ibm.com>
      	    Ben Elliston  <bje@au.ibm.com>
      
      	* target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
      	(TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
      	* target.h (struct gcc_target): Add decimal_float_supported_p.
      	* targhooks.c (default_scalar_mode_supported_p): Handle
      	MODE_DECIMAL_FLOAT.
      	* builtins.def: Add new builtins for 32, 64 and 128 bit variants
      	of inf, nan, finite, isinf and isnan.
      	* builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
      	BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
      	BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
      	BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
      	BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
      	BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
      	BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
      	* c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
      	Pedwarn if decimal floating point types are used.  Error if
      	decimal floating point is not supported by the target.
      	(finish_declspecs): Return type from DFP typespec_word.
      	* c-typeck.c (c_common_type): Choose the decimal floating point
      	type with the greater precision when determining a common type.
      	(convert_arguments): Warn if there is a mismatch between argument
      	and prototype for decimal float types.  Warn of conversions with
      	binary float types and of precision narrowing due to prototype.
      	* c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
      	(c_token_starts_typename): Handle RID_DFLOAT32/64/128.
      	(c_token_starts_declspecs): Likewise.
      	(c_parser_attributes): Likewise.
      	* c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
      	RID_DFLOAT64, RID_DFLOAT128.
      	(T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
      	* c-common.c (c_common_type_for_mode): Handle decimal float modes.
      	(shorten_compare): Convert DFP/BFP operands to a common type.
      	(c_common_modes_and_builtins): Register built-in decimal float
      	types if the target supports them.
      	(handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
      	* builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
      	inf, nan, finite, isinf and isnan builtins.
      	* c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
      	(builtin_define_float_constants): Assert non-decimal radix.
      	(c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
      	Call builtin_define_decimal_float_constants for each type.
      	* c-lex.c (interpret_float): Decode decimal float types from CPP_N
      	flags.  Use real_from_string3, which can handle binary or decimal
      	floats.
      	* c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
      	cts_dfloat64, cts_dfloat128.
      	* tree.c (build_common_tree_nodes_2): Add decimal float types.
      	* tree.h (enum tree_index): Add new enumeration values
      	TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
      	TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
      	(dfloat32_type_node): New macro.
      	(dfloat64_type_node, dfloat128_type_node): Likewise.
      	(dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
      	(dfloat128_ptr_type_node): Likewise.
      	* c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
      	bit decimal floating point types with "df", "dd" and "dl".
      	* c-format.h (enum format_lengths): Add new enumeration values
      	FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
      	* c-format.c (printf_length_specs, scanf_length_specs): Add
      	entries for H, D, DD.
      	(print_char_table, scan_char_table): Use new entries.
      	(asm_fprintf_char_table, gcc_diag_char_table,
      	gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
      	length arrays.
      	* defaults.h (DECIMAL32_TYPE_SIZE): Define.
      	(DECIMAL64_TYPE_SIZE): Likewise.
      	(DECIMAL128_TYPE_SIZE): Likewise.
      	(TARGET_DEC_EVAL_METHOD): Likewise.
      	* doc/extend.texi (Decimal Float): New node.
      	(Constructing Calls): Document decimal float built-ins.
      	* doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
      	* Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
      	* ginclude/decfloat.h: New file.
      
      Co-Authored-By: Ben Elliston <bje@au.ibm.com>
      Co-Authored-By: Janis Johnson <janis187@us.ibm.com>
      
      From-SVN: r108629
      Jon Grimm committed
  33. 26 Nov, 2005 1 commit
    • c-lex.c (pragma_lex): Rename from c_lex. · 75ce3d48
              * c-lex.c (pragma_lex): Rename from c_lex.
              * c-pch.c: Update for pragma_lex rename.
              * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
              * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
              * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
              * config/sol2-c.c, config/v850/v850-c.c: Likewise.
              * doc/tm.texi: Likewise.
      cp/
              * lex.c: Update for pragma_lex rename.
              * parser.c: Likewise.
      
      From-SVN: r107544
      Richard Henderson committed
  34. 19 Jul, 2005 1 commit
    • toplev.h: Add comment about the first parameter for warning(). · b9b8dde3
      * toplev.h: Add comment about the first parameter for warning().
      * errors.h: Likewise.
      
      * c.opt (Wpragmas): New.
      * doc/invoke.texi: Document it.
      
      * function.c (do_warn_unused_parameter): Add warning control to
      warning call.
      * c-decl.c (warn_if_shadowing): Likewise.
      * c-lex.c (cb_def_pragma): Likewise.
      * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
      (pop_alignment): Likewise.
      (handle_pragma_pack): Likewise.
      (apply_pragma_weak): Likewise.
      (handle_pragma_weak): Likewise.
      (handle_pragma_redefine_extname): Likewise.
      (add_to_renaming_pragma_list): Likewise.
      (handle_pragma_extern_prefix): Likewise.
      (maybe_apply_renaming_pragma): Likewise.
      (handle_pragma_visibility): Likewise.
      
      * config/c4x/c4x-c.c (BAD): Likewise.
      (c4x_parse_pragma): Likewise.
      * config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise.
      * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
      (rs6000_pragma_longcall): Likewise.
      * config/v850/v850-c.c (pop_data_area): Likewise.
      (ghs_pragma_section): Likewise.
      (ghs_pragma_section): Likewise.
      (ghs_pragma_interrupt): Likewise.
      (ghs_pragma_starttda): Likewise.
      (ghs_pragma_startsda): Likewise.
      (ghs_pragma_startzda): Likewise.
      (ghs_pragma_endtda): Likewise.
      (ghs_pragma_endsda): Likewise.
      (ghs_pragma_endzda): Likewise.
      
      From-SVN: r102168
      DJ Delorie committed
  35. 25 Jun, 2005 1 commit
  36. 06 Jun, 2005 1 commit
    • libiberty.h (XOBFINISH): New. · 7973fd2a
      libiberty/
      2005-06-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
      
              * libiberty.h (XOBFINISH): New.
      
      gcc/
      2005-06-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
      
              * c-lex.c (lex_string): Use XOBFINISH.
              * collect2.c (extract_string, dump_file): Likewise.
              * dbxout.c (dbxout_finish_complex_stabs): Likewise.
              * gcc.c (init_spec, build_search_list, convert_filename,
              set_collect_gcc_options, do_spec_2, do_spec_1, main):
              * Likewise.
              * genpreds.c (write_predicate_subfunction): Likewise.
              * genflags.c (main): Likewise.
              * read-rtl.c (mode_attr_index, apply_macro_to_string,
              join_c_conditions, read_quoted_string, read_braced_string,
              read_rtx_1): Likewise.
              * stringpool.c (ggc_alloc_string): Likewise.
              * tlink.c (obstack_fgets, recompile_files): Likewise.
      
      From-SVN: r100678
      Gabriel Dos Reis committed
  37. 25 May, 2005 1 commit
    • c-common.c (unsigned_conversion_warning): Move warning control from if() to warning(OPT_*). · 44c21c7f
      * c-common.c (unsigned_conversion_warning): Move warning control
      from if() to warning(OPT_*).
      (c_common_truthvalue_conversion): Likewise.
      (c_do_switch_warnings): Likewise.
      * c-decl.c (diagnose_mismatched_decls): Likewise.
      (diagnose_mismatched_decls): Likewise.
      (define_label): Likewise.
      (grokdeclarator): Likewise.
      * c-format.c (check_format_info): Likewise.
      * c-lex.c (interpret_integer): Likwise.
      (lex_string): Likewise.
      * c-opts.c (c_common_post_options): Likewise.
      * c-parser.c (c_parser_unary_expression): Likewise.
      * c-pragma.c (handle_pragma_redefine_extname): Likewise.
      (handle_pragma_extern_prefix): Likewise.
      * c-typeck.c (build_binary_op): Likewise.
      * gcse.c (is_too_expensive): Likewise.
      * opts.c (decode_options): Likewise.
      * stor-layout.c (place_field): Likewise.
      * tree-cfg.c (remove_bb): Likewise.
      
      * c.opt (-Wreturn-type): Add Var(warn_return_type).
      * flags.h (warn_return_type): Remove.
      * toplev.c (warn_return_type): Likewise.
      
      From-SVN: r100135
      DJ Delorie committed
  38. 23 Apr, 2005 1 commit
    • diagnostic.c (warning): Accept parameter to classify warning option. · d4ee4d25
      * diagnostic.c (warning): Accept parameter to classify warning option.
      (warning0): New, for when a pointer to an error() like function is needed.
      * errors.c (warning): Likewise.
      * errors.h (warning, warning0): Adjust prototypes.
      * toplev.h (warning, warning0): Likewise.
      
      * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
      c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
      c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
      fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
      genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
      reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
      tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
      tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
      
      * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
      config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
      config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
      config/darwin.c, config/darwin.h, config/h8300/h8300.c,
      config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
      config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
      config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
      config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
      config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
      config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
      config/rs6000/aix52.h, config/rs6000/darwin.h,
      config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
      config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
      config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
      config/stormy16/stormy16.c, config/v850/v850-c.c,
      config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
      callers.
      
      * ada/misc.c: Adjust warning() callers.
      
      * cp/call.c, cp/class.c, cp/cvt.c, cp/decl.c, cp/decl2.c,
      cp/except.c, cp/friend.c, cp/init.c, cp/lex.c, cp/mangle.c,
      cp/method.c, cp/name-lookup.c, cp/parser.c, cp/repo.c, cp/rtti.c,
      cp/tree.c, cp/typeck.c, cp/typeck2.c: Adjust warning() callers.
      
      * fortran/trans-decl.c: Adjust warning() callers.
      
      * java/class.c, java/decl.c, java/expr.c, java/jcf-io.c,
      java/jcf-parse.c, java/jv-scan.c, java/parse.y: Adjust warning()
      callers.
      
      * objc/objc-act.c: Adjust warning() callers.
      
      * treelang/parse.y: Adjust warning() callers.
      
      From-SVN: r98633
      DJ Delorie committed
  39. 17 Apr, 2005 1 commit
  40. 13 Mar, 2005 1 commit