1. 05 Jun, 2010 1 commit
    • steven's avatar
      gcc/ChangeLog: · 7bedc3a0
      steven authored
      	* 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.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160330 138bc75d-0d04-0410-961f-82ee72b054a4
      7bedc3a0
  2. 15 May, 2010 1 commit
    • steven's avatar
      gcc/ChangeLog · 115133dd
      steven authored
      	* vecir.h: New file with VEC primitives for tree, gimple, and rtl.
      	* Makefile.in: Add it.
      	Fix all other Makefile dependencies for changes below.
      	* tree.h: Include it instead of defining VEC primitives here.
      	* gimple.h: Likewise.
      	* rtl.h: Likewise.
      	* tree-inline.h: Inlclude vecir.h instead of gimple.h.
      	* except.h: Include vecir.h, break dependence on tree.h.
      
      	* gimplify.c (append_to_statement_list_1, append_to_statement_list):
      	Move from here...
      	* tree-iterator.c: ...to here.
      	* tree-iterator.h: Fix file introduction comment.  Add extern markers.
      
      	* c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
      	tm_p.h.
      	* c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
      	* c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
      	integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
      	tree-mudflap.h, and target.h.
      	* c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
      	predict.h, tree-inline.h, gimple.h, and langhooks.h.
      	* c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
      	Add FIXME for why gimple.h is still included (should be unnecessary
      	since GCC 4.5 gimplification unit-at-a-time).
      	* c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
      	* c-pragma.c: Add FIXME for why function.h needs to be included just
      	for cfun, at front-end level.
      	Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
      	Do not include ggc.h, but include vecprim.h for VEC(char).
      	* c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
      	Explain why target.h is included.
      	* c-omp.h: Do not include tm.h, function.h, and bitmap.h.
      	Explain why gimple.h is included.
      	* c-ppoutput.c: Do not include tm.h.
      	* c-common.c: Do not include gimple.h.  Explain why expr.h is included.
      	* c-parses.c: Explain why rtl.h is included, and that this (and only
      	this) is also why tm.h must be included.
      	Do not include except.h.
      	* c-lang.c: Do not include ggc.h.
      
      cp/ChangeLog
      	* decl.c: Include tree-iterator.h, as fixup for tree-inline.h changes.
      	* Make-lang.in: Fix dependencies accordingly.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159442 138bc75d-0d04-0410-961f-82ee72b054a4
      115133dd
  3. 26 Apr, 2010 1 commit
    • jakub's avatar
      PR c/43893 · abc3b078
      jakub authored
      	* c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
      
      	* testsuite/libgomp.c/pr43893.c: New test.
      	* testsuite/libgomp.c++/pr43893.C: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158745 138bc75d-0d04-0410-961f-82ee72b054a4
      abc3b078
  4. 17 Dec, 2009 1 commit
    • pzhao's avatar
      2009-12-17 Shujing Zhao <pearly.zhao@oracle.com> · f08923b3
      pzhao authored
      	PR c/40885
      	* c-common.h (ref_operator): New type.
      	(build_indirect_ref): Adjust prototype with new argument.
      	* c-typeck.c (build_indirect_ref): Accept ref_operator as argument and
      	emit the diagnostics for easy translation.
      	(build_array_ref): Update calls to build_indirect_ref.
      	* c-omp.c (c_finish_omp_atomic): Likewise.
      	* c-parser.c (c_parser_unary_expression,
      	c_parser_postfix_expression_after_primary): Likewise.
      
      cp/
      2009-12-17  Shujing Zhao  <pearly.zhao@oracle.com>
      
      	* typeck.c (build_indirect_ref): Update the argument.
      	(build_x_indirect_ref): Likewise.
      	(cp_build_indirect_ref): Update the argument and emit the diagnostics
      	for easy translation.
      	(build_class_member_access_expr, build_array_ref,
      	get_member_function_from_ptrfunc): Update calls.
      	* cp-tree.h (build_x_indirect_ref, cp_build_indirect_ref): Update
      	prototypes.
      	* call.c (build_new_op, convert_like_real, build_x_va_arg,
      	build_over_call): Update calls.
      	* class.c (build_base_path, build_simple_base_path, build_vfn_ref):
      	Likewise.
      	* decl.c (start_preparsed_function): Likewise.
      	* except.c (expand_start_catch_block, build_throw): Likewise.
      	* init.c (emit_mem_initializers, expand_virtual_init,
      	expand_virtual_init, build_new_1, build_vec_init, build_delete,
      	build_vec_delete): Likewise.
      	* parser.c (cp_parser_unary_expression): Likewise.
      	* pt.c (tsubst_copy_and_build): Likewise.
      	* rtti.c (build_headof, get_tinfo_decl_dynamic, get_typeid): Likewise.
      	* semantics.c (finish_non_static_data_member, thisify_lambda_field):
      	Likewise.
      	* tree.c (build_dummy_object, stabilize_expr): Likewise.
      	* typeck2.c (build_x_arrow): Likewise.
      
      testsuite/
      2009-12-17  Shujing Zhao  <pearly.zhao@oracle.com>
      
      	* g++.old-deja/g++.mike/net31.C: Make expected dg-error strings
      	explicit.
      	* g++.old-deja/g++.bugs/900213_02.C: Likewise.
      	* g++.old-deja/g++.bugs/900215_02.C: Likewise.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155302 138bc75d-0d04-0410-961f-82ee72b054a4
      f08923b3
  5. 25 Nov, 2009 1 commit
    • hjl's avatar
      Remove trailing white spaces. · 48e1416a
      hjl authored
      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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154645 138bc75d-0d04-0410-961f-82ee72b054a4
      48e1416a
  6. 17 Jul, 2009 1 commit
    • rguenth's avatar
      2009-07-17 Richard Guenther <rguenther@suse.de> · bfec3452
      rguenth authored
      	PR c/40401
      	* tree-pass.h (pass_diagnose_omp_blocks): Declare.
      	(pass_warn_unused_result): Likewise.
      	(TODO_set_props): Remove.
      	* omp-low.c (diagnose_omp_structured_block_errors): Change to
      	run as a pass.
      	(pass_diagnose_omp_blocks): Define.
      	* c-decl.c (pop_file_scope): Do not finalize the CU here.
      	(c_gimple_diagnostics_recursively): Remove.
      	(finish_function): Do not call it.
      	(c_write_global_declarations): Continue after errors.
      	Finalize the CU here.
      	* c-gimplify.c (c_genericize): Do not gimplify here.
      	* c-common.c (c_warn_unused_result): Move ...
      	* tree-cfg.c (do_warn_unused_result): ... here.
      	(run_warn_unused_result): New function.
      	(gate_warn_unused_result): New function.
      	(pass_warn_unused_result): New pass.
      	* c-common.h (c_warn_unused_result): Remove.
      	* flags.h (flag_warn_unused_result): Declare.
      	* c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
      	* opts.c (flag_warn_unused_result): Initialize to false.
      
      	* toplev.c (compile_file): Add comment.
      	* omp-low.c (create_omp_child_function): Do not register
      	the function with the frontend.
      	(diagnose_omp_structured_block_errors): Prepare to be
      	called as optimization pass.
      	(gate_diagnose_omp_blocks): New function.
      	(pass_diagnose_omp_blocks): New pass.
      	* cgraph.h (cgraph_optimize): Remove.
      	(cgraph_analyze_function): Likewise.
      	* cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
      	* cgraphunit.c (cgraph_lower_function): Lower nested functions
      	before their parents here.
      	(cgraph_finalize_function): Not here.
      	(cgraph_analyze_function): Gimplify functions here.
      	(cgraph_finalize_compilation_unit): Continue after errors.
      	Optimize the callgraph from here.
      	(cgraph_optimize): Make static.
      	* langhooks.c (write_global_declarations): Finalize the CU.
      	* gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
      	(gimplify_function_tree): Assert we gimplify only once.
      	Set PROP_gimple_any property.
      	* tree-nested.c (gimplify_all_functions): New function.
      	(lower_nested_functions): Gimplify all nested functions.
      	* gimple.h (diagnose_omp_structured_block_errors): Remove.
      	* passes.c (init_optimization_passes): Add pass_warn_unused_result
      	and pass_diagnose_omp_blocks after gimplification.  Do not
      	set TODO_set_props on all_lowering_passes.
      	(execute_one_pass): Do not handle TODO_set_props.
      	* Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
      	(gimplify.o): Add tree-pass.h dependency.
      	* tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
      	(copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
      	(unsave_r): Likewise.
      	* c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
      	temporary variable.
      
      	cp/
      	* decl.c (finish_function): Do not emit unused result warnings
      	from here.
      	* cp-objcp-common.h (LANG_HOOKS_POST_GIMPLIFY_PASS): Use
      	c_warn_unused_result_pass.
      	* semantics.c (expand_or_defer_fn): Adjust assertion about IL status.
      	* optimize.c (clone_body): Clone in GENERIC.
      	(maybe_clone_body): Do not clear DECL_SAVED_TREE.
      	* decl2.c (cp_write_global_declarations): Fix body test.
      	Do not call cgraph_optimize.
      	* Make-lang.in (optimize.o): Add tree-iterator.h dependency.
      	* method.c (use_thunk): Register thunk with
      	cgraph_finalize_function.
      	* error.c (function_category): Guard access of DECL_LANG_SPECIFIC.
      
      	java/
      	* java-gimplify.c (java_genericize): Do not gimplify here.
      	But replace all local references.
      	(java_gimplify_expr): Do not replace local references here.
      	(java_gimplify_modify_expr): Likewise.
      	* jcf-parse.c (java_parse_file): Do not finalize the CU or
      	optimize the cgraph here.
      	* decl.c (java_replace_reference): Make static.
      	(java_replace_references): New function.
      	(end_java_method): Clear base_decl_map.
      	* java-tree.h (java_replace_references): Declare.
      	(java_replace_reference): Remove.
      
      	ada/
      	* utils.c (end_subprog_body): Revert to pre-tuples state.  Remove
      	unused parameter.
      	(gnat_gimplify_function): Do not gimplify here.
      	Fold into its only caller and remove.
      	(gnat_builtin_function): Adjust for end_subprog_body signature change.
      	(gnat_write_global_declarations): Also finalize the CU.
      	* misc.c (gnat_parse_file): Do not finalize the CU here.
      	* trans.c (gigi): Revert to pre-tuples state.
      	(Subprogram_Body_to_gnu): Adjust for end_subprog_body signature
      	change.
      	* gigi.h (end_subprog_body): Remove unused parameter.
      
      	fortran/
      	* f95-lang.c (gfc_be_parse_file): Do not finalize the CU here.
      	* trans-decl.c (gfc_gimplify_function): Remove.
      	(build_entry_thunks): Do not gimplify here.
      	(create_main_function): Likewise.
      	(gfc_generate_function_code): Likewise.
      
      	* g++.dg/rtti/crash4.C: New testcase.
      	* g++.dg/torture/20090706-1.C: Likewise.
      	* gcc.dg/redecl-17.c: Likewise.
      
      	* gfortran.dg/missing_optional_dummy_5.f90: Adjust pattern.
      	* gcc.dg/declspec-9.c: Expect extra error.
      	* gcc.dg/declspec-10.c: Likewise.
      	* gcc.dg/declspec-11.c: Likewise.
      	* gcc.dg/redecl-10.c: Expect extra warnings.
      	* gcc.target/i386/pr39082-1.c: Adjust diagnostic location.
      	* gcc.target/i386/pr39545-1.c: Likewise.
      	* g++.dg/ext/asm3.C: Expect more errors.
      	* g++.dg/gomp/block-1.C: Likewise.
      	* g++.dg/gomp/block-2.C: Likewise.
      	* g++.dg/gomp/block-3.C: Likewise.
      	* g++.dg/gomp/block-5.C: Likewise.
      	* g++.old-deja/g++.jason/report.C: Expect extra warnings.
      	* g++.dg/warn/unused-result1.C: XFAIL.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149750 138bc75d-0d04-0410-961f-82ee72b054a4
      bfec3452
  7. 16 Jul, 2009 1 commit
    • manu's avatar
      2009-07-17 Aldy Hernandez <aldyh@redhat.com> · 389dd41b
      manu authored
      	    Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR 40435 
      	* tree-complex.c, tree-loop-distribution.c,
      	tree.c, tree.h, builtins.c, fold-const.c, omp-low.c,
      	cgraphunit.c, tree-ssa-ccp.c, tree-ssa-dom.c,
      	gimple-low.c, expr.c, tree-ssa-ifcombine.c, c-decl.c,
      	stor-layout.c, tree-if-conv.c, c-typeck.c,
      	gimplify.c, calls.c, tree-sra.c, tree-mudflap.c,
      	tree-ssa-copy.c, tree-ssa-forwprop.c, c-convert.c, c-omp.c,
      	varasm.c, tree-inline.c, c-common.c,
      	c-common.h, gimple.c, tree-switch-conversion.c, gimple.h,
      	tree-cfg.c, c-parser.c, convert.c: Add location
      	argument to fold_{unary,binary,ternary}, fold_build[123],
      	build_call_expr, build_size_arg, build_fold_addr_expr,
      	build_call_array, non_lvalue, size_diffop,
      	fold_build1_initializer, fold_build2_initializer,
      	fold_build3_initializer, fold_build_call_array,
      	fold_build_call_array_initializer, fold_single_bit_test,
      	omit_one_operand, omit_two_operands, invert_truthvalue,
      	fold_truth_not_expr, build_fold_indir...
      389dd41b
  8. 12 Jun, 2009 1 commit
    • aldyh's avatar
      gcc/java/ · e60a6f7b
      aldyh authored
      	* java-gimplify.c (java_gimplify_block): New argument to
      	build_empty_stmt.
      	* expr.c (force_evaluation_order): Same.
      	* typeck.c: Add location to build_decl or PUSH_FIELD calls.
      	* class.c: Same.
      	* decl.c: Same.
      	* jcf-parse.c: Same.
      	* constants.c: Same.
      	* resource.c: Same.
      	* except.c: Same.
      	* builtins.c: Same.
      	* expr.c: Same.
      	* java-tree.h (PUSH_FIELD): Add location field.
      gcc/objc/
      	* objc-act.c (finish_var_decl): Pass location to finish_decl.
      	(objc_get_parm_info): Same.
      	(get_super_receiver): Same.
      	* objc-act.c (objc_build_component_ref): Pass location to
      	build_compound_ref.
      	(build_module_initializer_routine): Pass location to
      	c_end_compound_stmt.
      	(objc_generate_static_init_call): Pass location to build_stmt.
      	(build_typed_selector_reference): New location argument.
      	(build_selector_reference): Same.
      	(objc_substitute_decl): Pass location to build_array_ref.
      	(next_sjlj_build_try_catch_finally): Pass location to build_stmt.
      	(objc_begin_catch_clause): Same.
      	(objc_finish_try_stmt): Same.
      	(objc_finish_catch_clause): Pass location to c_end_compound_stmt.
      	(objc_build_throw_stmt): New argument.
      	(generate_shared_structures): Pass location to build_c_cast.
      	(objc_build_message_expr): Use local location.
      	(objc_finish_message_expr): Use input_location.
      	(build_objc_method_call): New argument.
      	(objc_build_selector_expr): Same.
      	(get_super_receiver): Pass location to build_c_cast,
      	build_modify_expr, build_compound_expr.
      	* objc-act.c: Add location to all calls to start_struct, build_decl,
      	finish_struct.
      gcc/
      	* tree-pretty-print.c (dump_generic_node): Dump column numbers.
      	* gimple-pretty-print.c (dump_gimple_stmt): Same.
      	* gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
      	created.
      	* c-parser.c (c_parser_binary_expression): Use current column while
      	building binary operations.
      	* common.opt (fshow-column): Enable by default.
      	* tree-vrp.c (check_array_ref): Use warning_at.
      	(check_array_bounds): Use location from call back if expr has no
      	location.
      	* tree.h: Add location argument to maybe_fold_*.
      	* tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
      	(maybe_fold_offset_to_array_ref): Add location argument and use it.
      	(maybe_fold_offset_to_component_ref): Same.
      	(maybe_fold_offset_to_reference): Same.
      	(maybe_fold_offset_to_address): Same.
      	(maybe_fold_stmt_indirect): Same.
      	(maybe_fold_stmt_addition): Same.
      	(fold_stmt_r): Pass location to maybe_fold_*.
      	(fold_gimple_assign): Same.
      	* c-tree.h: Add location argument to finish_decl,
      	default_function_array_conversion, store_init_value.
      	* c-decl.c (define_label): Use error_at.
      	(c_make_fname_decl): Pass location to finish_decl.
      	(finish_decl): New location argument.
      	(build_compound_literal): Pass location to store_init_value.
      	(grokdeclarator): Pass location to finish_decl.
      	(grokfield): Same.
      	* c-typeck.c (array_to_pointer_conversion): New location argument.
      	(function_to_pointer_conversion): Same.
      	(default_function_array_conversion): Same.
      	(parser_build_unary_op): Pass location to overflow_warning.
      	(parser_build_binary_op): Same.  Use warning_at.
      	(build_unary_op): Pass location to array_to_pointer_conversion.
      	(build_c_cast): Pass location to digest_init.
      	(build_modify_expr): New location argument.
      	(convert_for_assignment): Same.
      	(store_init_value): Same.
      	(digest_init): Same.
      	(output_init_element): Pass location to digest_init and
      	array_to_pointer_conversion.
      	(c_finish_return): Pass location to convert_for_assignment.
      	* gimplify.c (gimplify_conversion): Pass location to
      	maybe_fold_offset_to_address.
      	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
      	to maybe_fold_stmt_addition.
      	* c-omp.c (c_finish_omp_atomic): Pass new location to
      	build_modify_expr.
      	(c_finish_omp_for): Same.
      	* c-common.c (overflow_warning): New argument.
      	* c-common.h: New argument to build_modify_expr, overflow_warning.
      	* c-parser.c (c_parser_declaration_or_fndef): Pass location to
      	finish_decl.
      	(c_parser_initializer): Pass location to
      	default_function_array_conversion.
      	(c_parser_initelt): Same.
      	(c_parser_initval): Same.
      	(c_parser_asm_operands): Same.
      	(c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
      	(c_parser_conditional_expression): Same.
      	(c_parser_binary_expression): Add location info to stack.  Use it.
      	(c_parser_unary_expression): Pass location to
      	default_function_array_conversion, parser_build_unary_op,
      	build_indirect_ref, c_parser_postfix_expression_after_primary.
      	(c_parser_postfix_expression_after_primary): New location argument.
      	Use it.
      	(c_parser_expression_conv): Pass location to
      	default_function_array_conversion.
      	(c_parser_expr_list): Same.
      	(c_parser_omp_atomic): Same.
      	(c_parser_omp_for_loop): Same.
      	* c-tree.h: (struct c_declarator): Add comment to id_loc.
      	(build_array_declarator): New argument.
      	* c-decl.c (build_array_declarator): Add location argument.
      	(grokdeclarator): Set id_loc for cdk_array.
      	* c-parser.c (c_parser_direct_declarator_inner): Pass location to
      	build_array_declarator.
      	* tree.c (build_omp_clause): Add location argument.
      	* tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
      	(OMP_CLAUSE_LOCATION): New macro.
      	(struct tree_omp_clause): Add location field.
      	(build_omp_clause): Add argument.
      	* testsuite/gcc.dg/gomp/for-1.c: Fix column.
      	* cp/pt.c (tsubst_omp_for_iterator): Pass location to
      	build_omp_clause.
      	* cp/parser.c (cp_parser_omp_var_list_no_open): Same.
      	(cp_parser_omp_clause_collapse): Same.
      	(cp_parser_omp_clause_default): Same.
      	(cp_parser_omp_clause_if): Same.
      	(cp_parser_omp_clause_nowait): Same.
      	(cp_parser_omp_clause_num_threads): Same.
      	(cp_parser_omp_clause_ordered): Same.
      	(cp_parser_omp_clause_schedule): Same.
      	(cp_parser_omp_clause_untied): Same.
      	(cp_parser_omp_for_loop): Same.
      	(cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
      	* c-tree.h (c_start_case): Add location argument.
      	(c_process_expr_stmt): Same.
      	(c_finish_goto_*): Same.
      	* tree-parloops.c (initialize_reductions): Pass location to
      	build_omp_clause.
      	(create_parallel_loop): Same.
      	* fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
      	(gfc_trans_omp_reduction_list): Same.
      	(gfc_trans_omp_clauses): Same.
      	(gfc_trans_omp_do): Same.
      	* c-typeck.c (c_finish_goto_label): Same.
      	(c_finish_goto_ptr): New location argument.
      	(c_start_case): Same.
      	(emit_side_effect_warnings): Same.
      	(c_process_expr_stmt): Same.
      	(c_finish_stmt_expr): Same.
      	(c_finish_omp_clauses): Use error_at instead of error.
      	* gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
      	build_omp_clause.
      	* c-omp.c (c_split_parallel_clauses): New location argument.
      	* tree-nested.c (convert_nonlocal_reference_stmt): Pass location
      	to build_omp_clause.
      	(convert_local_reference_stmt): Same.
      	(convert_gimple_call): Same.
      	* c-common.h (c_split_parallel_clauses): New argument.
      	* c-parser.c (c_parser_statement_after_labels): Pass location to
      	c_finish_goto_label.
      	(c_parser_switch_statement): Pass location to c_start_case.
      	(c_parser_for_statement): Pass location to c_finish_expr_stmt,
      	and c_process_expr_stmt.
      	(c_parser_omp_variable_list): Add location argument.
      	(c_parser_omp_clause_collapse): Pass location to
      	build_omp_clause.
      	(c_parser_omp_clause_default): Same.
      	(c_parser_omp_clause_if): Same.
      	(c_parser_omp_clause_num_threads): Same.
      	(-c_parser_omp_clause_ordered): Same.
      	(c_parser_omp_clause_reduction): Pass location to
      	c_parser_omp_variable_list.
      	(c_parser_omp_clause_schedule): Pass location to build_omp_clause.
      	(c_parser_omp_clause_untied): Same.
      	(c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
      	(c_parser_omp_parallel): Pass location to
      	c_split_parallel_clauses.
      	* c-tree.h (check_for_loop_decls, undeclared_variable,
      	build_component_ref, build_array_ref, build_external_ref,
      	c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
      	build_conditional_expr, build_compound_expr, c_cast_expr,
      	build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
      	c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
      	argument.
      	* c-semantics.c (build_stmt): Same.
      	(build_case_label): Same.
      	* c-decl.c (c_finish_incomplete_decl): Pass location on down.
      	(undeclared_variable): New argument.
      	(make_label): Same.
      	(lookup_label): Pass location on down.
      	(define_label): Same.
      	(finish_decl): Same.
      	(build_compound_literal): Same.
      	(finish_struct): Same.
      	(finish_function): Do not set location here.
      	(check_for_loop_decls): New argument.
      	* tree.c (save_expr): Set location.
      	(build_empty_stmt): New argument.
      	* tree.h (build_empty_stmt): New argument to build_empty_stmt.
      	(CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
      	* builtins.c (gimplify_va_arg_expr): Use locations.
      	(expand_builtin_sync_operation): Same.
      	* c-typeck.c (build_component_ref): New argument.
      	(build_array_ref): Same.
      	(build_external_ref): Same.
      	(c_expr_sizeof_expr): Same.
      	(c_expr_sizeof_type): Same.
      	(parser_build_unary_op): Same.
      	(build_conditional_expr): Same.
      	(build_compound_expr): Pass location on down.
      	(build_compound_expr): New argument.
      	(build_c_cast): Same.
      	(c_cast_expr): Same.
      	(build_asm_expr): Same.
      	(c_finish_return): Same.
      	(c_process_expr_stmt): Pass location on down.
      	(c_finish_stmt_expr): New argument.
      	(push_clenaup): Same.
      	(c_finish_omp_parallel): Same.
      	(c_finish_omp_task): Same.
      	* gimplify.c (gimplify_call_expr): Pass location on down.
      	* c-omp.c (c_finish_omp_master): New argument.
      	(c_finish_omp_critical): Same.
      	(c_finish_omp_ordered): Same.
      	(c_finish_omp_barrier): Same.
      	(-c_finish_omp_taskwait): Same.
      	(c_finish_omp_atomic): Same.
      	(c_finish_omp_flush): Same.
      	* tree-inline.c (copy_tree_body_r): Pass location on down.
      	(inline_forbidden_p): Remove use of input_location.
      	* c-gimplify.c (c_build_bind_expr): New argument.
      	* c-common.c (c_common_truthvalue_conversion): Pass location on down.
      	(c_sizeof_or_alignof_type): New argument.
      	(c_alignof_expr): Same.
      	(build_va_arg): Same.
      	(c_add_case_label): Same.
      	* c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
      	c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
      	c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
      	c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
      	c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
      	c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
      	New argument.
      	* stub-objc.c (objc_build_selector_expr): Same.
      	(objc_build_throw_stmt): Same.
      	* c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
      	(c_parser_initelt): Same.
      	(c_parser_compound_statement): Same.
      	(c_parser_compound_statement_nostart): Same.
      	(c_parser_label): Same.
      	(c_parser_statement_after_labels): Same.
      	(c_parser_if_body): Same.
      	(c_parser_else_body): Same.
      	(c_parser_if_statement): Same.
      	(c_parser_switch_statement): Same.
      	(c_parser_while_statement): Same.
      	(c_parser_do_statement): Same.
      	(c_parser_for_statement): Same.
      	(c_parser_asm_statement): Same.
      	(c_parser_conditional_expression): Same.
      	(c_parser_binary_expression): Same.
      	(c_parser_cast_expression): Same.
      	(c_parser_unary_expression): Same.
      	(c_parser_sizeof_expression): Same.
      	(c_parser_alignof_expression): Same.
      	(c_parser_postfix_expression): Same.
      	(c_parser_expression): Same.
      	(c_parser_objc_receiver): Same.
      	(c_parser_omp_variable_list): Same.
      	(c_parser_omp_structured_block): Same.
      	(c_parser_omp_atomic): New argument.
      	(c_parser_omp_barrier): Same.
      	(c_parser_omp_critical): Same.
      	(c_parser_omp_flush): Pass location on down.
      	(c_parser_omp_for_loop): New argument.
      	(c_parser_omp_for): Same.
      	(c_parser_omp_master): Same.
      	(c_parser_omp_ordered): Same.
      	(c_parser_omp_sections_scope): Same.
      	(c_parser_omp_sections): Same.
      	(c_parser_omp_parallel): Same.
      	(c_parser_omp_single): Same.
      	(c_parser_omp_task): Same.
      	(c_parser_omp_taskwait): Pass location on down.
      	(c_parser_omp_construct): Same.
      	(c_parser_omp_threadprivate): Same.
      	* dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
      	builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
      	tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
      	c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
      	c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
      	emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
      	rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
      	tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
      	config/i386/i386.c, stmt.c:
      	Add location argument to the following function definitions and/or
      	function calls: build_decl, objcp_start_struct, objcp_finish_struct,
      	start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
      	cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
      	build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
      	do_case, c_finish_bc_stmt, build_compound_literal,
      	build_function_call.
      	* c-decl.c (build_compound_literal): Add location argument.
      	Make all diagnostic calls use location.
      	(start_struct): Same.
      	(finish_struct): Same.
      	(start_enum): Same.
      	(build_enumerator): Same.
      	(start_function): Same.
      	(grokdeclarator): Make all diagnostic calls use location.
      	(store_parm_decls_oldstyle): Same.
      	* c-typeck.c (build_function_call): Add location argument.
      	Make all diagnostic calls use location.
      	(do_case): Same.
      	(c_finish_bc_stmt): Same.
      	* tree-nested.c (get_trampoline_type): Add argument.
      	Pass location to build_decl.
      	(lookup_tramp_for_decl): Pass location to get_trampoline_type.
      	* rtl.h (RTL_LOCATION): New.
      	* c-common.c (c_add_case_label): Add location argument.
      	Make all diagnostic calls use location.
      	* c-common.h: Add location argument to make_fname_decl, do_case,
      	c_add_case_label, build_function_call, resolve_overloaded_builtin.
      	* c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
      	Set it appropriately for every case.  Pass enum_loc to start_enum
      	call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
      	parser_xref_tag.
      	(c_parser_struct_or_union_specifier): Save location.  Use it for
      	start_struct, finish_struct, and parser_xref_tag.
      gcc/testsuite/
      	* gcc.dg/old-style-prom-3.c: Add column info.
      	* gcc.dg/overflow-warn-1.c
      	* gcc.dg/gomp/pr27415.c
      	* gcc.dg/gomp/for-1.c: Same.
      	* gcc.dg/enum-compat-1.c: Same.
      	* gcc.dg/c99-tag-3.c: Same.
      	* gcc.dg/Wredundant-decls-2.c: Same.
      	* gcc.dg/func-ptr-conv-1.c: Same.
      	* gcc.dg/asm-wide-1.c: Same.
      	* gcc.dg/nofixed-point-2.c: Same.
      	* gcc.dg/cpp/line3.c: Same.
      	* gcc.dg/array-10.c: Same.
      	* gcc.dg/c99-vla-jump-1.c: Same.
      	* gcc.dg/pr20368-1.c: Same.
      	* gcc.dg/Wshadow-3.c: Same.
      	* gcc.dg/c90-const-expr-8.c: Same.
      	* gcc.dg/label-decl-2.c: Same.
      	* gcc.dg/dremf-type-compat-2.c: Same.
      	* gcc.dg/c90-const-expr-5.c: Same.
      	* gcc.dg/builtins-30.c: Same.
      	* gcc.dg/Warray-bounds.c: Same.
      	* gcc.dg/Wcxx-compat-2.c: Same.
      	* gcc.dg/tree-ssa/col-1.c: Same.
      	* gcc.dg/old-style-prom-2.c: Same.
      	* gcc.dg/cast-function-1.c: Same.
      	* gcc.dg/pr15698-1.c: Same.
      	* gcc.dg/dremf-type-compat-3.c: Same.
      	* gcc.dg/vla-8.c: Same.
      	* gcc.dg/gomp/pr27415.c: Move firstprivate diagnostics to correct
      	line.
      	* gcc.dg/label-decl-2.c: Move label diagnostic to correct line.
      	* gcc.dg/old-style-prom-3.c: Check for error on the correct line.
      	* gcc.dg/enum-compat-1.c: Same.
      	* gcc.dg/dremf-type-compat-2.c: Same.
      	* gcc.dg/old-style-prom-2.c: Same.
      	* gcc.dg/pr15698-1.c: Same.
      	* gcc.dg/pr20368-1.c: Same.
      	* gcc.dg/dremf-type-compat-3.c: Same.
      	* gcc.dg/builtins-30.c: Same.  Test for columns.
      gcc/objcp/
      	* objcp-decl.h (c_end_compound_stmt): New argument.
      	* objcp-decl.c (objcp_start_struct): Add argument.
      	(objcp_finish_struct): Same.
      gcc/cp/
      	* typeck.c (cp_build_binary_op): Pass location to overflow_warning.
      	(build_modify_expr): New arg.
      	* semantics.c (finish_unary_op_expr): Pass location to
      	overflow_warning.
      	(handle_omp_for_class_iterator): Pass location to build_modify_expr.
      	* typeck.c (cxx_sizeof_or_alignof_type): Pass location to
      	c_sizeof_or_alignof_type.
      	(build_array_ref): New argument.
      	(build_compound_expr): Same.
      	(build_const_cast): Same.
      	(build_ptrmemfunc): Pass location to build_c_cast.
      	* init.c (avoid_placement_new_aliasing): Pass location to
      	build_stmt.
      	(build_vec_delete_1): Pass location to cp_build_modify_expr,
      	build_compound_expr.
      	* class.c (build_vtbl_ref_1): Pass location to build_array_ref.
      	* decl.c (poplevel): Pass location to c_build_bind_expr.
      	(finish_case_label): Pass location to build_case_label.
      	(finish_constructor_body): Same.
      	(finish_destructor_body): Pass location to build_stmt.
      	(cxx_maybe_build_cleanup): Same, but to build_compound_expr.
      	* call.c (build_new_op): Pass location to build_array_ref.
      	(build_x_va_arg): Pass location to build_va_arg.
      	* except.c (expand_end_catch_block): Pass location to
      	build_stmt.
      	* cp-tree.h (build_array_ref): New argument.
      	(build_compound_expr): Same.
      	(build_c_cast): Same.
      	* cp-gimplify.c (gimplify_if_stmt): Pass location on down.
      	(gimplify_switch_stmt): Same.
      	* typeck2.c (split_nonconstant_init_1): Same.
      	* pt.c (tsubst_copy): Same.
      	* semantics.c (add_decl_expr): Same.
      	(do_poplevel): Same.
      	(push_cleanup): Same.
      	(finish_goto_stmt): Same.
      	(finish_expr_stmt): Same.
      	(begin_if_stmt): Same.
      	(begin_while_stmt): Same.
      	(begin_do_stmt): Same.
      	(finish_return_stmt): Same.
      	(begin_for_stmt): Same.
      	(finish_break_stmt): Same.
      	(finish_continue_stmt): Same.
      	(begin_switch_stmt): Same.
      	(begin_try_block): Same.
      	(begin_handler): Same.
      	(finish_asm_stmt): Same.
      	(finish_label_stmt): Same.
      	(finish_stmt_expr_expr): Same.
      	(finalize_nrv_r): Same.
      	(finish_omp_atomic): Same.
      	* name-lookup.c (do_using_directive): Same.
      	* decl2.c (grok_array_decl): Same.
      	* parser.c (cp_parser_cast_expression): Same.
      	(cp_parser_selection_statement): Same.
      	(cp_parser_implicitly_scoped_statement): Same.
      	(cp_parser_objc_selector_expression): Same.
      	(cp_parser_objc_synchronized_statement): Same.
      	(cp_parser_objc_throw_statement): Same.
      	(cp_parser_omp_critical): Same.
      	(cp_parser_omp_master): Same.
      	* typeck.c (build_function_call): Add location argument.
      	* init.c: Add location argument to all build_decl calls.
      	* class.c: Same.
      	* method.c: Same.
      	* rtti.c: Same.
      	* tree.c: Same.
      	* pt.c: Same.
      	* semantics.c: Same.
      	* lex.c: Same.
      	* decl2.c: Same.
      	* cp-gimplify.c: Same.
      	* decl.c: Same.
      	(cp_make_fname_decl): Add location argument.  Pass location ot
      	build_decl.
      	(finish_case_label): Same.
      	* cp-tree.h (finish_case_label): Add location argument.
      	* parser.c (cp_parser_label_for_labeled_statement): Pass location to
      	finish_case_label.
      gcc/fortran/
      	* trans-array.c (gfc_trans_allocate_array_storage): Pass
      	location on down.
      	(gfc_trans_array_constructor_value): Same.
      	(gfc_trans_scalarized_loop_end): Same.
      	(gfc_conv_ss_startstride): Same.
      	(gfc_trans_g77_array): Same.
      	(gfc_trans_dummy_array_bias): Same.
      	(gfc_conv_array_parameter): Same.
      	(structure_alloc_comps): Same.
      	* trans-expr.c (gfc_conv_function_call): Same.
      	(fill_with_spaces): Same.
      	(gfc_trans_string_copy): Same.
      	(gfc_trans_scalar_assign): Same.
      	* trans-stmt.c (gfc_trans_goto): Same.
      	(gfc_trans_if_1): Same.
      	(gfc_trans_simple_do): Same.
      	(gfc_trans_do): Same.
      	(gfc_trans_do_while): Same.
      	(gfc_trans_logical_select): Same.
      	(gfc_trans_select): Same.
      	(gfc_trans_forall_loop): Same.
      	(gfc_trans_nested_forall_loop): Same.
      	(generate_loop_for_temp_to_lhs): Same.
      	(generate_loop_for_rhs_to_temp): Same.
      	(gfc_trans_forall_1): Same.
      	(gfc_trans_where_assign): Same.
      	(gfc_trans_where_3): Same.
      	(gfc_trans_allocate): Same.
      	* trans.c (gfc_finish_block): Same.
      	(gfc_trans_runtime_check): Same.
      	(gfc_call_malloc): Same.
      	(gfc_allocate_with_status): Same.
      	(gfc_call_free): Same.
      	(gfc_deallocate_with_status): Same.
      	(gfc_call_realloc): Same.
      	(gfc_trans_code): Same.
      	* trans-decl.c (gfc_init_default_dt): Same.
      	(gfc_generate_constructors): Same.
      	* trans-io.c (gfc_trans_io_runtime_check): Same.
      	* trans-intrinsic.c (gfc_conv_intrinsic_ctime): Same.
      	(gfc_conv_intrinsic_fdate): Same.
      	(gfc_conv_intrinsic_ttynam): Same.
      	(gfc_conv_intrinsic_minmax): Same.
      	(gfc_conv_intrinsic_minmax_char): Same.
      	(gfc_conv_intrinsic_anyall): Same.
      	(gfc_conv_intrinsic_count): Same.
      	(gfc_conv_intrinsic_arith): Same.
      	(gfc_conv_intrinsic_minmaxloc): Same.
      	(gfc_conv_intrinsic_minmaxval): Same.
      	(gfc_conv_intrinsic_rrspacing): Same.
      	(gfc_conv_intrinsic_array_transfer): Same.
      	(gfc_conv_intrinsic_trim): Same.
      	(gfc_conv_intrinsic_repeat): Same.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148442 138bc75d-0d04-0410-961f-82ee72b054a4
      e60a6f7b
  9. 24 Apr, 2009 1 commit
    • ian's avatar
      gcc/: · 8458f4ca
      ian authored
      	* combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
      	(record_dead_and_set_regs): Likewise.
      	* df.h (struct df_mw_hardreg): Change flags field to int.
      	(struct df_base_ref): Likewise.
      	(struct df): Change changeable_flags field to int.
      	* df-scan.c (df_defs_record): Change clobber_flags to int.
      	* dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
      	constants rather than #define macros.
      	(enum dwarf_attribute, enum dwarf_location_atom): Likewise.
      	(enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
      	(enum dwarf_calling_convention): Likewise.
      	(enum dwarf_line_number_x_ops): Likewise.
      	(enum dwarf_call_frame_info): Likewise.
      	(enum dwarf_source_language): Likewise.
      	* dwarf2out.c (int_loc_descriptor): Add cast to enum type.
      	(add_calling_convention_attribute): Likewise.
      	* fold-const.c (fold_undefer_overflow_warnings): Add cast to enum
      	type.
      	(combine_comparisons): Change compcode to int.  Add cast to enum
      	type.
      	* genrecog.c (maybe_both_true_2): Change c to int.
      	(write_switch): Likewise.  Add cast to enum type.
      	* gimplify.c (gimplify_omp_for): Handle return values from
      	gimplify_expr using MIN rather than bitwise or.
      	(gimplify_expr): Add cast to enum type.
      	* ipa-prop.c (update_jump_functions_after_inlining): Change
      	IPA_BOTTOM to IPA_JF_UNKNOWN.
      	* ira.c (setup_class_subset_and_memory_move_costs): Change mode to
      	int.  Add casts to enum type.
      	(setup_cover_and_important_classes): Change cl to int.  Add casts
      	to enum type.
      	(setup_class_translate): Change cl and mode to int.
      	(ira_init_once): Change mode to int.
      	(free_register_move_costs): Likewise.
      	(setup_prohibited_mode_move_regs): Add casts to enum type.
      	* langhooks.c (add_builtin_function_common): Rework assertion that
      	value fits bitfield.
      	* mcf.c (add_fixup_edge): Change type parameter to edge_type.
      	* omega.c (omega_do_elimination): Avoid math on enum types.
      	* optabs.c (expand_vec_shift_expr): Remove casts to int.
      	* opts.c (set_debug_level): Change 2 to enum constant.  Use new
      	int local to handle integral_argment value.
      	* regmove.c (try_auto_increment): Change PUT_MODE to
      	PUT_REG_NOTE_KIND.
      	* reload.c (push_secondary_reload): Add casts to enum type.
      	(secondary_reload_class, find_valid_class): Likewise.
      	* reload1.c (emit_input_reload_insns): Likewise.
      	* rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
      	* sel-sched.c (init_hard_regs_data): Change cur_mode to int.
      	* sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
      	constant.
      	* tree.c (build_common_builtin_nodes): Add casts to enum type.
      	* tree-complex.c (complex_lattice_t): Typedef to int rather than
      	enum type.
      	(expand_complex_libcall): Add casts to enum type.
      	* tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
      	* tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
      	with ERROR_MARK, not NUM_TREE_CODES.
      	(vect_create_epilog_for_reduction): Likewise.
      	(vectorizable_reduction): Don't initialize epiloc_reduc_code.
      	When not using it, set it to ERROR_MARK rather than
      	NUM_TREE_CODES.
      	* tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
      	enum machine_mode.
      	* tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
      	vect_unused_in_loop.  Change 0 to loop_vect.
      	* tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum
      	type.
      	* var-tracking.c (get_init_value): Change return type to enum
      	var_init_status.
      	* vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
      	* config/arm/arm.c (fp_model_for_fpu): Change to array to enum
      	arm_fp_model.
      	(arm_override_options): Add casts to enum type.
      	(arm_emit_tls_decoration): Likewise.
      	* config/i386/i386.c (ix86_function_specific_restore): Add casts
      	to enum type.
      	* config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
      	* config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
      	* config/rs6000/rs6000.c (rs6000_override_options): Add casts to
      	enum type.
      	* config/s390/s390.c (code_for_builtin_64): Change to array of
      	enum insn_code.
      	(code_for_builtin_31): Likewise.
      	(s390_expand_builtin): Change code_for_builtin to enum insn_code
      	const *.
      	* config/sparc/sparc.c (sparc_override_options): Change value
      	field in struct code_model to enum cmodel.  In initializer change
      	0 to NULL and add cast to enum type.
      
      	* c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
      	Change all callers.  Issue a -Wc++-compat warning using
      	lhs_origtype if necessary.
      	(convert_for_assignment): Issue -Wc++-compat warnings about
      	invalid conversions to enum type on assignment.
      	* c-common.h (build_modify_expr): Update declaration.
      
      gcc/cp/:
      	* call.c (build_temp): Change 0 to enum constant.
      	* cp-tree.h (cp_lvalue_kind): Typedef to int rather than enum
      	type.
      	* cp-gimplify.c (cp_gimplify_expr): Add cast to enum type.
      	* decl2.c (constrain_visibility): Likewise.
      	* parser.c (cp_lexer_get_preprocessor_token): Likewise.
      	(cp_parser_flags): Typedef to int rather than enum type.
      	(cp_parser_expression_stack_entry): Change prec field to enum
      	cp_parser_prec.
      
      	* typeck.c (build_modify_expr): Add lhs_origtype parameter.
      	Change all callers.
      
      gcc/fortran/:
      	* gfortran.h (enum gfc_symbol_type): New named enum type, broken
      	out of struct gfc_symbol.
      	(struct gfc_symbol): Use enum gfc_symbol_type.
      	(enum gfc_array_ref_dimen_type): New named enum type, broken out
      	of struct gfc_array_ref).
      	(struct gfc_array_ref): Use enum gfc_array_ref_dimen_type.
      	(mod_pointee_as): Update declaration.
      	* decl.c (add_global_entry): Change type to enum gfc_symbol_type.
      	(gfc_mod_pointee_as): Change return type to "match".
      	* module.c (mio_array_ref): Add cast to enum type.
      	(mio_symbol): Likewise.
      	* resolve.c (resolve_global_procedure): Change type to enum
      	gfc_symbol_type.
      	* trans-io.c (gfc_build_st_parameter): Change type to unsigned
      	int.
      
      gcc/java/:
      	* jcf-parse.c (handle_constant): Add cast to enum type.
      
      gcc/objc/:
      	* objc-act.c (get_super_receiver): Update calls to
      	build_modify_expr to pass new argument.
      
      gcc/testsuite/:
      	* gcc.dg/Wcxx-compat-4.c: New testcase.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146735 138bc75d-0d04-0410-961f-82ee72b054a4
      8458f4ca
  10. 20 Apr, 2009 1 commit
    • ian's avatar
      gcc/: · b9c74b4d
      ian authored
      	Fix enum conversions which are invalid in C++:
      	* auto-inc-dec.c (attempt_change): Change 0 to SET in function
      	call.
      	* calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function
      	call.
      	* cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
      	* dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
      	* dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function
      	call.
      	(dbxout_parms): Likewise.
      	* df-core.c (df_set_flags): Change changeable_flags parameter to
      	int.
      	(df_clear_flags): Likewise.
      	* df-problems.c (df_rd_bb_local_compute_process_def): Change
      	top_flag parameter to int.
      	(df_chain_create_bb_process_use): Likewise.
      	(df_chain_add_problem): Change chain_flags parameter to unsigned
      	int.  Remove cast.
      	* df-scan.c (df_ref_create): Change ref_flags parameter to int.
      	(df_ref_create_structure, df_def_record_1): Likewise.
      	(df_defs_record, df_uses_record, df_get_call_refs): Likewise.
      	(df_notes_rescan): Change 0 to VOIDmode in function call.
      	(df_get_call_refs, df_insn_refs_collect): Likewise.
      	(df_bb_regs_collect): Likewise.
      	(df_entry_block_defs_collect): Likewise.
      	(df_exit_block_uses_collect): Likewise.
      	* df.h: Update declarations.
      	* double-int.c (double_int_divmod): Add cast to enum type.
      	* dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
      	* dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
      	(based_loc_descr): Likewise.
      	(loc_descriptor_from_tree_1): Change first_op and second_op to
      	enum dwarf_location_atom.  Add cast to enum type.
      	* expmed.c (init_expmed): Change 0 to SET in function call.
      	* expr.c (init_expr_target): Change 0 to VOIDmode in function
      	call.
      	(expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
      	(do_store_flag): Likewise.
      	* fixed-value.h (struct fixed_value): Change mode to enum
      	machine_mode.
      	* function.c (assign_parms): Change 0 to VOIDmode in function
      	call.
      	* genautomata.c (insert_automaton_decl): Change 1 to INSERT in
      	function call.
      	(insert_insn_decl, insert_decl, insert_state): Likewise.
      	(automata_list_finish): Likewise.
      	* genrecog.c (process_define_predicate): Add cast to enum type.
      	* gensupport.c (init_predicate_table): Add cast to enum type.
      	* gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
      	function call.
      	(gimple_build_call_1, gimple_build_label): Likewise.
      	(gimple_build_goto, gimple_build_asm_1): Likewise.
      	(gimple_build_switch_1, gimple_build_cdt): Likewise.
      	* gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function
      	call.
      	(enum fallback): Rename from enum fallback_t.
      	(fallback_t): Typedef as int.
      	* gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
      	GSI_SAME_STMT in function call.
      	* ira.c (setup_class_subset_and_memory_move_costs): Add casts to
      	enum type.
      	(setup_reg_class_relations): Likewise.
      	(setup_reg_class_nregs): Change cl to int.  Add casts to enum
      	type.
      	(setup_prohibited_class_mode_regs): Add cast to enum type.
      	(setup_prohibited_mode_move_regs): Likewise.
      	* ira-costs.c (record_reg_classes): Change rclass to enum
      	reg_class.
      	(record_address_regs): Change i to enum reg_class.
      	* lists.c (alloc_EXPR_LIST): Add cast to enum type.
      	* machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
      	(GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
      	(GET_MODE_2XWIDER_MODE): Likewise.
      	(GET_CLASS_NARROWEST_MODE): Likewise.
      	* omp-low.c (expand_omp_for): Add cast to enum type.
      	* optabs.c (debug_optab_libfuncs): Add casts to enum type.
      	* opts.c (enable_warning_as_error): Change kind to diagostic_t.
      	* postreload.c (reload_cse_simplify_operands): Change rclass local
      	to enum reg_class.
      	* predict.c (combine_predictions_for_insn): Change best_predictor
      	and predictor to enum br_predictor.
      	(combine_predictions_for_bb): Likewise.
      	(build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
      	use SET_PREDICT_EXPR_OUTCOME.
      	* real.c (real_arithmetic): Change icode to code in function
      	call.
      	* reginfo.c (init_move_cost): Add casts to enum type.
      	(init_reg_sets_1, init_fake_stack_mems): Likewise.
      	* regmove.c (regclass_compatible_p): Change class0 and class1 to
      	enum reg_class.
      	* reload.c (find_valid_class): Add casts to enum type.
      	(push_reload): Change 0 to NO_REGS in function call.
      	(find_reloads): Change this_alternative to array of enum
      	reg_class.  Remove some now-unnecessary casts.
      	(make_memloc): Change 0 to VOIDmode in function call.
      	* reload1.c (reload): Change 0 to VOIDmode in function call.
      	(eliminate_regs_1, elimination_effects): Likewise.
      	(eliminate_regs_in_insn): Likewise.
      	(emit_input_reload_insns): Add cast to enum type.
      	(delete_output_reload): Change 0 to VOIDmode in function call.
      	* reorg.c (insn_sets_resource_p): Convert include_delayed_effects
      	to enum type in function call.
      	* tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
      	(SET_PREDICT_EXPR_OUTCOME): Define.
      	* tree-dump.c (get_dump_file_info): Change phase parameter to
      	int.
      	(get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
      	(dump_initialized_p, dump_flag_name, dump_end): Likewise.
      	(dump_function): Likewise.
      	* tree-dump.h: Update declarations.
      	* tree-pass.h: Update declarations.
      	* varasm.c (assemble_integer): Change mclass to enum mode_class.
      	* config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
      	enum type.
      	(arm_rtx_costs_1): Correct parenthesization.
      	(arm_rtx_costs): Add casts to enum type.
      	(adjacent_mem_locations): Reverse arguments to const_ok_for_op.
      	(vfp_emit_fstmd): Use add_rg_note.
      	(emit_multi_reg_push, emit_sfm): Likewise.
      	(thumb_set_frame_pointer): Likewise.
      	(arm_expand_prologue): Likewise.
      	(arm_regno_class): Change return type to enum reg_class.
      	(thumb1_expand_prologue): Use add_reg_note.
      	* config/arm/arm-protos.h (arm_regno_class): Update declaration.
      	* config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
      	in function call.
      	* config/arm/gentune.sh: Add cast to enum type.
      	* config/arm/arm-tune.md: Rebuild.
      	* config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
      	(ix86_split_fp_branch, predict_jump): Likewise.
      	(ix86_expand_multi_arg_builtin): Change sub_code from enum
      	insn_code to enum rtx_code.
      	(ix86_builtin_vectorized_function): Add cast to enum type.
      	* config/i386/i386.md (truncdfsf2): Change slot to enum
      	ix86_stack_slot.
      	(truncxf<mode>2, isinf<mode>2): Likewise.
      	* config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
      	enum type.
      	* config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
      	(spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
      	(insert_bundle_state): Change 1 to INSERT in function call.
      	(ia64_add_bundle_selector_before): Likewise.
      	* config/ia64/ia64.md (cpu attr): Add cast to enum type.
      	(save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
      	(restore_stack_nonlocal): Likewise.
      	* config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
      	function call.
      	* config/mips/mips.c (mips_binary_cost): Change 0 to SET in
      	function call.
      	(mips_rtx_costs): Likewise.
      	(mips_override_options): Add casts to enum type.
      	* config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
      	in function call.
      	* config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
      	(store_reg, set_reg_plus_d): Likewise.
      	(hppa_expand_prologue, hppa_profile_hook): Likewise.
      	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
      	cast to enum type.
      	(altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
      	function call.
      	(emit_unlikely_jump): Use add_reg_note.
      	(rs6000_emit_allocate_stack): Likewise.
      	(rs6000_frame_related, rs6000_emit_prologue): Likewise.
      	(output_toc): Change 1 to INSERT in function call.
      	(output_profile_hook): Change 0 to LCT_NORMAL in function call.
      	(rs6000_initialize_trampoline): Likewise.
      	(rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
      	function call.
      	* config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
      	(s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
      	(s390_expand_setmem, s390_expand_cmpmem): Likewise.
      	(save_gprs): Use add_reg_note.
      	(s390_emit_prologue): Likewise.
      	(s390_expand_builtin): Change 0 to EXPAND_NORMAL in function
      	call.
      	* config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
      	(sparc_fold_builtin): Add cast to enum type.
      	* config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
      	enum insn_code.
      	(spu_expand_prologue): Use add_reg_note.
      	(expand_builtin_args): Change 0 to EXPAND_NORMAL in function
      	call.
      
      	* c-parser.c (c_parser_attributes): Change VEC back to tree list.
      	(c_parser_postfix_expression_after_primary): Get VEC for list of
      	arguments.  Get original types of arguments.  Call
      	build_function_call_vec.
      	(cached_expr_list_1, cached_expr_list_2): New static variables.
      	(c_parser_expr_list): Change return type to VEC *.  Add
      	p_orig_types parameter.  Change all callers.
      	(c_parser_release_expr): New static function.
      	(c_parser_vec_to_tree_list): New static function.
      	* c-typeck.c (build_function_call): Rewrite to build a VEC and
      	call build_function_call_vec.
      	(build_function_call_vec): New function, based on old
      	build_function_call.
      	(convert_arguments): Remove nargs and argarray parameters.  Change
      	values to a VEC.  Add origtypes parameter.
      	(build_modify_expr): Add rhs_origtype parameter.  Change all
      	callers.
      	(convert_for_assignment): Add origtype parameter.  Change all
      	callers.  If warn_cxx_compat, check for conversion to an enum
      	type when calling a function.
      	(store_init_value): Add origtype parameter.  Change all callers.
      	(digest_init): Likewise.
      	(struct init_node): Add origtype field.
      	(add_pending_init): Add origtype parameter.  Change all callers.
      	(output_init_element): Likewise.
      	(output_pending_init_elements): Pass origtype from init_node to
      	output_init_element.
      	(process_init_elemnt): Pass origtype from c_expr to
      	output_init_element.
      	(c_finish_return): Add origtype parameter.  Change all callers.
      	* c-common.c (sync_resolve_size): Change params to VEC *.  Change
      	caller.
      	(sync_resolve_params): Likewise.
      	(sync_resolve_return): Change params to first_param.  Change
      	caller.
      	(resolve_overloaded_builtins): Change params to VEC *.  Change
      	callers.   Save first parameter around call to
      	build_function_call_vec.
      	* c-decl.c (finish_decl): Add origtype parameter.  Change all
      	callers.  Call build_function_call_vec rather than
      	build_function_call for cleanup.
      	* c-tree.h: Update declarations.
      	* c-common.h: Update declarations.
      	* stub-objc.c (objc_rewrite_function_call): Change parameter from
      	params to first_param.
      	* target.h (struct gcc_target): Change resolve_overloaded_builtin
      	params parameter from tree to void *.
      	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
      	Change arglist parameter to have type void *, and to be a pointer
      	to a VEC.
      	* config/rs6000/rs6000-protos.h
      	(altivec_resolve_overloaded_builtin): Update declaration.
      	* config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
      	fnargs parameter to have type void *, and to be a pointer to a
      	VEC.  Call build_function_call_vec instead of
      	build_function_call.
      	* config/spu/spu-protos.h (spu_expand_builtin): Update
      	declaration.
      
      gcc/cp/:
      	* typeck.c (build_function_call_vec): New function.
      	(cp_build_function_call): Only pass first parameter to
      	objc_rewrite_function_call.
      	(build_modify_expr): Add rhs_origtype parameter.  Change all
      	callers.
      	* decl.c (finish_decl): Add origtype parameter.  Change all
      	callers.
      	* semantics.c (finish_call_expr): Pass VEC to
      	resolve_overloaded_builtin.
      
      gcc/objc:
      	* objc-act.c (objc_rewrite_function_call): Change parameter from
      	params to first_param.  Change all callers.
      
      gcc/testsuite:
      	* gcc.dg/Wcxx-compat-3.c: New testcase.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146451 138bc75d-0d04-0410-961f-82ee72b054a4
      b9c74b4d
  11. 19 Mar, 2009 1 commit
    • jakub's avatar
      PR c/39495 · e060ba36
      jakub authored
      	* c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
      	minimum or maximum value.
      
      	* parser.c (cp_parser_omp_for_cond): Don't check lhs if decl is NULL.
      	(cp_parser_omp_for_loop): Always use cp_parser_omp_for_cond.
      
      	* gcc.dg/gomp/pr39495-1.c: New test.
      	* gcc.dg/gomp/pr39495-2.c: New test.
      	* g++.dg/gomp/pr39495-1.C: New test.
      	* g++.dg/gomp/pr39495-2.C: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144965 138bc75d-0d04-0410-961f-82ee72b054a4
      e060ba36
  12. 01 Dec, 2008 1 commit
    • jakub's avatar
      PR c++/38348 · 5846b949
      jakub authored
      	* c-omp.c (c_finish_omp_for): Only transform pointer
      	++ or -- into MODIFY_EXPR if second argument is non-NULL.
      
      	* g++.dg/gomp/for-19.C: New test.
      
      	* testsuite/libgomp.c++/for-6.C: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142318 138bc75d-0d04-0410-961f-82ee72b054a4
      5846b949
  13. 06 Oct, 2008 1 commit
    • aldyh's avatar
      * c-decl.c (finish_decl): Pass input_location to build_unary_op. · b6889cb0
      aldyh authored
      	* c-typeck.c (array_to_pointer_conversion): Pass location to
      	build_unary_op.
      	(function_to_pointer_conversion): Use error_at and warning_at.
      	(build_indirect_ref): Same.
      	(build_array_ref): Pass location to build_binary_op.
      	(parser_build_unary_op): Do not set location after calling
      	build_unary_op.
      	(build_unary_op): Add location argument.  Use it throughout.  Set
      	EXPR_LOCATION before returning new tree.
      	(build_modify_expr): Same.
      	(build_binary_op): Use location throughout.  Set EXPR_LOCATION before
      	returning node.
      	* c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
      	build_indirect_ref, build_modify_expr.
      	(c_finish_omp_for): Same.  Use error_at instead of error.
      	* c-common.c (c_common_truthvalue_conversion): Pass location to
      	build_unary_op.
      	(warn_for_div_by_zero): Add location argument.
      	* c-common.h: Add argument to build_modify_expr, build_indirect_ref,
      	build_unary_op, warn_for_div_by_zero.
      	* c-parser.c (c_parser_typeof_specifier): Use
      	protected_set_expr_location.
      	(c_parser_statement_after_labels): Same.
      	(c_parser_condition): Same.
      	(c_parser_expr_no_commas): Pass correct location to build_modify_expr.
      	(c_parser_conditional_expression): Use protected_set_expr_location.
      	(c_parser_unary_expression): Pass location to build_indirect_ref.
      	(c_parser_postfix_expression_after_primary): Pass location to
      	build_indirect_ref, build_unary_op.
      	(c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
      objc/
      	* objc-act.c (objc_build_string_object): Pass location to
      	build_unary_op.
      	(init_def_list): Same.
      	(init_objc_symtab): Same.
      	(init_module_descriptor): Same.
      	(build_module_initializer_routine): Same.
      	(generate_static_references): Same.
      	(build_typed_selector_reference): Same.
      	(add_objc_string): Same.
      	(objc_substitute_decl): Same.
      	(objc_build_ivar_assignment): Same.
      	(objc_build_global_assignment): Same.
      	(objc_build_strong_cast_assignment): Same.
      	(generate_protocols): Same.
      	(build_protocol_initializer): Same.
      	(build_dispatch_table_initializer): Same.
      	(generate_protocol_list): Same.
      	(build_category_initializer): Same.
      	(build_shared_structure_initializer): Same.
      	(generate_shared_structures): Same.
      	(objc_build_protocol_expr): Same.
      	(build_ivar_reference): Same.
      	(get_super_receiver): Same.
      	build_modify_expr.
      testsuite/
      	* gcc.dg/gomp/for-1.c: Test column.
      	* gcc.dg/misc-column.c: Add column tests for unary arguments.
      cp/
      	* typeck.c (build_x_indirect_ref): Add location argument.
      	(cp_build_binary_op): Pass location to warn_for_div_by_zero.
      	(cp_build_unary_op): Add location argument.
      	(cp_build_modify_expr): Same.
      	* class.c (build_base_path): Pass location to build_indirect_ref.
      	* semantics.c (handle_omp_for_class_iterator): Pass elocus to
      	build_modify_expr.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140914 138bc75d-0d04-0410-961f-82ee72b054a4
      b6889cb0
  14. 01 Sep, 2008 1 commit
    • aldyh's avatar
      * tree.c (protected_set_expr_location): New. · dda49785
      aldyh authored
              * tree.h (protected_set_expr_location): New prototype.
              * c-tree.h (build_array_ref): Add argument.
              (parser_build_unary_op): Same.
              * c-typeck.c (build_indirect_ref): Handle new location argument.
              (build_array_ref): Same.
              (parser_build_unary_op): Same.
              * gimplify.c (gimplify_asm_expr): Set input_location before calling
              error.
              * c-omp.c (c_finish_omp_atomic): Pass location when calling
              build_indirect_ref.
              * c-common.c (finish_label_address_expr): Handle new location
              argument.
              * c-common.h (build_indirect_ref): Add argument.
              (finish_label_address_expr): Same.
              * c-parser.c (c_parser_unary_expression): Pass location to build
              functions.
              (c_parser_postfix_expression): Same.
      objc/
              * objc-act.c (build_typed_selector_reference): Pass input_location to
              build_unary_op calls.
              (build_selector_reference): Same, but to build_array_ref.
              (objc_substitute_decl): Same.
              (build_ivar_reference): Same, but to build_indirect_ref.
              (get_super_receiver): Same.
      testsuite/
              * gcc.dg/20010516-1.c: Test for columns.
      cp/
              * typeck.c (build_x_indirect_ref): Add location argument.
              * class.c (build_base_path): Pass location to build_indirect_ref.
              * pt.c (tsubst_copy_and_build): Pass location to
              finish_label_address_expr.
              * parser.c (cp_parser_unary_expression): Same.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139867 138bc75d-0d04-0410-961f-82ee72b054a4
      dda49785
  15. 28 Jul, 2008 1 commit
    • rguenth's avatar
      2008-07-28 Richard Guenther <rguenther@suse.de> · 75a70cf9
      rguenth authored
      	Merge from gimple-tuples-branch.
      
      	* ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
      	* gimple.def: New file.
      	* gsstruct.def: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* tree-gimple.c: Removed.  Merged into ...
      	* gimple.c: ... here.  New file.
      	* tree-gimple.h: Removed.  Merged into ...
      	* gimple.h: ... here.  New file.
      
      	* Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
      	* configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
      	--enable-checking=gimple flag.
      	* config.in: Likewise.
      	* configure: Regenerated.
      
      	* tree-ssa-operands.h: Tuplified.
      	* tree-vrp.c: Likewise.
      	* tree-loop-linear.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-complex.c: Likewise.
      	* cgraphbuild.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tracer.c: Likewise.
      	* gengtype.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* value-prof.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* value-prof.h: Likewise.
      	* tree.c: Likewise.
      	* tree.h: Likewise.
      	* tree-pass.h: Likewise.
      	* ipa-cp.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-scalar-evolution.h: Likewise.
      	* target.h: Likewise.
      	* lambda-mat.c: Likewise.
      	* tree-phinodes.c: Likewise.
      	* diagnostic.h: Likewise.
      	* builtins.c: Likewise.
      	* tree-ssa-alias-warnings.c: Likewise.
      	* cfghooks.c: Likewise.
      	* fold-const.c: Likewise.
      	* cfghooks.h: Likewise.
      	* omp-low.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* toplev.c: Likewise.
      	* tree-gimple.c: Likewise.
      	* tree-gimple.h: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-chrec.h: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-sccvn.h: Likewise.
      	* cgraphunit.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-nomudflap.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* c-format.c: Likewise.
      	* tree-stdarg.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* tree-ssa-propagate.h: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* gimple-low.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* c-semantics.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* expr.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* predict.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* matrix-reorg.c: Likewise.
      	* c-decl.c: Likewise.
      	* tree-eh.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* lambda-trans.c: Likewise.
      	* function.c: Likewise.
      	* langhooks.c: Likewise.
      	* ebitmap.h: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* function.h: Likewise.
      	* langhooks.h: Likewise.
      	* tree-vectorizer.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* ipa-type-escape.h: Likewise.
      	* domwalk.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* profile.c: Likewise.
      	* domwalk.h: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-data-ref.h: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-vect-analyze.c: Likewise.
      	* c-typeck.c: Likewise.
      	* gimplify.c: Likewise.
      	* coretypes.h: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* calls.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree.def: Likewise.
      	* tree-dfa.c: Likewise.
      	* except.c: Likewise.
      	* except.h: Likewise.
      	* cfgexpand.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-predcom.c: Likewise.
      	* lambda.h: Likewise.
      	* tree-mudflap.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* print-tree.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* ipa-prop.h: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* ggc-page.c: Likewise.
      	* c-omp.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* lambda-code.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-inline.h: Likewise.
      	* tree-iterator.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-vect-transform.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* cfgloop.c: Likewise.
      	* system.h: Likewise.
      	* tree-profile.c: Likewise.
      	* cfgloop.h: Likewise.
      	* c-gimplify.c: Likewise.
      	* c-common.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-flow.h: Likewise.
      	* c-common.h: Likewise.
      	* basic-block.h: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-ssa-structalias.h: Likewise.
      	* tree-cfg.c: Likewise.
      	* passes.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-struct-reorg.h: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* varpool.c: Likewise.
      	* stmt.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* langhooks-def.h: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/m32c/m32c.c: Likewise.
      	* config/m32c/m32c-protos.h: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/mips/mips.c: Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@138207 138bc75d-0d04-0410-961f-82ee72b054a4
      75a70cf9
  16. 06 Jun, 2008 1 commit
    • jakub's avatar
      * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to · fd6481cf
      jakub authored
      	200805.
      	* langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
      	Add omp_private_outer_ref hook, add another argument to
      	omp_clause_default_ctor hook.
      	* langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
      	(LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
      	(LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
      	hook_tree_tree_tree_tree_null.
      	(LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
      	LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
      	* hooks.c (hook_tree_tree_tree_tree_null): New function.
      	* hooks.h (hook_tree_tree_tree_tree_null): New prototype.
      	* tree.def (OMP_TASK): New tree code.
      	* tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
      	OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
      	OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
      	OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
      	OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
      	OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
      	OMP_CLAUSE_COLLAPSE_EXPR): Define.
      	(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
      	(OMP_DIRECTIVE_P): Add OMP_TASK.
      	(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
      	(OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
      	* tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
      	and OMP_CLAUSE_UNTIED entries.
      	(omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
      	num_ops to 2.
      	(walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
      	Walk OMP_CLAUSE_LASTPRIVATE_STMT.
      	* tree-pretty-print.c (dump_omp_clause): Handle
      	OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
      	OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
      	(dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
      	* c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
      	warning about unsigned iterators.  Change decl/init/cond/incr
      	arguments to TREE_VECs, check arguments for all collapsed loops.
      	(c_finish_omp_taskwait): New function.
      	(c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
      	ws_clauses.
      	* c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
      	default_function_array_conversion on init.  Add par_clauses argument.
      	If decl is present in parallel's lastprivate clause, change it to
      	shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
      	Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
      	collapse count in clauses.
      	(c_parser_omp_for, c_parser_omp_parallel): Adjust
      	c_parser_omp_for_loop callers.
      	(OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
      	(c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
      	(c_parser_omp_clause_name): Handle collapse and untied clauses.
      	(c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
      	functions.
      	(c_parser_omp_clause_schedule): Handle schedule(auto).
      	Include correct location in the error message.
      	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
      	and PRAGMA_OMP_CLAUSE_UNTIED.
      	(OMP_TASK_CLAUSE_MASK): Define.
      	(c_parser_omp_task, c_parser_omp_taskwait): New functions.
      	(c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
      	* tree-nested.c (convert_nonlocal_omp_clauses,
      	convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
      	OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
      	OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
      	Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
      	OMP_CLAUSE_DECL.
      	(conver_nonlocal_reference, convert_local_reference,
      	convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
      	OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
      	(walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
      	* tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
      	* c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
      	* c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
      	(PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
      	* c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
      	(c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
      	OMP_CLAUSE_UNTIED.
      	* c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
      	* c-common.h (c_finish_omp_taskwait): New prototype.
      	* gimple-low.c (lower_stmt): Handle OMP_TASK.
      	* tree-parloops.c (create_parallel_loop): Create 1 entry
      	vectors for OMP_FOR_{INIT,COND,INCR}.
      	* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
      	(make_edges): Handle OMP_TASK.
      	* tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
      	loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
      	* tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
      	* builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
      	BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
      	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
      	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
      	* omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
      	BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
      	BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
      	BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
      	BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
      	* gimplify.c (gimplify_omp_for): Allow pointer type for decl,
      	handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
      	original iterator is present in lastprivate clause or if
      	collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
      	OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
      	(gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
      	(enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
      	(omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
      	if it is set, lookup var in outer contexts too.  Handle
      	OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
      	to be implicitly determined firstprivate for task regions.
      	(gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
      	if it is set, lookup var in outer contexts too.  Set
      	OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
      	Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
      	OMP_CLAUSE_UNTIED.  Take region_type as last argument
      	instead of in_parallel and in_combined_parallel.
      	(gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
      	Adjust callers.
      	(gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
      	GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause
      	langhook.
      	(new_omp_context): Set default_kind to
      	OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
      	(omp_region_type): New enum.
      	(struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
      	fields, add region_type.
      	(new_omp_context): Take region_type as argument instead of is_parallel
      	and is_combined_parallel.
      	(gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
      	omp_is_private, omp_check_private): Adjust ctx->is_parallel and
      	ctx->is_combined_parallel checks.
      	(gimplify_omp_task): New function.
      	(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
      	OMP_CLAUSE_UNTIED.
      	* omp-low.c (extract_omp_for_data): Use schedule(static)
      	for schedule(auto).  Handle pointer and unsigned iterators.
      	Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
      	Add loops argument.  Extract data for collapsed OMP_FOR loops.
      	(expand_parallel_call): Assert sched_kind isn't auto,
      	map runtime schedule to index 3.
      	(struct omp_for_data_loop): New type.
      	(struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
      	Add loop, loops, collapse and iter_type fields.
      	(workshare_safe_to_combine_p): Disallow combined for if
      	iter_type is unsigned long long.  Don't combine collapse > 1 loops
      	unless all bounds and steps are constant.  Adjust extract_omp_for_data
      	caller.
      	(expand_omp_for_generic): Handle pointer, unsigned and long long
      	iterators.  Handle collapsed OMP_FOR loops.  Adjust
      	for struct omp_for_data changes.  If libgomp function doesn't return
      	boolean_type_node, add comparison of the return value with 0.
      	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
      	pointer, unsigned and long long iterators.  Adjust for struct
      	omp_for_data changes.
      	(expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
      	to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
      	unsigned long long.  Allocate loops array, pass it to
      	extract_omp_for_data.  For collapse > 1 loops use always
      	expand_omp_for_generic.
      	(omp_context): Add sfield_map and srecord_type fields.
      	(is_task_ctx, lookup_sfield): New functions.
      	(use_pointer_for_field): Use is_task_ctx helper.  Change first
      	argument's type from const_tree to tree.  Clarify comment.
      	In OMP_TASK disallow copy-in/out sharing.
      	(build_sender_ref): Call lookup_sfield instead of lookup_field.
      	(install_var_field): Add mask argument.  Populate both record_type
      	and srecord_type if needed.
      	(delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
      	in srecord_type.
      	(fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
      	and DECL_FIELD_OFFSET.
      	(scan_sharing_clauses): Adjust install_var_field callers.  For
      	firstprivate clauses on explicit tasks allocate the var by value in
      	record_type unconditionally, rather than by reference.
      	Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
      	Use is_taskreg_ctx instead of is_parallel_ctx.
      	Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
      	(create_omp_child_function_name): Add task_copy argument, use
      	*_omp_cpyfn* names if it is true.
      	(create_omp_child_function): Add task_copy argument, if true create
      	*_omp_cpyfn* helper function.
      	(scan_omp_parallel): Adjust create_omp_child_function callers.
      	Rename parallel_nesting_level to taskreg_nesting_level.
      	(scan_omp_task): New function.
      	(lower_rec_input_clauses): Don't run constructors for firstprivate
      	explicit task vars which are initialized by *_omp_cpyfn*.  
      	Pass outer var ref to omp_clause_default_ctor hook if
      	OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
      	Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
      	OMP_CLAUSE_REDUCTION_INIT.
      	(lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
      	avoid duplicate setting of fields.  Handle
      	OMP_CLAUSE_PRIVATE_OUTER_REF.
      	(lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
      	copy-out if TREE_READONLY, only copy-in.
      	(expand_task_copyfn): New function.
      	(expand_task_call): New function.
      	(struct omp_taskcopy_context): New type.
      	(task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
      	New functions.
      	(lower_omp_parallel): Rename to...
      	(lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
      	Call create_task_copyfn if srecord_type is needed.  Adjust
      	sender_decl type.
      	(task_shared_vars): New variable.
      	(check_omp_nesting_restrictions): Warn if work-sharing,
      	barrier, master or ordered region is closely nested inside OMP_TASK.
      	Add warnings for barrier if closely nested inside of work-sharing,
      	ordered, or master region.
      	(scan_omp_1): Call check_omp_nesting_restrictions even for
      	GOMP_barrier calls.  Rename parallel_nesting_level to
      	taskreg_nesting_level.  Handle OMP_TASK.
      	(lower_lastprivate_clauses): Even if some lastprivate is found on a
      	work-sharing construct, continue looking for them on parent parallel
      	construct.
      	(lower_omp_for_lastprivate): Add lastprivate clauses
      	to the beginning of dlist rather than end.  Adjust for struct
      	omp_for_data changes.
      	(lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
      	not after it.  Handle collapsed OMP_FOR loops, adjust for
      	OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data
      	caller.
      	(get_ws_args_for): Adjust extract_omp_for_data caller.
      	(scan_omp_for): Handle collapsed OMP_FOR
      	loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
      	(lower_omp_single_simple): If libgomp function doesn't return
      	boolean_type_node, add comparison of the return value with 0.
      	(diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
      	loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
      	(parallel_nesting_level): Rename to...
      	(taskreg_nesting_level): ... this.
      	(is_taskreg_ctx): New function.
      	(build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
      	of is_parallel_ctx.
      	(execute_lower_omp): Rename parallel_nesting_level to
      	taskreg_nesting_level.
      	(expand_omp_parallel): Rename to...
      	(expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
      	Call omp_task_call for OMP_TASK regions.
      	(expand_omp): Adjust caller, handle OMP_TASK.
      	(lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
      
      	* bitmap.c (bitmap_default_obstack_depth): New variable.
      	(bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
      	if argument is NULL and bitmap_default_obstack is already initialized.
      	* ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
      	at the end.
      	* matrix-reorg.c (matrix_reorg): Likewise.
      cp/
      	* cp-tree.h (cxx_omp_finish_clause, cxx_omp_create_clause_info,
      	dependent_omp_for_p, begin_omp_task, finish_omp_task,
      	finish_omp_taskwait): New prototypes.
      	(cxx_omp_clause_default_ctor): Add outer argument.
      	(finish_omp_for): Add new clauses argument.
      	* cp-gimplify.c (cxx_omp_finish_clause): New function.
      	(cxx_omp_predetermined_sharing): Moved from semantics.c, rewritten.
      	(cxx_omp_clause_default_ctor): Add outer argument.
      	(cp_genericize_r): Walk OMP_CLAUSE_LASTPRIVATE_STMT.
      	* cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
      	* parser.c (cp_parser_omp_for_loop): Parse collapsed for loops.
      	Add par_clauses argument.  If decl is present in parallel's
      	lastprivate clause, change that clause to shared and add
      	a lastprivate clause for decl to OMP_FOR_CLAUSES.
      	Fix wording of error messages.  Adjust finish_omp_for caller.
      	Add clauses argument.  Parse loops with random access iterators.
      	(cp_parser_omp_clause_collapse, cp_parser_omp_clause_untied): New
      	functions.
      	(cp_parser_omp_for, cp_parser_omp_parallel): Adjust
      	cp_parser_omp_for_loop callers.
      	(cp_parser_omp_for_cond, cp_parser_omp_for_incr): New helper
      	functions.
      	(cp_parser_omp_clause_name): Handle collapse and untied
      	clauses.
      	(cp_parser_omp_clause_schedule): Handle auto schedule.
      	(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
      	and PRAGMA_OMP_CLAUSE_UNTIED.
      	(OMP_FOR_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE.
      	(OMP_TASK_CLAUSE_MASK): Define.
      	(cp_parser_omp_task, cp_parser_omp_taskwait): New functions.
      	(cp_parser_omp_construct): Handle PRAGMA_OMP_TASK.
      	(cp_parser_pragma): Handle PRAGMA_OMP_TASK and
      	PRAGMA_OMP_TASKWAIT.
      	* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
      	OMP_CLAUSE_UNTIED.  Handle OMP_CLAUSE_LASTPRIVATE_STMT.
      	(tsubst_omp_for_iterator): New function.
      	(dependent_omp_for_p): New function.
      	(tsubst_expr) <case OMP_FOR>: Use it.  Handle collapsed OMP_FOR
      	loops.  Adjust finish_omp_for caller.  Handle loops with random
      	access iterators.  Adjust for OMP_FOR_{INIT,COND,INCR} changes.
      	(tsubst_expr): Handle OMP_TASK.
      	* semantics.c (cxx_omp_create_clause_info): New function.
      	(finish_omp_clauses): Call it.  Handle OMP_CLAUSE_UNTIED and
      	OMP_CLAUSE_COLLAPSE.
      	(cxx_omp_predetermined_sharing): Removed.
      	* semantics.c (finish_omp_for): Allow pointer iterators.  Use
      	handle_omp_for_class_iterator and dependent_omp_for_p.  Handle
      	collapsed for loops.  Adjust c_finish_omp_for caller.  Add new
      	clauses argument.  Fix check for type dependent cond or incr.
      	Set OMP_FOR_CLAUSES to clauses.  Use cp_convert instead of
      	fold_convert to convert incr amount to difference_type.  Only
      	fold if not in template.  If decl is mentioned in lastprivate
      	clause, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle loops with random
      	access iterators.  Adjust for OMP_FOR_{INIT,COND,INCR}
      	changes.
      	(finish_omp_threadprivate): Allow static class members of the
      	current class.
      	(handle_omp_for_class_iterator, begin_omp_task, finish_omp_task,
      	finish_omp_taskwait): New functions.
      
      	* parser.c (cp_parser_binary_expression): Add prec argument.
      	(cp_parser_assignment_expression): Adjust caller.
      	* cp-tree.h (outer_curly_brace_block): New prototype.
      	* decl.c (outer_curly_brace_block): No longer static.
      fortran/
      	* scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
      	* parse.c (next_free): Allow tab after !$omp.
      	(decode_omp_directive): Handle !$omp task, !$omp taskwait
      	and !$omp end task.
      	(case_executable): Add ST_OMP_TASKWAIT.
      	(case_exec_markers): Add ST_OMP_TASK.
      	(gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
      	ST_OMP_TASKWAIT.
      	(parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
      	* gfortran.h (gfc_find_sym_in_expr): New prototype.
      	(gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
      	(gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
      	OMP_DEFAULT_FIRSTPRIVATE to default_sharing.  Add collapse and
      	untied fields.
      	(gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
      	* f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
      	LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
      	LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
      	* trans.h (gfc_omp_clause_default_ctor): Add another argument.
      	(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
      	gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
      	* types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
      	BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
      	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
      	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
      	BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
      	(BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
      	than boolean_type_node.
      	* dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
      	EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
      	untied and collapse clauses.
      	(gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
      	* trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
      	EXEC_OMP_TASKWAIT.
      	* st.c (gfc_free_statement): Likewise.
      	* resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
      	(find_sym_in_expr): Rename to...
      	(gfc_find_sym_in_expr): ... this.  No longer static.
      	(resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
      	* match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
      	prototypes.
      	* openmp.c (resolve_omp_clauses): Allow allocatable arrays in
      	firstprivate, lastprivate, reduction, copyprivate and copyin
      	clauses.
      	(omp_current_do_code): Made static.
      	(omp_current_do_collapse): New variable.
      	(gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
      	clear omp_current_do_code and omp_current_do_collapse on return.
      	(gfc_resolve_do_iterator): Handle collapsed do loops.
      	(resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
      	(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
      	(gfc_match_omp_clauses): Handle default (firstprivate),
      	schedule (auto), untied and collapse (n) clauses.
      	(OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
      	(OMP_TASK_CLAUSES): Define.
      	(gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
      	* trans-openmp.c (gfc_omp_private_outer_ref): New function.
      	(gfc_omp_clause_default_ctor): Add outer argument.  For allocatable
      	arrays allocate them with the bounds of the outer var if outer
      	var is allocated.
      	(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
      	gfc_omp_clause_dtor): New functions.
      	(gfc_trans_omp_array_reduction): If decl is allocatable array,
      	allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
      	and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
      	(gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
      	for assumed-size arrays.
      	(gfc_trans_omp_do): Add par_clauses argument.  If dovar is
      	present in lastprivate clause and do loop isn't simple,
      	set OMP_CLAUSE_LASTPRIVATE_STMT.  If dovar is present in
      	parallel's lastprivate clause, change it to shared and add
      	lastprivate clause to OMP_FOR_CLAUSES.  Handle collapsed do loops.
      	(gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
      	(gfc_trans_omp_parallel_do): Likewise.  Move collapse clause to
      	OMP_FOR from OMP_PARALLEL.
      	(gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
      	OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
      	(gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
      	(gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
      	EXEC_OMP_TASKWAIT.
      gcc/testsuite/
      	* gcc.dg/gomp/collapse-1.c: New test.
      	* gcc.dg/gomp/nesting-1.c: New test.
      	* g++.dg/gomp/task-1.C: New test.
      	* g++.dg/gomp/predetermined-1.C: New test.
      	* g++.dg/gomp/tls-4.C: New test.
      	* gfortran.dg/gomp/collapse1.f90: New test.
      	* gfortran.dg/gomp/sharing-3.f90: New test.
      	* gcc.dg/gomp/pr27499.c (foo): Remove is unsigned dg-warning.
      	* g++.dg/gomp/pr27499.C (foo): Likewise.
      	* g++.dg/gomp/for-16.C (foo): Likewise.
      	* g++.dg/gomp/tls-3.C: Remove dg-error, add S::s definition.
      	* g++.dg/gomp/pr34607.C: Adjust dg-error location.
      	* g++.dg/gomp/for-16.C (foo): Add a new dg-error.
      	* gcc.dg/gomp/appendix-a/a.35.4.c: Add dg-warning.
      	* gcc.dg/gomp/appendix-a/a.35.6.c: Likewise.
      	* gfortran.dg/gomp/appendix-a/a.35.4.f90: Likewise.
      	* gfortran.dg/gomp/appendix-a/a.35.6.f90: Likewise.
      	* gfortran.dg/gomp/omp_parse1.f90: Remove !$omp tab test.
      	* gfortran.dg/gomp/appendix-a/a.33.4.f90: Remove dg-error
      	about allocatable array.
      	* gfortran.dg/gomp/reduction1.f90: Likewise.
      libgomp/
      	* configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
      	Substitute also OMP_*LOCK_25*.
      	* configure: Regenerated.
      	* config.h.in: Regenerated.
      	* Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
      	ptrlock.c and task.c.
      	* Makefile.in: Regenerated.
      	* testsuite/Makefile.in: Regenerated.
      	* task.c: New file.
      	* loop_ull.c: New file.
      	* iter_ull.c: New file.
      	* libgomp.h: Include ptrlock.h.
      	(enum gomp_task_kind): New type.
      	(struct gomp_team): Add task_lock, task_queue, task_count,
      	task_running_count, single_count fields.  Add
      	work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
      	Remove work_share_lock, generation_mask,
      	oldest_live_gen, num_live_gen and init_work_shares fields, add
      	work work_share_list_alloc, work_share_list_free and work_share_chunk
      	fields.  Change work_shares from pointer to pointers into an array.
      	Change ordered_release field into gomp_sem_t ** from flexible array
      	member.  Add implicit_task and initial_work_shares fields.
      	Move close to the end of the struct.
      	(struct gomp_team_state): Add single_count, last_work_share,
      	active_level and level fields, remove work_share_generation.
      	(gomp_barrier_handle_tasks): New prototype.
      	(gomp_finish_task): New inline function.
      	(struct gomp_work_share): Move chunk_size, end, incr into
      	transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
      	next_ll fields.  Reshuffle fields.  Add next_alloc,
      	next_ws, next_free and inline_ordered_team_ids fields, change
      	ordered_team_ids into pointer from flexible array member.
      	Add mode field.  Put lock and next into a different cache line
      	from most of the write-once fields.
      	(gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
      	gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
      	gomp_iter_ull_guided_next): New prototypes.
      	(gomp_new_icv): New prototype.
      	(struct gomp_thread): Add thread_pool and task fields.
      	(struct gomp_thread_pool): New type.
      	(gomp_new_team): New prototype.
      	(gomp_team_start): Change type of last argument.
      	(gomp_new_work_share): Removed.
      	(gomp_init_work_share, gomp_fini_work_share): New prototypes.
      	(gomp_work_share_init_done): New static inline.
      	(gomp_throttled_spin_count_var, gomp_available_cpus,
      	gomp_managed_threads): New extern decls.
      	(gomp_init_task): New prototype.
      	(gomp_spin_count_var): New extern var decl.
      	(LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
      	or no alias support, or if not PIC.
      	(gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
      	gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
      	gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
      	gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
      	gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
      	gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
      	gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
      	gomp_test_nest_lock_25): New prototypes.
      	(omp_lock_symver, strong_alias): Define.
      	(gomp_remaining_threads_count, gomp_remaining_threads_lock): New
      	decls.
      	(gomp_end_task): New.
      	(struct gomp_task_icv, gomp_global_icv): New.
      	(gomp_thread_limit_var, gomp_max_active_levels_var): New.
      	(struct gomp_task): New.
      	(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
      	gomp_run_sched_var, gomp_run_sched_chunk): Remove.
      	(gomp_icv): New.
      	(gomp_schedule_type): Reorder enum to match
      	omp_sched_t.
      	* team.c (struct gomp_thread_start_data): Add thread_pool and task
      	fields.
      	(gomp_thread_start): Add gomp_team_barrier_wait call.
      	For non-nested case remove clearing of docked thread thr fields.
      	Use pool fields instead of global gomp_* variables.  Use
      	gomp_barrier_wait_last when needed.  Initialize ts.active_level.
      	Create tasks for each member thread.
      	(free_team): Only destroy team barrier, task_lock here and free it.
      	(gomp_free_thread): Free last_team if non-NULL.
      	(gomp_team_end): Call gomp_team_barrier_wait instead of
      	gomp_barrier_wait.  For nested case call one extra
      	gomp_barrier_wait.  Move here some destruction from free_team.
      	Call free_team on pool->last_team if any, rather than freeing
      	current team.  Destroy work_share_list_free_lock ifndef
      	HAVE_SYNC_BUILTINS.
      	(gomp_new_icv): New function.
      	(gomp_threads, gomp_threads_size, gomp_threads_used,
      	gomp_threads_dock): Removed.
      	(gomp_thread_destructor): New variable.
      	(gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
      	functions.
      	(gomp_team_start): Create new pool if current thread doesn't have
      	one.  Use pool fields instead of global gomp_* variables. 
      	Initialize thread_pool field for new threads.  Clear single_count.
      	Change last argument from ws to team, don't create
      	new team, set ts.work_share to &team->work_shares[0] and clear
      	ts.last_work_share.  Don't clear ts.work_share_generation.
      	If number of threads changed, adjust atomically gomp_managed_threads.
      	Use gomp_init_task instead of gomp_new_task,
      	set thr->task to the corresponding implicit_task array entry.
      	Create tasks for each member thread.  Initialize ts.level.
      	(initialize_team): Call pthread_key_create on
      	gomp_thread_destructor.
      	(team_destructor): New function.
      	(new_team): Removed.
      	(gomp_new_team): New function.
      	(free_team): Free gomp_work_share blocks chained through next_alloc,
      	instead of freeing work_shares and destroying work_share_lock.
      	(gomp_team_end): Call gomp_fini_work_share.  If number of threads
      	changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
      	* barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
      	of gomp_barrier_wait.
      	* single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
      	instead of gomp_barrier_wait.  Call gomp_work_share_init_done
      	if gomp_work_share_start returned true.  Don't unlock ws->lock.
      	(GOMP_single_copy_end): Call gomp_team_barrier_wait instead
      	of gomp_barrier_wait.
      	(GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
      	gomp_work_share_init_done if gomp_work_share_start returned true.
      	Don't unlock ws->lock.
      	* work.c: Include stddef.h.
      	(free_work_share): Use work_share_list_free_lock instead
      	of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
      	Call gomp_fini_work_share and then either free ws if orphaned, or
      	put it into work_share_list_free list of the current team.
      	(alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
      	functions.
      	(gomp_work_share_start, gomp_work_share_end,
      	gomp_work_share_end_nowait): Rewritten.
      	* omp_lib.f90.in Change some tabs to spaces to prevent warnings.
      	(openmp_version): Set to 200805.
      	(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
      	omp_sched_guided, omp_sched_auto): New parameters.
      	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
      	omp_set_max_active_levels, omp_get_max_active_levels,
      	omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
      	omp_get_active_level): New interfaces.
      	* omp_lib.h.in (openmp_version): Set to 200805.
      	(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
      	omp_sched_guided, omp_sched_auto): New parameters.
      	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
      	omp_set_max_active_levels, omp_get_max_active_levels,
      	omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
      	omp_get_active_level): New externals.
      	* loop.c: Include limits.h.
      	(GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
      	GFS_AUTO.
      	(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
      	Likewise.  Use gomp_icv.
      	(gomp_loop_static_start, gomp_loop_dynamic_start): Clear
      	ts.static_trip here.
      	(gomp_loop_static_start, gomp_loop_ordered_static_start): Call
      	gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
      	(gomp_loop_dynamic_start, gomp_loop_guided_start): Call
      	gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
      	don't unlock ws->lock, otherwise lock it.
      	(gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
      	gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
      	(gomp_parallel_loop_start): Call gomp_new_team instead of
      	gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
      	Adjust gomp_team_start caller.  Pass 0 as second argument to
      	gomp_resolve_num_threads.
      	(gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
      	If adding ws->chunk_size nthreads + 1 times after end won't
      	overflow, set ws->mode to 1.
      	* libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
      	GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
      	GOMP_loop_ull_ordered_static_start,
      	GOMP_loop_ull_ordered_dynamic_start,
      	GOMP_loop_ull_ordered_guided_start,
      	GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
      	GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
      	GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
      	GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
      	GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
      	prototypes.
      	* libgomp.map: Export lock routines also @@OMP_2.0.
      	(GOMP_loop_ordered_dynamic_first,
      	GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
      	GOMP_loop_ordered_static_first): Remove.
      	(GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
      	GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
      	GOMP_loop_ull_ordered_dynamic_next,
      	GOMP_loop_ull_ordered_dynamic_start,
      	GOMP_loop_ull_ordered_guided_next,
      	GOMP_loop_ull_ordered_guided_start,
      	GOMP_loop_ull_ordered_runtime_next,
      	GOMP_loop_ull_ordered_runtime_start,
      	GOMP_loop_ull_ordered_static_next,
      	GOMP_loop_ull_ordered_static_start,
      	GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
      	GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
      	GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
      	(omp_set_schedule, omp_get_schedule,
      	omp_get_thread_limit, omp_set_max_active_levels,
      	omp_get_max_active_levels, omp_get_level,
      	omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
      	omp_set_schedule_, omp_set_schedule_8_,
      	omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
      	omp_set_max_active_levels_, omp_set_max_active_levels_8_,
      	omp_get_max_active_levels_, omp_get_level_,
      	omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
      	omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
      	New exports @@OMP_3.0.
      	* omp.h.in (omp_sched_t): New type.
      	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
      	omp_set_max_active_levels, omp_get_max_active_levels,
      	omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
      	omp_get_active_level): New prototypes.
      	* env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
      	gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
      	gomp_thread_limit_var, gomp_remaining_threads_count,
      	gomp_remaining_threads_lock): New variables.
      	(parse_spincount): New function.
      	(initialize_env): Call gomp_init_num_threads unconditionally.
      	Initialize gomp_available_cpus.  Call parse_spincount,
      	initialize gomp_{,throttled_}spin_count_var
      	depending on presence and value of OMP_WAIT_POLICY and
      	GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
      	Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
      	OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
      	for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
      	gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
      	(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
      	gomp_run_sched_var, gomp_run_sched_chunk): Remove.
      	(gomp_global_icv): New.
      	(parse_schedule): Use it.  Parse "auto".
      	(omp_set_num_threads): Use gomp_icv.
      	(omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
      	Likewise.
      	(omp_get_max_threads): Move from parallel.c.
      	(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
      	omp_set_max_active_levels, omp_get_max_active_levels): New functions,
      	add ialias.
      	(parse_stacksize, parse_wait_policy): New functions.
      	* fortran.c: Rewrite lock wrappers, if symbol versioning provide
      	both wrappers for compatibility and new locks.
      	(omp_set_schedule, omp_get_schedule,
      	omp_get_thread_limit, omp_set_max_active_levels,
      	omp_get_max_active_levels, omp_get_level,
      	omp_get_ancestor_thread_num, omp_get_team_size,
      	omp_get_active_level): New ialias_redirect.
      	(omp_set_schedule_, omp_set_schedule_8_,
      	omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
      	omp_set_max_active_levels_, omp_set_max_active_levels_8_,
      	omp_get_max_active_levels_, omp_get_level_,
      	omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
      	omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
      	New functions.
      	* parallel.c: Include limits.h.
      	(gomp_resolve_num_threads): Add count argument.  Rewritten.
      	(GOMP_parallel_start): Call gomp_new_team and pass that as last
      	argument to gomp_team_start.  Pass 0 as second argument to
      	gomp_resolve_num_threads.
      	(GOMP_parallel_end): Decrease gomp_remaining_threads_count
      	if gomp_thread_limit_var != ULONG_MAX.
      	(omp_in_parallel): Implement using ts.active_level.
      	(omp_get_max_threads): Move to env.c.
      	(omp_get_level, omp_get_ancestor_thread_num,
      	omp_get_team_size, omp_get_active_level): New functions,
      	add ialias.
      	* sections.c (GOMP_sections_start): Call gomp_work_share_init_done
      	after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
      	gomp_iter_dynamic_next instead of the _locked variant and don't take
      	lock around it, otherwise acquire it before calling
      	gomp_iter_dynamic_next_locked.
      	(GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
      	gomp_iter_dynamic_next instead of the _locked variant and don't take
      	lock around it.
      	(GOMP_parallel_sections_start): Call gomp_new_team instead of
      	gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
      	Adjust gomp_team_start caller.  Pass count as second argument to
      	gomp_resolve_num_threads, don't adjust num_threads after the call.
      	Use gomp_icv.
      	* iter.c (gomp_iter_dynamic_next_locked): Don't multiply
      	ws->chunk_size by incr.
      	(gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
      	code.
      	* libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
      	types.
      	(omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
      	(omp_check_defines): Check even the compat defines.
      	* config/linux/ptrlock.c: New file.
      	* config/linux/ptrlock.h: New file.
      	* config/linux/wait.h: New file.
      	* config/posix/ptrlock.c: New file.
      	* config/posix/ptrlock.h: New file.
      	* config/linux/bar.h (gomp_team_barrier_wait,
      	gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
      	(gomp_team_barrier_set_task_pending,
      	gomp_team_barrier_clear_task_pending,
      	gomp_team_barrier_set_waiting_for_tasks,
      	gomp_team_barrier_waiting_for_tasks,
      	gomp_team_barrier_done): New inlines.
      	(gomp_barrier_t): Rewritten.
      	(gomp_barrier_state_t): New typedef.
      	(gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
      	gomp_barrier_wait_start): Rewritten.
      	(gomp_barrier_wait_end): Change second argument to
      	gomp_barrier_state_t.
      	(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
      	inlines.
      	* config/linux/bar.c: Include wait.h instead of libgomp.h and
      	futex.h.
      	(gomp_barrier_wait_end): Rewritten.
      	(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
      	gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
      	* config/posix/bar.h (gomp_barrier_t): Add generation field.
      	(gomp_barrier_state_t): New typedef.
      	(gomp_team_barrier_wait,
      	gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
      	(gomp_barrier_wait_start): Or all but low 2 bits from generation
      	into the return value.  Return gomp_barrier_state_t.
      	(gomp_team_barrier_set_task_pending,
      	gomp_team_barrier_clear_task_pending,
      	gomp_team_barrier_set_waiting_for_tasks,
      	gomp_team_barrier_waiting_for_tasks,
      	gomp_team_barrier_done): New inlines.
      	(gomp_barrier_wait_end): Change second argument to
      	gomp_barrier_state_t.
      	(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
      	inlines.
      	* config/posix/bar.c (gomp_barrier_init): Clear generation field.
      	(gomp_barrier_wait_end): Change second argument to
      	gomp_barrier_state_t. 
      	(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
      	gomp_team_barrier_wake): New functions.
      	* config/linux/mutex.c: Include wait.h instead of libgomp.h and
      	futex.h.
      	(gomp_futex_wake, gomp_futex_wait): New variables.
      	(gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
      	* config/linux/lock.c: Rewrite to make locks task owned,
      	for backwards compatibility provide the old entrypoints
      	if symbol versioning.  Include wait.h instead of libgomp.h and
      	futex.h.
      	(gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
      	* config/posix95/lock.c: Rewrite to make locks task owned,
      	for backwards compatibility provide the old entrypoints
      	if symbol versioning.
      	* config/posix/lock.c: Rewrite to make locks task owned,
      	for backwards compatibility provide the old entrypoints
      	if symbol versioning.
      	* config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
      	(get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
      	* config/posix/proc.c, config/mingw32/proc.c: Similarly.
      	* config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
      	(sys_futex0): Return error code.
      	(futex_wake, futex_wait): If ENOSYS was returned, clear
      	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
      	(cpu_relax, atomic_write_barrier): New static inlines.
      	* config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
      	(futex_wake, futex_wait): If ENOSYS was returned, clear
      	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
      	(cpu_relax, atomic_write_barrier): New static inlines.
      	* config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
      	(sys_futex0): Return error code.
      	(futex_wake, futex_wait): If ENOSYS was returned, clear
      	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
      	(cpu_relax, atomic_write_barrier): New static inlines.
      	* config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
      	(sys_futex0): Return error code.
      	(futex_wake, futex_wait): If ENOSYS was returned, clear
      	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
      	(cpu_relax, atomic_write_barrier): New static inlines.
      	* config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
      	(sys_futex0): Return error code.
      	(futex_wake, futex_wait): If ENOSYS was returned, clear
      	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
      	(cpu_relax, atomic_write_barrier): New static inlines.
      	* config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
      	(sys_futex0): Return error code.
      	(futex_wake, futex_wait): If ENOSYS was returned, clear
      	FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
      	(cpu_relax, atomic_write_barrier): New static inlines.
      	* config/linux/sem.c: Include wait.h instead of libgomp.h and
      	futex.h.
      	(gomp_sem_wait_slow): Call do_wait instead of futex_wait.
      	* config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
      	* config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
      	types.
      	(omp_nest_lock_t): Change owner into void *, add lock field.
      	* config/posix95/omp-lock.h: Include semaphore.h.
      	(omp_lock_25_t, omp_nest_lock_25_t): New types.
      	(omp_lock_t): Use sem_t instead of mutex if semaphores
      	aren't broken.
      	(omp_nest_lock_t): Likewise.  Change owner to void *.
      	* config/posix/omp-lock.h: Include semaphore.h.
      	(omp_lock_25_t, omp_nest_lock_25_t): New types.
      	(omp_lock_t): Use sem_t instead of mutex if semaphores
      	aren't broken.
      	(omp_nest_lock_t): Likewise.  Add owner field.
      
      	* testsuite/libgomp.c/collapse-1.c: New test.
      	* testsuite/libgomp.c/collapse-2.c: New test.
      	* testsuite/libgomp.c/collapse-3.c: New test.
      	* testsuite/libgomp.c/icv-1.c: New test.
      	* testsuite/libgomp.c/icv-2.c: New test.
      	* testsuite/libgomp.c/lib-2.c: New test.
      	* testsuite/libgomp.c/lock-1.c: New test.
      	* testsuite/libgomp.c/lock-2.c: New test.
      	* testsuite/libgomp.c/lock-3.c: New test.
      	* testsuite/libgomp.c/loop-4.c: New test.
      	* testsuite/libgomp.c/loop-5.c: New test.
      	* testsuite/libgomp.c/loop-6.c: New test.
      	* testsuite/libgomp.c/loop-7.c: New test.
      	* testsuite/libgomp.c/loop-8.c: New test.
      	* testsuite/libgomp.c/loop-9.c: New test.
      	* testsuite/libgomp.c/nested-3.c: New test.
      	* testsuite/libgomp.c/nestedfn-6.c: New test.
      	* testsuite/libgomp.c/sort-1.c: New test.
      	* testsuite/libgomp.c/task-1.c: New test.
      	* testsuite/libgomp.c/task-2.c: New test.
      	* testsuite/libgomp.c/task-3.c: New test.
      	* testsuite/libgomp.c/task-4.c: New test.
      	* testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
      	to C++ testsuite default compiler options.
      	* testsuite/libgomp.c++/collapse-1.C: New test.
      	* testsuite/libgomp.c++/collapse-2.C: New test.
      	* testsuite/libgomp.c++/ctor-10.C: New test.
      	* testsuite/libgomp.c++/for-1.C: New test.
      	* testsuite/libgomp.c++/for-2.C: New test.
      	* testsuite/libgomp.c++/for-3.C: New test.
      	* testsuite/libgomp.c++/for-4.C: New test.
      	* testsuite/libgomp.c++/for-5.C: New test.
      	* testsuite/libgomp.c++/loop-8.C: New test.
      	* testsuite/libgomp.c++/loop-9.C: New test.
      	* testsuite/libgomp.c++/loop-10.C: New test.
      	* testsuite/libgomp.c++/task-1.C: New test.
      	* testsuite/libgomp.c++/task-2.C: New test.
      	* testsuite/libgomp.c++/task-3.C: New test.
      	* testsuite/libgomp.c++/task-4.C: New test.
      	* testsuite/libgomp.c++/task-5.C: New test.
      	* testsuite/libgomp.c++/task-6.C: New test.
      	* testsuite/libgomp.fortran/allocatable1.f90: New test.
      	* testsuite/libgomp.fortran/allocatable2.f90: New test.
      	* testsuite/libgomp.fortran/allocatable3.f90: New test.
      	* testsuite/libgomp.fortran/allocatable4.f90: New test.
      	* testsuite/libgomp.fortran/collapse1.f90: New test.
      	* testsuite/libgomp.fortran/collapse2.f90: New test.
      	* testsuite/libgomp.fortran/collapse3.f90: New test.
      	* testsuite/libgomp.fortran/collapse4.f90: New test.
      	* testsuite/libgomp.fortran/lastprivate1.f90: New test.
      	* testsuite/libgomp.fortran/lastprivate2.f90: New test.
      	* testsuite/libgomp.fortran/lib4.f90: New test.
      	* testsuite/libgomp.fortran/lock-1.f90: New test.
      	* testsuite/libgomp.fortran/lock-2.f90: New test.
      	* testsuite/libgomp.fortran/nested1.f90: New test.
      	* testsuite/libgomp.fortran/nestedfn4.f90: New test.
      	* testsuite/libgomp.fortran/strassen.f90: New test.
      	* testsuite/libgomp.fortran/tabs1.f90: New test.
      	* testsuite/libgomp.fortran/tabs2.f: New test.
      	* testsuite/libgomp.fortran/task1.f90: New test.
      	* testsuite/libgomp.fortran/task2.f90: New test.
      	* testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
      	* testsuite/libgomp.fortran/vla5.f90: Likewise.
      	* testsuite/libgomp.c/pr26943-2.c: Likewise.
      	* testsuite/libgomp.c/pr26943-3.c: Likewise.
      	* testsuite/libgomp.c/pr26943-4.c: Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136433 138bc75d-0d04-0410-961f-82ee72b054a4
      fd6481cf
  17. 09 May, 2008 1 commit
    • tomby's avatar
      * config/pa/pa.c (reloc_needed): Use CASE_CONVERT. · 72dd6141
      tomby authored
              * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
      
              * tree-ssa-structalias.c (get_constraint_for): Likewise.
      
              * c-common.c (c_common_truthvalue_conversion): Likewise.
      
              * tree-object-size.c (compute_object_offset): Likewise.
      
              * tree-inline.c (estimate_num_insns_1): Likewise.
      
              * varasm.c (const_hash_1, compare_constant, copy_constant)
              (compute_reloc_for_constant, output_addressed_constants)
              (initializer_constant_valid_p): Likewise.
      
              * c-omp.c (check_omp_for_incr_expr): Likewise.
      
              * gimplify.c (gimplify_expr): Likewise.
      
              * c-typeck.c (c_finish_return): Likewise.
      
              * tree-vectorizer.c (supportable_widening_operation)
              (supportable_narrowing_operation): Likewise.
      
              * c-pretty-print.c (pp_c_cast_expression, pp_c_expression):
              Likewise.
      
              * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
      
              * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
      
              * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
              (descr_info_loc): Likewise.
      
              * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
      
              * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
              (fold_unary): Likewise.
      
              * builtins.c (get_pointer_alignment): Likewise.
      
              * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
              (instantiate_parameters_1): Likewise.
      
              * tree.c (expr_align, stabilize_reference): Likewise.
      
              * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
      
              * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
      
              * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
      
              * tree-ssa-threadedge.c (simplify_control_stmt_condition):
              Likewise.
      
              * config/alpha/alpha.c (va_list_skip_additions): Likewise.
      
              * c-common.c (c_alignof_expr, check_function_arguments_recurse):
              Likewise.
      
              * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
      
              * varasm.c (initializer_constant_valid_p, output_constant):
              Likewise.
      
              * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
              (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
              (forward_propagate_comparison)
              (tree_ssa_forward_propagate_single_use_vars): Likewise.
      
              * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
      
              * emit-rtl.c (component_ref_for_mem_expr)
              (set_mem_attributes_minus_bitpos): Likewise.
      
              * tree-ssa-phiopt.c (conditional_replacement): Likewise.
      
              * gimplify.c (gimplify_conversion, goa_lhs_expr_p,
              gimplify_expr): Likewise.
      
              * c-typeck.c (default_function_array_conversion,
              build_indirect_ref)
              (build_function_call, pointer_diff, build_compound_expr)
              (c_finish_return): Likewise.
      
              * tree-vect-analyze.c (vect_determine_vectorization_factor):
              Likewise.
      
              * matrix-reorg.c (get_inner_of_cast_expr,
              may_flatten_matrices_1): Likewise.
      
              * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
      
              * expr.c (is_aligning_offset): Likewise.
      
              * tree-ssa-alias.c (is_escape_site): Likewise.
      
              * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
              (check_all_va_list_escapes): Likewise.
      
              * tree-ssa-loop-ivopts.c (determine_base_object)
              (determine_common_wider_type): Likewise.
      
              * dojump.c (do_jump): Likewise.
      
              * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
      
              * tree-gimple.c (is_gimple_cast): Likewise.
      
              * fold-const.c (decode_field_reference, )
              (fold_sign_changed_comparison, fold_unary, fold_comparison)
              (fold_binary): Likewise.
      
              * tree-ssa-alias-warnings.c (find_alias_site_helper)
              (already_warned_in_frontend_p): Likewise.
      
              * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
      
              * tree.c (really_constant_p, get_unwidened): Likewise.
      
              * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
      
              * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
      
              * tree-vrp.c (register_edge_assert_for_2,
              register_edge_assert_for_1): Likewise.
      
              * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
              CONVERT_EXPR_P.
              (CONVERT_EXPR_P): Define.
              (CASE_CONVERT): Define.
      
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135114 138bc75d-0d04-0410-961f-82ee72b054a4
      72dd6141
  18. 05 Jan, 2008 1 commit
  19. 26 Jul, 2007 1 commit
  20. 15 Feb, 2007 1 commit
    • sandra's avatar
      2007-02-15 Sandra Loosemore <sandra@codesourcery.com> · c2f47e15
      sandra authored
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* tree.h (enum tree_code_class): Add tcc_vl_exp.
      	(VL_EXP_CLASS_P): New.
      	(TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
      	TREE_CODE_LENGTH.
      	(TREE_OPERAND_CHECK_CODE): Likewise.
      	(GIMPLE_STMT_OPERAND_CHECK): Likewise.
      	(TREE_RTL_OPERAND_CHECK): Likewise.
      	(tree_operand_check_failed): Make second parameter the whole tree
      	instead of its code.  Fixed callers.
      	(VL_EXP_CHECK): New.
      	(TREE_OPERAND_LENGTH): New.
      	(VL_EXP_OPERAND_LENGTH): New.
      	(CALL_EXPR_FN): New.
      	(CALL_EXPR_STATIC_CHAIN): New.
      	(CALL_EXPR_ARGS): New.
      	(CALL_EXPR_ARG): New.
      	(call_expr_nargs): New.
      	(CALL_EXPR_ARGP): New.
      	(build_nt_call_list): Declare.
      	(build_vl_exp_stat): Declare.
      	(build_vl_exp): New.
      	(build_call_list): Declare.
      	(build_call_nary): Declare.
      	(build_call_valist): Declare.
      	(build_call_array): Declare.
      	(call_expr_arg): Declare.
      	(call_expr_argp): Declare.
      	(call_expr_arglist): Declare.
      	(fold_build_call_list): Declare.
      	(fold_build_call_list_initializer): Declare.
      	(fold_call_expr): Declare to replace fold_builtin.
      	(fold_builtin_fputs): Update to agree with modified definition.
      	(fold_builtin_strcpy): Likewise.
      	(fold_builtin_strncpy): Likewise.
      	(fold_builtin_memory_chk): Likewise.
      	(fold_builtin_stxcpy_chk): Likewise.
      	(fold_builtin_strncpy_chk): Likewise.
      	(fold_builtin_next_arg): Likewise.
      	(fold_build_call_expr): Declare.
      	(fold_builtin_call_list): Declare.
      	(fold_builtin_call_valist): Declare.
      	(build_call_expr): Declare.
      	(validate_arglist): Update to agree with modified definition.
      	(tree_operand_length): New.
      	(call_expr_arg_iterator): New.
      	(init_call_expr_arg_iterator): New.
      	(next_call_expr_arg): New.
      	(first_call_expr_arg): New.
      	(more_call_expr_args_p): New.
      	(FOR_EACH_CALL_EXPR_ARG): New.
      
      	* tree.c (tree_code_class_string): Add entries for tcc_vl_exp
      	and tcc_gimple_stmt.
      	(tree_code_size): Update documentation.  Use sizeof (tree) rather
      	than sizeof (char *).
      	(tree_size): Likewise.  Add case for tcc_vl_exp.
      	(tree_node_structure): Add case for tcc_vl_exp.
      	(contains_placeholder_p): Likewise.
      	(substitute_in_expr): Likewise.
      	(substitute_placeholder_in_expr): Likewise.
      	(stabilize_reference_1): Likewise.
      	(build3_stat): Remove logic for CALL_EXPRs.  Replace with assertion
      	to diagnose breakage of this interface for constructing CALL_EXPRs.
      	(build_nt): Add similar assertion here.
      	(build_nt_call_list): New.
      	(simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
      	(iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
      	TREE_CODE_LENGTH.
      	(get_callee_fndecl): Use new CALL_EXPR accessors.
      	(tree_operand_check_failed): Change parameters to pass entire node
      	instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
      	(process_call_operands): New.
      	(build_vl_exp_stat): New.
      	(build_call_list): New.
      	(build_call_nary): New.
      	(build_call_valist): New.
      	(build_call_array): New.
      	(walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      	(call_expr_arglist): New.
      
      	* tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
      	tcc_vl_exp instead of a fixed-size tcc_expression.
      
      	* doc/c-tree.texi (CALL_EXPR): Document new representation and
      	accessors for CALL_EXPRs.
      	(AGGR_INIT_EXPR): Likewise.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* builtins.c (c_strlen): Return NULL_TREE instead of 0.
      	(expand_builtin_nonlocal_goto): Change parameter to be entire
      	CALL_EXPR instead of an arglist.  Use new CALL_EXPR accessors.
      	(expand_builtin_prefetch): Likewise.
      	(expand_builtin_classify_type): Likewise.
      	(mathfn_built_in): Return NULL_TREE instead of 0.
      	(expand_errno_check): Use new CALL_EXPR accessors.
      	(expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
      	Return NULL_RTX instead of 0.
      	(expand_builtin_mathfn_2): Likewise.
      	(expand_builtin_mathfn_3): Likewise.
      	(expand_builtin_interclass_mathfn): Likewise.
      	(expand_builtin_sincos): Likewise.
      	(expand_builtin_cexpi): Likewise.
      	(expand_builtin_int_roundingfn): Likewise.
      	(expand_builtin_int_roundingfn_2): Likewise.
      	(expand_builtin_pow): Likewise.
      	(expand_builtin_powi): Likewise.
      	(expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
      	of arglist, fixing callers appropriately.  Use new CALL_EXPR
      	accessors and constructors.  Return NULL_RTX instead of 0.
      	(expand_builtin_strstr): Likewise.
      	(expand_builtin_strchr): Likewise.
      	(expand_builtin_strrchr): Likewise.
      	(expand_builtin_strpbrk): Likewise.
      	(expand_builtin_memcpy): Likewise.
      	(expand_builtin_mempcpy): Likewise.
      	(expand_builtin_mempcpy_args): New.
      	(expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
      	(expand_builtin_memmove_args): New.
      	(expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
      	(expand_movstr): Likewise.
      	(expand_builtin_strcpy): Likewise.
      	(expand_builtin_strcpy_args): New.
      	(expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
      	(expand_builtin_strncpy): Likewise.
      	(expand_builtin_memset): Likewise.
      	(expand_builtin_memset_args): New.
      	(expand_builtin_bzero): Similarly to expand_builtin_memset.
      	(expand_builtin_memcmp): Likewise.
      	(expand_builtin_strcmp): Likewise.
      	(expand_builtin_strncmp): Likewise.
      	(expand_builtin_strcat): Likewise.
      	(expand_builtin_strncat): Likewise.
      	(expand_builtin_strspn): Likewise.
      	(expand_builtin_strcspn): Likewise.
      	(expand_builtin_args_info): Likewise.
      	(expand_builtin_va_start): Likewise.
      	(gimplify_va_arg_expr): Likewise.
      	(expand_builtin_va_end): Likewise.
      	(expand_builtin_va_copy): Likewise.
      	(expand_builtin_frame_address): Likewise.
      	(expand_builtin_alloca): Likewise.
      	(expand_builtin_bswap): Likewise.
      	(expand_builtin_unop): Likewise.
      	(expand_builtin_fputs): Likewise.
      	(expand_builtin_expect): Likewise.
      	(expand_builtin_fabs): Likewise.
      	(expand_builtin_copysign): Likewise.
      	(expand_builtin_printf): Likewise.
      	(expand_builtin_fprintf): Likewise.
      	(expand_builtin_sprintf): Likewise.
      	(expand_builtin_init_trampoline): Likewise.
      	(expand_builtin_signbit): Likewise.
      	(expand_builtin_fork_or_exec): Likewise.
      	(expand_builtin_sync_operation): Likewise.
      	(expand_builtin_compare_and_swap): Likewise.
      	(expand_builtin_lock_test_and_set): Likewise.
      	(expand_builtin_lock_release): Likewise.
      	(expand_builtin): Likewise.
      	(builtin_mathfn_code): Likewise.
      
      	(fold_builtin_constant_p): Pass call arguments individually instead
      	of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
      	accessors and constructors.  Return NULL_TREE instead of 0.
      	(fold_builtin_expect): Likewise.
      	(fold_builtin_classify_type): Likewise.
      	(fold_builtin_strlen): Likewise.
      	(fold_builtin_nan): Likewise.
      	(integer_valued_real_p): Likewise.
      	(fold_trunc_transparent_mathfn): Likewise.
      	(fold_fixed_mathfn): Likewise.
      	(fold_builtin_cabs): Likewise.
      	(fold_builtin_sqrt): Likewise.
      	(fold_builtin_cbrt): Likewise.
      	(fold_builtin_cos): Likewise.
      	(fold_builtin_cosh): Likewise.
      	(fold_builtin_tan): Likewise.
      	(fold_builtin_sincos): Likewise.
      	(fold_builtin_cexp): Likewise.
      	(fold_builtin_trunc): Likewise.
      	(fold_builtin_floor): Likewise.
      	(fold_builtin_ceil): Likewise.
      	(fold_builtin_round): Likewise.
      	(fold_builtin_int_roundingfn): Likewise.
      	(fold_builtin_bitop): Likewise.
      	(fold_builtin_bswap): Likewise.
      	(fold_builtin_logarithm): Likewise.
      	(fold_builtin_hypot): Likewise.
      	(fold_builtin_pow): Likewise.
      	(fold_builtin_powi): Likewise.
      	(fold_builtin_exponent): Likewise.
      	(fold_builtin_memset): Likewise.
      	(fold_builtin_bzero): Likewise.
      	(fold_builtin_memory_op): Likewise.
      	(fold_builtin_bcopy): Deleted; call site changed to invoke
      	fold_builtin_memory_op directly.
      	(fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
      	(fold_builtin_strncpy): Likewise.
      	(fold_builtin_memcmp): Likewise.
      	(fold_builtin_strcmp): Likewise.
      	(fold_builtin_strncmp): Likewise.
      	(fold_builtin_signbit): Likewise.
      	(fold_builtin_copysign): Likewise.
      	(fold_builtin_isascii): Likewise.
      	(fold_builtin_toascii): Likewise.
      	(fold_builtin_isdigit): Likewise.
      	(fold_builtin_fabs): Likewise.
      	(fold_builtin_abs): Likewise.
      	(fold_builtin_fmin_fmax): Likewise.
      	(fold_builtin_carg): Likewise.
      	(fold_builtin_classify): Likewise.
      	(fold_builtin_unordered_cmp): Likewise.
      
      	(fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
      	New functions split out from fold_builtin_1.
      	(fold_builtin_n): New.
      	(fold_builtin_varargs): New.
      	(fold_builtin): Deleted.  Most callers changed to use fold_call_expr
      	instead.
      	(fold_call_expr): New.
      	(build_function_call_expr): Rewrite to use new helper function.
      	(fold_builtin_call_list): New.
      	(build_call_expr): New.
      	(fold_builtin_call_valist): New.
      	(rewrite_call_expr): New.
      	(validate_arg): New.
      	(validate_arglist): Change parameter to be entire CALL_EXPR instead
      	of an arglist.  Change return type to bool.  Use new CALL_EXPR
      	accessors.
      
      	(fold_builtin_strstr):  Pass call arguments individually instead
      	of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
      	accessors and constructors.  Return NULL_TREE instead of 0.
      	(fold_builtin_strchr): Likewise.
      	(fold_builtin_strrchr): Likewise.
      	(fold_builtin_strpbrk): Likewise.
      	(fold_builtin_strcat): Likewise.
      	(fold_builtin_strncat): Likewise.
      	(fold_builtin_strspn): Likewise.
      	(fold_builtin_strcspn): Likewise.
      	(fold_builtin_fputs): Likewise.
      	(fold_builtin_next_arg): Likewise.
      	(fold_builtin_sprintf): Likewise.
      
      	(expand_builtin_object_size): Use new CALL_EXPR accessors.  Use
      	NULL_RTX instead of 0.
      	(expand_builtin_memory_chk): Likewise.
      	(maybe_emit_chk_warning): Likewise.
      	(maybe_emit_sprintf_chk_warning): Likewise.
      
      	(fold_builtin_object_size): Pass call arguments individually instead
      	of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
      	accessors and constructors.  Return NULL_TREE instead of 0.
      	(fold_builtin_memory_chk): Likewise.
      	(fold_builtin_stxcpy_chk): Likewise.
      	(fold_builtin_strncpy_chk): Likewise.
      	(fold_builtin_strcat_chk): Likewise.
      	(fold_builtin_strcat_chk): Likewise.
      	(fold_builtin_strncat_chk): Likewise.
      	(fold_builtin_sprintf_chk): Likewise.
      	(fold_builtin_snprintf_chk): Likewise.
      	(fold_builtin_printf): Likewise.
      	(fold_builtin_vprintf): Likewise.
      
      	* fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
      	constructors.
      	(operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
      	(make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      	(extract_muldiv_1): Add VL_EXP_CLASS_P case.
      	(fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
      	(fold_unary): Likewise.
      	(fold_binary): Likewise.
      	(fold_ternary): Remove CALL_EXPR case, since they are no longer
      	ternary expressions.
      	(fold): Add logic for tcc_vl_exp.
      	(fold_checksum_tree):  Make it know about tcc_vl_exp.  Use
      	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      	(fold_build3_stat): Add assertion to flag broken interface for
      	constructing CALL_EXPRs.
      	(fold_build_call_list): New.
      	(fold_build_call_list_initializer): New.
      	(tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
      	constructors.
      	(fold_strip_sign_ops): Likewise.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
      	accessors and dump arguments explicitly.
      
      	* tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
      	TREE_CODE_LENGTH.
      	(dump_generic_node): Use new CALL_EXPR accessors and walk arguments
      	explicitly.
      	(print_call_name): Use new CALL_EXPR accessors.
      
      	* print-tree.c (print_node): Add case tcc_vl_exp.  Print
      	CALL_EXPR arguments explicitly instead of as a list.  Use
      	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      
      	* tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
      	(vrp_visit_stmt): Likewise.
      
      	* tree-ssa-loop-im.c (outermost_invariant_loop_expr):  Make it
      	know about tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of
      	TREE_CODE_LENGTH.
      	(force_move_till_expr): Likewise.
      
      	* targhooks.c (default_external_stack_protect_fail): Use
      	build_call_expr instead of build_function_call_expr.
      	(default_hidden_stack_protect_fail): Likewise.
      
      	* tree-complex.c (expand_complex_libcall): Use build_call_expr to
      	build the call.
      
      	* cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
      	and walk arguments explicitly.
      
      	* tree-ssa-loop-niter.c (simplify_replace_tree): Use
      	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      	(expand_simple_operations): Likewise.
      	(infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
      
      	* gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
      	of TREE_CODE_LENGTH.
      	(walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
      
      	* optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
      	instead of TREE_CODE_LENGTH.
      
      	* value_prof.c (tree_ic): Use new CALL_EXPR accessors.
      	(tree_ic_transform): Likewise.
      	(interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
      	parameter instead of arglist.  Fix callers.
      	(tree_stringop_fixed_value): Use new CALL_EXPR accessors.
      	(tree_stringops_transform): Likewise.
      	(tree_indirect_call_to_profile): Likewise.
      	(tree_stringops_values_to_profile): Likewise.
      
      	* tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
      	(eliminate_tail_call): Likewise.
      
      	* ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
      
      	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
      	Use TREE_OPERAND_LENGTH and generalize to handle any number of
      	operands.
      	(instantiate_parameters_1): Can't handle tcc_vl_exp here.
      
      	* omp-low.c (build_omp_barrier): Use build_call_expr.
      	(lower_rec_input_clauses): Likewise.
      	(lower_reduction_clauses): Likewise.
      	(expand_parallel_call): Likewise.
      	(maybe_catch_exception): Likewise.
      	(expand_omp_for_generic): Likewise.
      	(expand_omp_for_static_nochunk): Likewise.
      	(expand_omp_sections): Likewise.
      	(lower_omp_single_simple): Likewise.
      	(lower_omp_single_copy): Likewise.
      	(lower_omp_master): Likewise.
      	(lower_omp_ordered): Likewise.
      	(lower_omp_critical): Likewise.
      
      	* ipa-reference.c (check-call): Use new CALL_EXPR iterator.
      	(scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
      
      	* tree-gimple.c (is_gimple_call_addr): Fix doc.
      	(recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
      	TREE_CODE_LENGTH.  Add tcc_vl_exp case.
      
      	* tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
      	and generalize to handle any number of operands.
      	(chrec_contains_undetermined): Likewise.
      	(tree_contains_chrecs): Likewise.
      	(evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
      
      	* cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
      
      	* tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors.  Use
      	fold_call_expr instead of fold_builtin.
      	(ccp_fold_builtin): Likewise.  Update calls into builtins.c to
      	match declarations there.
      	(fold_stmt): Use new CALL_EXPR constructor and accessors.  Doc
      	updates.
      
      	* tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
      	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      
      	* ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
      	(scan_function): Add case tcc_vl_exp for CALL_EXPR.
      
      	* tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
      	accessors.
      
      	* tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
      	(execute_cse_sincos): Use new CALL_EXPR accessors.
      
      	* tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
      
      	* gimple-low.c (lower_function_body): Use build_call_expr.
      	(lower_builtin_setjmp): Likewise.
      
      	* expr.c (emit_block_move_via_libcall): Use build_call_expr.
      	(set_storage_via_libcall): Likewise.
      	(safe_from_p): Add tcc_vl_exp case.  Use TREE_OPERAND_LENGTH
      	instead of TREE_CODE_LENGTH.
      	(expand_expr_real_1): Use new CALL_EXPR accessors.
      
      	* tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
      	generalize to handle any number of operands.
      	(TB_parent_eq): Likewise.
      
      	* predict.c (expr_expected_value): Use new CALL_EXPR accessors.
      	(strip_builtin_expect): Likewise.
      
      	* function.c (gimplify_parameters): Use build_call_expr.
      
      	* tree-vectorizer.c (vect_is_simple_reduction): Use TREE_OPERAND_LENGTH
      	instead of TREE_CODE_LENGTH.
      
      	* ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
      	(scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
      
      	* tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
      	iterators.
      
      	* gimplify.c (build_stack_save_restore): Use build_call_expr.
      	(gimplify_decl_expr): Likewise.
      	(gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
      	Use new CALL_EXPR iterators.
      	(gimplify_modify_expr_to_memcpy): Use build_call_expr.
      	(gimplify_modify_expr_to_memset): Likewise.
      	(gimplify_variable_sized_compare): Likewise.
      	(gimplify_omp_atomic_fetch_op): Likewise.
      	(gimplify_omp_atomic_pipeline): Likewise.
      	(gimplify_omp_atomic_mutex): Likewise.
      	(gimplify_function_tree): Likewise.
      
      	* calls.c (alloca_call_p): Use new CALL_EXPR accessors.
      	(call_expr_flags): Likewise.
      	(expand_call): Likewise.
      
      	* except.c (expand_builtin_eh_return_data_regno): Pass entire
      	CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR 
              accessors.
      
      	* coverage.c (create_coverage): Use build_call_expr.
      
      	* tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
      	(temp_call_expr_obstack): New.
      	(pool_copy_list): Delete.
      	(temp_copy_call_expr): New.
      	(phi_translate): Add case tcc_vl_exp for CALL_EXPR.  Use new
      	CALL_EXPR accessors.  Get rid of special goo for copying argument
      	lists and use temp_copy_call_expr instead.
      	(valid_in_sets): Add case tcc_vl_exp for CALL_EXPR.  Use new
      	CALL_EXPR accessors.
      	(create_expression_by_pieces): Likewise.  Use build_call_array
      	to construct the result instead of fold_build3.
      	(create_value_expr_from): Add tcc_vl_exp.  Delete special goo for
      	dealing with argument lists.
      	(init_pre): Remove references to expression_node_pool and
      	list_node_pool.  Init temp_call_expr_obstack instead.
      	(fini_pre): Remove references to expression_node_pool and
      	list_node_pool.
      
      	* tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
      	and walk arguments explicitly instead of as a list.
      
      	* tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
      	(mx_register_decls): Likewise.
      	(mudflap_register_call): Likewise.
      	(mudflap_finish_file): Likewise.
      
      	* ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
      	(ipa_callsite_compute_param): Likewise.
      
      	* tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
      	accessors and constructor.
      
      	* tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
      	accessors and constructor.
      	(convert_tramp_reference): Likewise. 
      	(convert_call_expr): Likewise.
      	(finalize_nesting_tree_1): Likewise.
      
      	* tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
      	accessors.
      
      	* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
      
      	* tree-inline.c (initialize_inlined_parameters): Pass entire
      	CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
      	accessors.
      	(estimate_num_insns_1): Use new CALL_EXPR accessors.
      	(expand_call_inline): Tidy up call to initialize_inlined_parameters.
      
      	* tree-vect-transform.c (vect_create_epilog_for_reduction):  Use
      	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      	(vectorizable_reduction): Likewise.
      	(vectorizable_call): Use new CALL_EXPR iterators.
      	(vectorizable_conversion): Use build_call_expr.
      	(vectorizable_operation): Use TREE_OPERAND_LENGTH.
      	(vect_gen_widened_results_half): Use build_call_expr.
      	(vect_setup_realignment): Likewise.
      	(vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
      
      	* tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
      	(pass_through_call): Likewise.
      	(compute_object_sizes): Likewise.  Use fold_call_expr instead of
      	fold_builtin.
      
      	* tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
      	(tree_gen_pow2_profiler): Likewise.
      	(tree_gen_one_value_profiler): Likewise.
      	(tree_gen_ic_func_profiler): Likewise.
      	(tree_gen_average_profiler): Likewise.
      	(tree_gen_ior_profiler): Likewise.
      
      	* tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
      	(find_func_aliases): Use new CALL_EXPR accessors.  Add case
      	tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
      
      	* tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
      	of TREE_CODE_LENGTH.
      
      	* stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
      	of TREE_CODE_LENGTH.
      
      	* convert.c (convert_to_real): Use new CALL_EXPR accessors and
      	constructor.
      	(convert_to_integer): Likewise.
      
      	* tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
      	accessors.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
      	accessors.
      	* config/frv/frv.c (frv_expand_builtin): Likewise.
      	* config/s390/s390.c (s390_expand_builtin): Likewise.
      
      	* config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
      	(sparc_expand_builtin): Use new CALL_EXPR accessors.
      
      	* config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
      	(ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
      	instead of arglist.  Use new CALL_EXPR accessors on it.  Fix callers.
      	(ix86_expand_store_builtin): Likewise.
      	(ix86_expand_unop_builtin): Likewise.
      	(ix86_expand_unop1_builtin): Likewise.
      	(ix86_expand_sse_compare): Likewise.
      	(ix86_expand_sse_comi): Likewise.
      	(ix86_expand_vec_init_builtin): Likewise.
      	(ix86_expand_vec_ext_builtin): Likewise.
      	(ix86_expand_vec_set_builtin): Likewise.
      	(ix86_expand_builtin): Use new CALL_EXPR accessors.
      
      	* config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
      	* config/c4x/c4x.c (c4x_expand_builtin): Likewise.
      
      	* config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
      	instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(iq2000_expand_builtin): Use new CALL_EXPR accessors.
      
      	* config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
      	build_call_expr.
      	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
      	(rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
      	arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(altivec_expand_abs_builtin): Likewise.
      	(rs6000_expand_binop_builtin): Likewise.
      	(altivec_expand_predicate_builtin): Likewise.
      	(altivec_expand_lv_builtin): Likewise.
      	(spe_expand_stv_builtin): Likewise.
      	(altivec_expand_stv_builtin): Likewise.
      	(rs6000_expand_ternop_builtin): Likewise.
      	(altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
      	(altivec_expand_st_builtin): Likewise.
      	(altivec_expand_dst_builtin): Likewise.
      	(altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
      	arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(altivec_expand_vec_set_builtin): Likewise.
      	(altivec_expand_vec_ext_builtin): Likewise.
      	(altivec_expand_builtin): Use new CALL_EXPR accessors.
      	(spe_expand_builtin): Likewise.
      	(spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
      	arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(spe_expand_evsel_builtin): Likewise.
      	(rs6000_expand_builtin): Use new CALL_EXPR accessors.  VCFUX and
      	FCFSX cases must construct whole new CALL_EXPR, not just arglist.
      
      	* config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
      	instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(arm_expand_unop_builtin): Likewise.
      	(arm_expand_builtin): Use new CALL_EXPR accessors.
      
      	* config/mips/mips.c (mips_expand_builtin):  Use new CALL_EXPR
      	accessors.
      
      	* config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire CALL_EXPR
      	instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
      	(bfin_expand_unop_builtin): Likewise.
      	(bfin_expand_builtin): Use new CALL_EXPR accessors.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* c-semantics.c (build_stmt): Add internal diagnostic check.
      
      	* c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
      	accessors.  Print arguments explicitly instead of as a list.
      
      	* c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
      
      	* c-omp.c (c_finish_omp_barrier): Use build_call_expr.
      	(c_finish_omp_flish): Likewise.
      
      	* c-common.c (verify_tree): Use new CALL_EXPR accessors.  Traverse
      	arguments explicitly instead of as a list.  Use TREE_OPERAND_LENGTH
      	instead of TREE_CODE_LENGTH.
      	(check_function_arguments_recurse): Use new CALL_EXPR accessors.
      	(c_warn_unused_result): Likewise.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* cp-tree.def (AGGR_INIT_EXPR): Adjust documentation.
      	Change class to tcc_vl_exp.
      
      	* call.c (build_call): Use build_call_list instead 
      	of build3. 
      	(build_over_call): Likewise.
      	(build_new_method_call): Use build_min_non_dep_call_list 
      	instead of build_min_non_dep.
      
      	* error.c (dump_call_expr_args): New function.
      	(dump_aggr_init_expr_args): New function.
      	(dump_expr) <AGGR_INIT_EXPR, CALL_EXPR, INDIRECT_REF>: Use them. 
      	Update to use new CALL_EXPR and AGGR_INIT_EXPR accessor macros.
      
      	* cvt.c (convert_to_void): Use build_call_array instead
      	of build3; use new AGGR_INIT_EXPR accessor macros.
      
      	* mangle.c (write_expression): Use TREE_OPERAND_LENGTH
      	instead of TREE_CODE_LENGTH.
      
      	* dump.c (cp_dump_tree) <AGGR_INIT_EXPR>: Update to use new
      	AGGR_INIT_EXPR accessor macros.
      
      	* cp-gimplify.c (cp_gimplify_init_expr): Use 
      	AGGR_INIT_EXPR_SLOT to set the slot operand.
      
      	* cp-tree.h (AGGR_INIT_EXPR_FN): New macro.
      	(AGGR_INIT_EXPR_SLOT): New macro.
      	(AGGR_INIT_EXPR_ARG): New macro.
      	(aggr_init_expr_nargs): New macro.
      	(AGGR_INIT_EXPR_ARGP): New macro.
      	(aggr_init_expr_arg_iterator): New.
      	(init_aggr_init_expr_arg_iterator): New.
      	(next_aggr_init_expr_arg): New.
      	(first_aggr_init_expr_arg): New.
      	(more_aggr_init_expr_args_p): New.
      	(FOR_EACH_AGGR_INIT_EXPR_ARG): New.
      	(stabilize_aggr_init): New declaration.
      	(build_min_non_dep_call_list): Likewise.
      
      	* tree.c (process_aggr_init_operands): New function.
      	(build_aggr_init_array) New function.
      	(build_cplus_new): Update to use new CALL_EXPR and
      	AGGR_INIT_EXPR accessor macros. Replace use of build3 with
      	build_aggr_init_array.
      	(build_min_non_dep_call_list) New function.
      	(build_min_nt): Assert input code parameter is not a variable
      	length expression class.
      	(build_min, build_min_non_dep): Likewise.
      	(cp_tree_equal) <CALL_EXPR>: Iterate through the arguments
      	to check for equality instead of recursing. Handle tcc_vl_exp
      	tree code classes.
      	(stabilize_call): Update to only handle CALL_EXPRs, not 
      	AGGR_INIT_EXPRs; use new CALL_EXPR accessor macros.
      	(stabilize_aggr_init): New function.
      	(stabilize_init): Use it.
      
      	* cxx-pretty-print.c (pp_cxx_postfix_expression)
      	<AGGR_INIT_EXPR, CALL_EXPR>: Update to use new CALL_EXPR and
      	AGGR_INIT_EXPR accessor macros and argument iterators.
      	
      	* pt.c (tsubst_copy) <CALL_EXPR>: Replace build_nt with
      	build_vl_exp. Iterate through the operands, recursively 
      	processing each one.
      	(tsubst_copy_and_build) <CALL_EXPR>: Update to use new
      	CALL_EXPR accessor macros.
      	(value_dependent_expression_p) <default>: Handle tcc_vl_exp
      	tree code classes. Use TREE_OPERAND_LENGTH instead of 
      	TREE_CODE_LENGTH.
      
      	* semantics.c (finish_call_expr): Use build_nt_call_list
      	instead of build_nt.
      	(simplify_aggr_init_expr): Update to use new AGGR_INIT_EXPR 
      	accessor macros. Use build_call_array to construct the 
      	CALL_EXPR node instead of build3
      	
      	* decl2.c (build_offset_ref_call_from_tree): Use 
      	build_nt_call_list and build_min_non_dep_call_list instead
      	of build_min_nt and build_min_non_dep.
      
      	* parser.c (cp_parser_postfix_expression) <CPP_OPEN_PAREN>:
      	Use build_nt_call_list instead of build_min_nt.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* java-tree.h (BUILD_MONITOR_ENTER): Use build_call_nary instead
      	of build3.
      	(BUILD_MONITOR_EXIT): Likewise.
      
      	* java-gimplify.c (java_gimplify_component_ref): Use build_call_expr.
      	(java_gimplify_modify_expr): Likewise.
      
      	* class.c (cache_this_class_ref): Use build_call_expr.
      	(build_static_field_ref): Likewise.
      	(emit_indirect_register_classes): Likewise.
      	(emit_register_classes): Likewise.
      
      	* resource.c (write_resource_constructor): Use build_call_expr.
      
      	* builtins.c (builtin_creator_function): Change interpretation of
      	the second parameter to be the whole CALL_EXPR instead of the arglist.
      	(max_builtin): Tweak parameter list.  Use new CALL_EXPR accessors.
      	(min_builtin): Likewise.
      	(abs_builtin): Likewise.
      	(java_build_function_call_expr): Likewise.
      	(convert_real): Likewise.
      	(UNMARSHAL3): Likewise.
      	(UNMARSHAL4): Likewise.
      	(UNMARSHAL5): Likewise.
      	(build_arglist_for_builtin): Delete.  Fix callers to use
      	build_call_expr instead.
      	(putObject_builtin): Tweak parameter list.  Use new CALL_EXPR
      	accessors.
      	(compareAndSwapInt_builtin): Likewise.
      	(compareAndSwapLong_builtin): Likewise.
      	(compareAndSwapObject_builtin): Likewise.
      	(putVolatile_builtin): Likewise.
      	(getVolatile_builtin): Likewise.
      	(VMSupportsCS8_builtin): Likewise.
      	(check_for_builtin): Pass entire CALL_EXPR to builtin expander
      	instead of arglist.
      
      	* expr.c (build_java_athrow): Use build_call_nary instead of build3.
      	(build_java_throw_out_of_bounds_exception): Likewise.
      	(java_check_reference): Likewise.
      	(build_java_arraystore_check): Likewise.
      	(build_newarray): Likewise.
      	(build_anewarray): Likewise.
      	(expand_java_multinewarray): Use build_call_list instead of build3.
      	(build_java_monitor): Use build_call_nary instead of build3.
      	(java_create_object): Likewise.
      	(expand_java_NEW): Likewise.
      	(build_instanceof): Likewise.
      	(expand_java_CHECKCAST): Likewise.
      	(build_java_soft_divmod): Likewise.
      	(build_java_binop): Likewise.
      	(build_field_ref): Likewise.
      	(build_class_init): Likewise.
      	(rewrite_arglist_getcaller): Use build_call_expr.
      	(build_invokeinterface):  Use build_call_nary instead of build3.
      	(expand_invoke): Use build_call_list instead of build3.
      	(build_jni_stub): Use build_call_nary, build_call_list, or
      	build_call_expr instead	of build3.
      	(expand_java_field_op): Use build_call_expr instead of build3.
      	(force_evaluation_order): Use new CALL_EXPR accessors.
      
      	* lang.c (java_get_callee_fndecl): Use new CALL_EXPR accessors.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
      	(objc_get_callee_fndecl): Likewise.
      
      2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
      	    Brooks Moses  <brooks.moses@codesourcery.com>
      	    Lee Millward  <lee.millward@codesourcery.com>
      
      	* trans-expr.c (gfc_conv_power_op): Use build_call_expr.
      	(gfc_conv_string_tmp): Likewise.
      	(gfc_conv_concat_op): Likewise.
      	(gfc_build_compare_string): Likewise.
      	(gfc_conv_function_call): Use build_call_list instead of build3.
      
      	* trans-array.c (gfc_trans_allocate_array_storage): Use
      	build_call_expr.
      	(gfc_grow_array): Likewise.
      	(gfc_trans_array_ctor_element): Likewise.
      	(gfc_trans_array_constructor_value): Likewise.
      	(gfc_array_allocate): Likewise.
      	(gfc_array_deallocate): Likewise.
      	(gfc_trans_auto_array_allocation): Likewise.
      	(gfc_trans_dummy_array_bias): Likewise.
      	(gfc_conv_array_parameter): Likewise.
      	(gfc_trans_dealloc_allocated): Likewise.
      	(gfc_duplicate_allocatable): Likewise.
      
      	* trans-openmp.c (gfc_trans_omp_barrier): Use build_call_expr.
      	(gfc_trans_omp_flush): Likewise.
      
      	* trans-stmt.c (gfc_conv_elementel_dependencies): Use build_call_expr.
      	(gfc_trans_pause): Likewise.
      	(gfc_trans_stop): Likewise.
      	(gfc_trans_character_select): Likewise.
      	(gfc_do_allocate): Likewise.
      	(gfc_trans_assign_need_temp): Likewise.
      	(gfc_trans_pointer_assign_need_temp): Likewise.
      	(gfc_trans_forall_1): Likewise.
      	(gfc_trans_where_2): Likewise.
      	(gfc_trans_allocate): Likewise.
      	(gfc_trans_deallocate): Likewise.
      
      	* trans.c (gfc_trans_runtime_check): Use build_call_expr.
      
      	* trans-io.c (gfc_trans_open): Use build_call_expr.
      	(gfc_trans_close): Likewise.
      	(build_filepos): Likewise.
      	(gfc_trans_inquire): Likewise.
      	(NML_FIRST_ARG): Delete.
      	(NML_ADD_ARG): Delete.
      	(transfer_namelist_element): Use build_call_expr.
      	(build_dt): Likewise.
      	(gfc_trans_dt_end): Likewise.
      	(transfer_expr): Likewise.
      	(transfer_array-desc): Likewise.
      
      	* trans-decl.c (gfc_generate_function_code): Use build_call_expr.
      	(gfc_generate_constructors): Likewise.
      
      	* trans-intrinsic.c (gfc_conv_intrinsic_ctime): Use build_call_expr.
      	(gfc_conv_intrinsic_fdate): Likewise.
      	(gfc_conv_intrinsic_ttynam): Likewise.
      	(gfc_conv_intrinsic_array_transfer): Likewise.
      	(gfc_conv_associated): Likewise.
      	(gfc_conv_intrinsic_si_kind): Likewise.
      	(gfc_conv_intrinsic_trim): Likewise.
      	(gfc_conv_intrinsic_repeat: Likewise.
      	(gfc_conv_intrinsic_iargc): Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122018 138bc75d-0d04-0410-961f-82ee72b054a4
      c2f47e15
  21. 20 Sep, 2006 1 commit
  22. 15 Jun, 2006 1 commit
    • mmitchel's avatar
      2006-06-14 Mark Mitchell <mark@codesourcery.com> · d377303f
      mmitchel authored
      	PR c++/26559
      	* c-common.h (c_finish_omp_atomic): Adjust declaration.
      	* c-omp.c (c_finish_omp_atomic): Return the expression to perform,
      	rather than calling add_stmt on it.
      	* c-parser.c (c_parser_omp_atomic): Adjust accordingly.
      
      2006-06-14  Mark Mitchell  <mark@codesourcery.com>
      
      	PR c++/26559
      	* pt.c (tsubst_expr): Use finish_omp_atomic.
      	(value_dependent_expression_p): All CALL_EXPRs are dependent.
      	* semantics.c (finish_omp_atomic): Rework to use standard
      	paradigms for handling non-dependent expressions.
      
      2006-06-14  Mark Mitchell  <mark@codesourcery.com>
      
      	PR c++/26559
      	* g++.dg/template/builtin1.C: New test.
      	* g++.dg/gomp/tpl-atomic-2.C: Remove XFAIL.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114665 138bc75d-0d04-0410-961f-82ee72b054a4
      d377303f
  23. 26 Jan, 2006 1 commit
    • dnovillo's avatar
      · 55d6e7cd
      dnovillo authored
      	* tree.h (TREE_RANGE_CHECK): Fix range predicate.
      	(TREE_BLOCK): Add call to EXPR_CHECK.
      
      
      	PR 25886
      	* tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
      	* tree-pretty-print.c (dump_omp_clause): Extract from ...
      	(dump_omp_clauses): ... here.
      	(dump_generic_node): Handle OMP_CLAUSE.
      	* tree.c (omp_clause_num_ops): New.
      	(omp_clause_code_name): New.
      	(tree_code_size): Handle OMP_CLAUSE.
      	(tree_size): Likewise.
      	(make_node): Document handling of OMP_CLAUSE.
      	(tree_node_structure): Handle OMP_CLAUSE.
      	(omp_clause_check_failed): New.
      	(omp_clause_range_check_failed): New.
      	(omp_clause_operand_check_failed): New.
      	(build_omp_clause): New.
      	(walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
      	* tree.h (enum omp_clause_code): Declare.
      	(OMP_CLAUSE_SUBCODE): Define.
      	(OMP_CLAUSE_RANGE_CHECK): Define.
      	(OMP_CLAUSE_ELT_CHECK): Define.
      	(omp_clause_check_failed): Declare.
      	(omp_clause_operand_check_failed): Declare.
      	(omp_clause_range_check_failed): Declare.
      	(OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
      	(OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
      	(OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
      	(OMP_CLAUSE_LASTPRIVATE): Likewise.
      	(OMP_CLAUSE_IF_EXPR): Likewise.
      	(OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
      	(OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
      	(OMP_CLAUSE_REDUCTION_CODE): Likewise.
      	(OMP_CLAUSE_REDUCTION_INIT): Likewise.
      	(OMP_CLAUSE_REDUCTION_MERGE): Likewise.
      	(OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
      	Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
      	(OMP_CLAUSE_SCHEDULE_KIND): Likewise.
      	(OMP_CLAUSE_DEFAULT_KIND): Likewise.
      	(OMP_CLAUSE_CODE): Define.
      	(OMP_CLAUSE_SET_CODE): Define.
      	(OMP_CLAUSE_CODE): Define.
      	(OMP_CLAUSE_OPERAND): Define.
      	(struct tree_omp_clause): Declare.
      	(union tree_node): Add field 'omp_clause'.
      	* treestruct.def (TS_OMP_CLAUSE): Define.
      	* tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
      	OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
      	OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
      	OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
      	OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
      	OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
      	(OMP_CLAUSE): Define.
      	* print-tree.c (print_node): Handle OMP_CLAUSE.
      	* omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
      	* c-typeck.c: Likewise.
      	* gimplify.c: Likewise.
      	* c-omp.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-inline.c: Likewise.
      	* c-parser.c: Likewise.
      	* gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
      	clauses.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110243 138bc75d-0d04-0410-961f-82ee72b054a4
      55d6e7cd
  24. 18 Jan, 2006 1 commit
    • dnovillo's avatar
      2006-01-18 Richard Henderson <rth@redhat.com> · 1e8e9920
      dnovillo authored
      	    Jakub Jelinek  <jakub@redhat.com>
                  Diego Novillo  <dnovillo@redhat.com>
      
      	* libgomp: New directory.
      	* Makefile.def: Add target_module libgomp.
      	* Makefile.in: Regenerate.
      	* configure.in (target_libraries): Add target-libgomp.
      	* configure: Regenerate.
      
      
      contrib/
      
      2006-01-18  Richard Henderson  <rth@redhat.com>
                  Diego Novillo  <dnovillo@redhat.com>
      
      	* gcc_update (files_and_dependencies): Add libgomp files.
      
      
      gcc/
      
      2006-01-18  Richard Henderson  <rth@redhat.com>
                  Aldy Hernandez  <aldyh@redhat.com>
      	    Jakub Jelinek  <jakub@redhat.com>
                  Diego Novillo  <dnovillo@redhat.com>
      
      	* omp-low.c: New file.
      	* c-omp.c: New file.
      
      2006-01-18  Richard Henderson  <rth@redhat.com>
      	    Jakub Jelinek  <jakub@redhat.com>
                  Diego Novillo  <dnovillo@redhat.com>
      
      	* doc/invoke.texi: Document -fopenmp.
      	* tree-dump.h (debug_function): Declare.
      
      	* hooks.c (hook_bool_tree_bool_false): New function.
      	(hook_tree_tree_null): Remove.
      	(hook_tree_tree_tree_null): New.
      	* hooks.h: Update to match.
      
      	* tree-pretty-print.c (debug_tree_chain): New.
      	(print_generic_expr): Handle TDF_CHAIN.
      	(dump_generic_node): Handle BLOCK.
      	Do not abort with incomplete SWITCH_EXPRs.
      	Do not dump body of an OpenMP directive if TDF_SLIM is given.
      	<case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
      	print space after directive name.
      	<OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
      	Handle OMP_MASTER and OMP_ORDERED.
      	Handle printing of OMP_BODY just in one place, goto
      	dump_omp_body in the rest of OMP_* nodes that have
      	OMP_BODY.
      	Don't handle clause nodes here.  Update omp statements to
      	use dump_omp_clauses.
      	Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
      	OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
      	OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
      	GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
      	GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
      	GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
      	Adjust output for GOMP_PARALLEL.
      	(dump_omp_clauses): New.
      	(print_declaration): Dump DECL_VALUE_EXPR.
      	(op_symbol_1): Split out of op_symbol.
      	(dumping_stmts): Remove.  Update all users.
      
      	* cgraph.c (cgraph_analyze_queue): New.
      	(cgraph_add_new_function): New.
      	* cgraph.h (cgraph_analyze_queue): Declare.
      	(cgraph_add_new_function): Declare.
      	(cgraph_lower_function): Remove.
      
      	* tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
      	nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
      	and TYPE_P nodes in its default clause.
      	(empty_body_p): New.
      	(tree_range_check_failed): New.
      	(build5_stat): New.
      
      	* tree.h (OMP_CLAUSE_REDUCTION_INIT,
      	OMP_CLAUSE_REDUCTION_MERGE,
      	OMP_CLAUSE_REDUCTION_PLACEHOLDER,
      	OMP_CLAUSE_PRIVATE_DEBUG,
      	OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
      	OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
      	OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
      	OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
      	OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
      	OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
      	OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
      	OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
      	OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
      	OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
      	OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
      	OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
      	OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
      	OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
      	(TREE_RANGE_CHECK): New.
      	(empty_body_p): Declare.
      	(enum omp_clause_default_kind): New.
      	(build_string_literal): Declare.
      	(enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
      	(build5_stat, build5): Declare.
      
      	* tree-pass.h (TDF_CHAIN): Define.
      	* tree-pass.h (PROP_gimple_lomp): Define.
      	(pass_lower_omp): Declare.
      
      	* diagnostic.h (debug_tree_chain): Declare.
      
      	* builtins.c (get_builtin_sync_mode): Use 0 as last argument to
      	mode_for_size.
      	(expand_builtin): Handle sync BUILT_IN_*_16 builtins.
      	* builtins.c (build_string_literal): Make extern.
      
      	* gcc.c (include_spec_function): New.
      	(static_spec_functions): Add it.
      	(main): Move load of libgomp.spec ...
      	(LINK_COMMAND_SPEC): ... here.
      	(link_gomp_spec): New.
      	(static_specs): Include it.
      	(LINK_COMMAND_SPEC): Add link_gomp.
      	(GOMP_SELF_SPECS): New.
      	(driver_self_specs): Include it.
      	(switch_matches): Don't mark inline.
      	(main): Load libgomp.spec.
      
      	* tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
      	OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
      	and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
      
      	* tree-gimple.h (enum omp_parallel): Declare.
      	(determine_parallel_type): Declare.
      	(omp_firstprivatize_variable): Declare.
      	(omp_reduction_init): Declare.
      	(diagnose_omp_structured_block_errors): Declare.
      	(struct walk_stmt_info): Add want_return_expr.
      	(struct walk_stmt_info): Add want_bind_expr, want_locations.
      	(find_omp_clause): Declare.
      	(insert_field_into_struct): Declare.
      	(struct walk_stmt_info): Move from tree-nested.c
      	(walk_stmts): Declare.
      
      	* c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
      	to 200505.
      
      	* cgraphunit.c (cgraph_lower_function): Make static.
      	(cgraph_finalize_pending_functions): New.
      	(cgraph_finalize_function): Call it.
      	(cgraph_finalize_compilation_unit): Likewise.
      
      	* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
      	BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
      	(BT_FN_UINT_UINT): New.
      	(DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
      	DEF_FUNCTION_TYPE_VAR_4): Document.
      	(BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
      	BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
      	BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
      	BT_FN_VOID_OMPFN_PTR_UINT_UINT,
      	BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
      	BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
      	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
      	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
      
      	* builtins.def: Update DEF_BUILTIN comment to include COND argument.
      	Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
      	into separate files.
      	(DEF_GOMP_BUILTIN): New.
      	(BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
      	BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
      	BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
      	BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
      	BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
      	BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
      	BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
      	BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
      	BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
      	BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
      	BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
      	BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
      	BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
      	BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
      	BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
      	BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
      	BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
      	BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
      	BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
      	BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
      	BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
      	BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
      	BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
      	BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
      	* sync-builtins.def: New file, moved from builtins.def.
      	* omp-builtins.def: New file, moved from builtins.def.
      
      	* c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
      
      	* gimple-low.c (lower_function_body): Clear data.
      	(lower_stmt): Do not handle COMPOUND_EXPR.
      	Remove call to print_node_brief.
      
      	* c-tree.h (c_finish_omp_clauses): New prototype.
      	(C_DECL_THREADPRIVATE_P): Define.
      	(lookup_name_no_remap, c_omp_remap_private): Remove
      	(c_begin_omp_parallel, c_finish_omp_parallel): Update.
      	(check_for_loop_decls): Update decl.
      	(lookup_name_no_remap, c_omp_remap_private): Declare.
      	(build_indirect_ref, build_modify_expr, pushdecl,
      	pushdecl_top_level): Move to c-common.h.
      
      	* dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
      	before the switch, but just in the 2 places that need it.
      
      	* c-decl.c (diagnose_mismatched_decls): Do not check for
      	mismatched thread-local attributes when OLDDECL is marked
      	threadprivate and NEWDECL has no thread-local attributes.
      	(merge_decls): Merge C_DECL_THREADPRIVATE_P.
      	(c_gimple_diagnostics_recursively): Rename from
      	c_warn_unused_result_recursively.  Invoke
      	diagnose_omp_structured_block_errors.
      	(check_for_loop_decls): Return a singular decl found.
      
      	* langhooks.c (lhd_omp_predetermined_sharing): Return
      	OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
      	(lhd_omp_firstprivatize_type_sizes): New.
      	(lhd_omp_assignment): New.
      	(lhd_omp_predetermined_sharing): New.
      
      	* langhooks.h (struct gimplify_omp_ctx): Forward declare.
      	(struct lang_hooks_for_types): Add
      	omp_firstprivatize_type_sizes, omp_privatize_by_reference,
      	omp_predetermined_sharing, omp_disregard_value_expr,
      	omp_private_debug_clause, omp_clause_default_ctor,
      	omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
      
      	(c_finish_omp_clauses): New.
      	(c_finish_bc_stmt): Diagnose break within omp for.
      	(c_begin_omp_parallel, c_finish_omp_parallel): New.
      	(build_unary_op): Return error_mark after reporting
      	a readonly_error.
      	(build_modify_expr): Likewise.
      
      	* gimplify.c: Include optabs.h and pointer-set.h.
      	(enum gimplify_omp_var_data): Declare.
      	(struct gimplify_omp_ctx): Declare.
      	(struct gimplify_ctx): Add fields prev_context, combined_pre_p
      	and combined_ctxp.
      	(gimplify_ctxp, gimplify_omp_ctxp): New local variables.
      	(push_gimplify_context, pop_gimplify_context): Allow nesting.
      	(splay_tree_compare_decl_uid): New.
      	(new_omp_context): New.
      	(delete_omp_context): New.
      	(gimple_add_tmp_var): Call omp_add_variable.
      	(gimplify_bind_expr): Likewise.
      	(gimplify_var_or_parm_decl): If omp_notice_variable returned
      	true, disregard DECL_VALUE_EXPR on the decl if any.
      	(gimplify_expr_in_ctx): New.
      	(omp_firstprivatize_variable, omp_firstprivatize_type_sizes
      	omp_add_variable, omp_notice_variable, omp_is_private
      	gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
      	gimplify_adjust_omp_clauses, gimplify_omp_parallel
      	gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
      	gimplify_omp_atomic_fetch_op, goa_stabilize_expr
      	gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
      	gimplify_omp_atomic): New.
      	(gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
      	OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
      	OMP_CRITICAL and OMP_ATOMIC.
      	(gimplify_body): Verify gimplify_ctxp is empty after gimplification.
      
      	* c-pragma.h (enum pragma_kind): Add
      	PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
      	PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
      	PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
      	PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
      	PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
      	PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
      	PRAGMA_OMP_THREADPRIVATE.
      
      	* tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
      	OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
      	OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
      	OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
      	OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
      	OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
      	OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
      	OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
      	OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
      
      	* print-tree.c (print_node): Dump DECL_VALUE_EXPR.
      
      	* tree-ssa-dce.c (find_control_dependence): Do not assume that
      	ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
      
      	* tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
      	OpenMP directives.
      	(struct nesting_info): Add field_map,
      	suppress_expansion, debug_var_chain.
      	(create_nesting_tree): Initialize them.
      	(lookup_field_for_decl): Use field_map.
      	(get_nonlocal_debug_decl, get_local_debug_decl): New.
      	(convert_local_omp_clauses): New.
      	(finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
      	(walk_body): Split out of walk_function.
      	(convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
      	(convert_nonlocal_reference): Handle omp statements.
      	(convert_local_reference): Likewise.
      	(unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
      	(unnest_nesting_tree): New.
      	(lower_nested_functions): Call it.
      	(insert_field_into_struct): Make extern.
      	(struct walk_stmt_info): Move to tree-gimple.h.
      	(walk_stmts): Make extern.
      
      	* omp-builtins.def: New file.
      
      	* tree-iterator.c (expr_only): Clarify comment.
      
      	* c-common.h (pushdecl_top_level, pushdecl,
      	build_modify_expr, build_indirect_ref,
      	c_finish_omp_master, c_finish_omp_critical,
      	c_finish_omp_ordered, c_finish_omp_barrier,
      	c_finish_omp_atomic, c_finish_omp_flush,
      	c_finish_omp_for, c_split_parallel_clauses,
      	omp_clause_default_kind, c_omp_sharing_predetermined,
      	c_omp_remap_decl): Declare.
      
      	* Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
      	(OBJS-common): Add omp-low.o.
      	(c-omp.o, omp-low.o): Add.
      	(gimplify.o): Add dependency on $(OPTABS_H).
      	(GTFILES): Add omp-low.c.
      	(gt-stringpool.h): Add.
      
      	* tree-cfg.c (set_bb_for_stmt): Do not update the
      	block-to-labels map if we are currently expanding to RTL.
      	(tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
      	checks.
      	Handle IDENTIFIER_NODE.
      	(tree_verify_flow_info): Do not ICE when emitting error
      	messages about invalid labels.
      	(dump_function_to_file): Reset CFUN before emitting the body
      	of the function.
      	(debug_function): New.
      
      	* passes.c (init_optimization_passes): Schedule
      	pass_lower_omp.
      
      	* langhooks-def.h (lhd_omp_predetermined_sharing,
      	lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
      	Declare.
      	(LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
      	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
      	(LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
      	LANG_HOOKS_OMP_PREDETERMINED_SHARING,
      	LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
      	LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
      	LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
      	LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
      	LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
      	LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
      	(LANG_HOOK_DECLS): Use them.
      
      
      2006-01-18  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
      	    Richard Henderson  <rth@redhat.com>
      	    Jakub Jelinek  <jakub@redhat.com>
                  Diego Novillo  <dnovillo@redhat.com>
      
      	* c-parser.c (pragma_omp_clause): Define.
      	(c_parser_declaration_or_fndef): Document OpenMP syntax.
      	(c_parser_compound_statement): Likewise.
      	(c_parser_statement): Likewise.
      	(c_parser_pragma): Handle omp pragmas.
      	(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
      	OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
      	(c_parser_omp_clause_name, check_no_duplicate_clause,
      	c_parser_omp_variable_list,
      	c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
      	c_parser_omp_clause_copyprivate,
      	c_parser_omp_clause_default,
      	c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
      	c_parser_omp_clause_lastprivate,
      	c_parser_omp_clause_nowait,
      	c_parser_omp_clause_num_threads,
      	c_parser_omp_clause_ordered, c_parser_omp_clause_private,
      	c_parser_omp_clause_reduction,
      	c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
      	c_parser_omp_all_clauses, c_parser_omp_structured_block,
      	c_parser_omp_atomic, c_parser_omp_barrier,
      	c_parser_omp_critical, c_parser_omp_flush,
      	c_parser_omp_for_loop, c_parser_omp_for,
      	c_parser_omp_master, c_parser_omp_ordered,
      	c_parser_omp_sections_scope, c_parser_omp_sections,
      	c_parser_omp_parallel, c_parser_omp_single,
      	c_parser_omp_construct, c_parser_omp_threadprivate): New.
      	* c-pragma.c (init_pragma): Do omp pragma registration here.
      	* c.opt (fopenmp): New flag.
      
      
      2006-01-18  Eric Christopher  <echristo@apple.com>
      
      	* gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
      	* config/darwin.h (GOMP_SELF_SPECS): Define.
      
      
      testsuite/
      
      2006-01-18  Richard Henderson  <rth@redhat.com>
                  Aldy Hernandez  <aldyh@redhat.com>
      	    Jakub Jelinek  <jakub@redhat.com>
                  Diego Novillo  <dnovillo@redhat.com>
                  Uros Bizjak  <uros@kss-loka.si>
      
      	* testsuite/gcc.dg/gomp: New directory.
      
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109902 138bc75d-0d04-0410-961f-82ee72b054a4
      1e8e9920