Changes in / [7416d46a:f792cb8]
- Files:
-
- 177 added
- 219 deleted
- 71 edited
-
Jenkinsfile (modified) (2 diffs)
-
doc/NDA/Aaron_Moss-Rob_Schluntz-Thierry_Delisle.pdf (deleted)
-
doc/NDA/Cover_Letter.pdf (deleted)
-
doc/NDA/Daniel_Caccamo.pdf (deleted)
-
doc/NDA/NDA.pdf (deleted)
-
doc/NDA/Neda_Paryab.pdf (deleted)
-
doc/NDA/Peter_Buhr-30-jul-2014.pdf (deleted)
-
doc/aaron_comp_II/.gitignore (added)
-
doc/aaron_comp_II/Efficient Type Resolution in Cforall.pptx (added)
-
doc/aaron_comp_II/Makefile (added)
-
doc/aaron_comp_II/comp_II.tex (added)
-
doc/aaron_comp_II/conversion_dag.eps (added)
-
doc/aaron_comp_II/conversion_dag.odg (added)
-
doc/aaron_comp_II/conversion_dag.png (added)
-
doc/aaron_comp_II/resolution_dag.eps (added)
-
doc/aaron_comp_II/resolution_dag.odg (added)
-
doc/aaron_comp_II/resolution_dag.png (added)
-
doc/aaron_comp_II/resolution_dag2.odg (added)
-
doc/aaron_comp_II/resolution_dag2.png (added)
-
doc/bibliography/cfa.bib (modified) (20 diffs)
-
doc/generic_types/.gitignore (added)
-
doc/generic_types/ACM-Reference-Format.bst (added)
-
doc/generic_types/Makefile (added)
-
doc/generic_types/acmart-pacmpl-template.tex (added)
-
doc/generic_types/acmart.cls (added)
-
doc/generic_types/evaluation/.gitignore (added)
-
doc/generic_types/evaluation/Makefile (added)
-
doc/generic_types/evaluation/bench.h (added)
-
doc/generic_types/evaluation/bench.hpp (added)
-
doc/generic_types/evaluation/c-bench.c (added)
-
doc/generic_types/evaluation/c-pair.c (added)
-
doc/generic_types/evaluation/c-pair.h (added)
-
doc/generic_types/evaluation/c-print.c (added)
-
doc/generic_types/evaluation/c-print.h (added)
-
doc/generic_types/evaluation/c-stack.c (added)
-
doc/generic_types/evaluation/c-stack.h (added)
-
doc/generic_types/evaluation/cfa-bench.c (added)
-
doc/generic_types/evaluation/cfa-pair.c (added)
-
doc/generic_types/evaluation/cfa-pair.h (added)
-
doc/generic_types/evaluation/cfa-print.c (added)
-
doc/generic_types/evaluation/cfa-print.h (added)
-
doc/generic_types/evaluation/cfa-stack.c (added)
-
doc/generic_types/evaluation/cfa-stack.h (added)
-
doc/generic_types/evaluation/cpp-bench.cpp (added)
-
doc/generic_types/evaluation/cpp-pair.hpp (added)
-
doc/generic_types/evaluation/cpp-print.hpp (added)
-
doc/generic_types/evaluation/cpp-stack.hpp (added)
-
doc/generic_types/evaluation/cpp-vbench.cpp (added)
-
doc/generic_types/evaluation/cpp-vprint.hpp (added)
-
doc/generic_types/evaluation/cpp-vstack.cpp (added)
-
doc/generic_types/evaluation/cpp-vstack.hpp (added)
-
doc/generic_types/evaluation/object.hpp (added)
-
doc/generic_types/evaluation/timing.dat (added)
-
doc/generic_types/evaluation/timing.gp (added)
-
doc/generic_types/evaluation/timing.xlsx (added)
-
doc/generic_types/generic_types.tex (added)
-
doc/generic_types/mail (added)
-
doc/generic_types/refereeReport.txt (added)
-
doc/nda/Aaron_Moss-Rob_Schluntz-Thierry_Delisle.pdf (added)
-
doc/nda/Cover_Letter.pdf (added)
-
doc/nda/Daniel_Caccamo.pdf (added)
-
doc/nda/NDA.pdf (added)
-
doc/nda/Neda_Paryab.pdf (added)
-
doc/nda/Peter_Buhr-30-jul-2014.pdf (added)
-
doc/papers/Baker82.pdf (added)
-
doc/papers/Bilson.pdf (added)
-
doc/papers/Bilson03.pdf (added)
-
doc/papers/Breuel.pdf (added)
-
doc/papers/Cormack81.pdf (added)
-
doc/papers/CormackWright90.pdf (added)
-
doc/papers/Ditchfield92.pdf (added)
-
doc/papers/Grossman06.pdf (added)
-
doc/papers/Jones97.pdf (added)
-
doc/papers/Laufer92.pdf (added)
-
doc/papers/OOPSLA17/.gitignore (deleted)
-
doc/papers/OOPSLA17/ACM-Reference-Format.bst (deleted)
-
doc/papers/OOPSLA17/Makefile (deleted)
-
doc/papers/OOPSLA17/acmart-pacmpl-template.tex (deleted)
-
doc/papers/OOPSLA17/acmart.cls (deleted)
-
doc/papers/OOPSLA17/evaluation/.gitignore (deleted)
-
doc/papers/OOPSLA17/evaluation/Makefile (deleted)
-
doc/papers/OOPSLA17/evaluation/bench.h (deleted)
-
doc/papers/OOPSLA17/evaluation/bench.hpp (deleted)
-
doc/papers/OOPSLA17/evaluation/c-bench.c (deleted)
-
doc/papers/OOPSLA17/evaluation/c-pair.c (deleted)
-
doc/papers/OOPSLA17/evaluation/c-pair.h (deleted)
-
doc/papers/OOPSLA17/evaluation/c-print.c (deleted)
-
doc/papers/OOPSLA17/evaluation/c-print.h (deleted)
-
doc/papers/OOPSLA17/evaluation/c-stack.c (deleted)
-
doc/papers/OOPSLA17/evaluation/c-stack.h (deleted)
-
doc/papers/OOPSLA17/evaluation/cfa-bench.c (deleted)
-
doc/papers/OOPSLA17/evaluation/cfa-pair.c (deleted)
-
doc/papers/OOPSLA17/evaluation/cfa-pair.h (deleted)
-
doc/papers/OOPSLA17/evaluation/cfa-print.c (deleted)
-
doc/papers/OOPSLA17/evaluation/cfa-print.h (deleted)
-
doc/papers/OOPSLA17/evaluation/cfa-stack.c (deleted)
-
doc/papers/OOPSLA17/evaluation/cfa-stack.h (deleted)
-
doc/papers/OOPSLA17/evaluation/cpp-bench.cpp (deleted)
-
doc/papers/OOPSLA17/evaluation/cpp-pair.hpp (deleted)
-
doc/papers/OOPSLA17/evaluation/cpp-print.hpp (deleted)
-
doc/papers/OOPSLA17/evaluation/cpp-stack.hpp (deleted)
-
doc/papers/OOPSLA17/evaluation/cpp-vbench.cpp (deleted)
-
doc/papers/OOPSLA17/evaluation/cpp-vprint.hpp (deleted)
-
doc/papers/OOPSLA17/evaluation/cpp-vstack.cpp (deleted)
-
doc/papers/OOPSLA17/evaluation/cpp-vstack.hpp (deleted)
-
doc/papers/OOPSLA17/evaluation/object.hpp (deleted)
-
doc/papers/OOPSLA17/evaluation/timing.dat (deleted)
-
doc/papers/OOPSLA17/evaluation/timing.gp (deleted)
-
doc/papers/OOPSLA17/evaluation/timing.xlsx (deleted)
-
doc/papers/OOPSLA17/generic_types.tex (deleted)
-
doc/papers/OOPSLA17/mail (deleted)
-
doc/papers/OOPSLA17/refereeReport.txt (deleted)
-
doc/papers/Ziegler92.pdf (added)
-
doc/papers/concurrency/.gitignore (deleted)
-
doc/papers/concurrency/Paper.tex (deleted)
-
doc/papers/concurrency/annex/local.bib (deleted)
-
doc/papers/concurrency/build/bump_ver.sh (deleted)
-
doc/papers/concurrency/figures/dependency.fig (deleted)
-
doc/papers/concurrency/figures/ext_monitor.fig (deleted)
-
doc/papers/concurrency/figures/int_monitor.fig (deleted)
-
doc/papers/concurrency/figures/monitor.fig (deleted)
-
doc/papers/concurrency/figures/monitor_structs.fig (deleted)
-
doc/papers/concurrency/figures/system.fig (deleted)
-
doc/papers/concurrency/notes/cor-thread-traits.c (deleted)
-
doc/papers/concurrency/notes/lit-review.md (deleted)
-
doc/papers/concurrency/notes/notes.md (deleted)
-
doc/papers/concurrency/style/cfa-format.tex (deleted)
-
doc/papers/concurrency/style/style.tex (deleted)
-
doc/papers/concurrency/version (deleted)
-
doc/papers/general/.gitignore (deleted)
-
doc/papers/general/Paper.tex (deleted)
-
doc/papers/general/evaluation/.gitignore (deleted)
-
doc/papers/general/evaluation/bench.h (deleted)
-
doc/papers/general/evaluation/bench.hpp (deleted)
-
doc/papers/general/evaluation/c-bench.c (deleted)
-
doc/papers/general/evaluation/c-pair.c (deleted)
-
doc/papers/general/evaluation/c-pair.h (deleted)
-
doc/papers/general/evaluation/c-print.c (deleted)
-
doc/papers/general/evaluation/c-print.h (deleted)
-
doc/papers/general/evaluation/c-stack.c (deleted)
-
doc/papers/general/evaluation/c-stack.h (deleted)
-
doc/papers/general/evaluation/cfa-bench.c (deleted)
-
doc/papers/general/evaluation/cfa-pair.c (deleted)
-
doc/papers/general/evaluation/cfa-pair.h (deleted)
-
doc/papers/general/evaluation/cfa-print.c (deleted)
-
doc/papers/general/evaluation/cfa-print.h (deleted)
-
doc/papers/general/evaluation/cfa-stack.c (deleted)
-
doc/papers/general/evaluation/cfa-stack.h (deleted)
-
doc/papers/general/evaluation/cpp-bench.cpp (deleted)
-
doc/papers/general/evaluation/cpp-pair.hpp (deleted)
-
doc/papers/general/evaluation/cpp-print.hpp (deleted)
-
doc/papers/general/evaluation/cpp-stack.hpp (deleted)
-
doc/papers/general/evaluation/cpp-vbench.cpp (deleted)
-
doc/papers/general/evaluation/cpp-vprint.hpp (deleted)
-
doc/papers/general/evaluation/cpp-vstack.cpp (deleted)
-
doc/papers/general/evaluation/cpp-vstack.hpp (deleted)
-
doc/papers/general/evaluation/object.hpp (deleted)
-
doc/papers/general/evaluation/timing.dat (deleted)
-
doc/papers/general/evaluation/timing.gp (deleted)
-
doc/papers/general/evaluation/timing.xlsx (deleted)
-
doc/papers/refrat98.pdf (added)
-
doc/papers_related/Baker82.pdf (deleted)
-
doc/papers_related/Bilson.pdf (deleted)
-
doc/papers_related/Bilson03.pdf (deleted)
-
doc/papers_related/Breuel.pdf (deleted)
-
doc/papers_related/Cormack81.pdf (deleted)
-
doc/papers_related/CormackWright90.pdf (deleted)
-
doc/papers_related/Ditchfield92.pdf (deleted)
-
doc/papers_related/Grossman06.pdf (deleted)
-
doc/papers_related/Jones97.pdf (deleted)
-
doc/papers_related/Laufer92.pdf (deleted)
-
doc/papers_related/Ziegler92.pdf (deleted)
-
doc/papers_related/refrat98.pdf (deleted)
-
doc/proposals/concurrency/.gitignore (added)
-
doc/proposals/concurrency/Makefile (added)
-
doc/proposals/concurrency/annex/glossary.tex (added)
-
doc/proposals/concurrency/annex/local.bib (added)
-
doc/proposals/concurrency/build/bump_ver.sh (added)
-
doc/proposals/concurrency/figures/dependency.fig (added)
-
doc/proposals/concurrency/figures/ext_monitor.fig (added)
-
doc/proposals/concurrency/figures/int_monitor.fig (added)
-
doc/proposals/concurrency/figures/monitor.fig (added)
-
doc/proposals/concurrency/figures/monitor_structs.fig (added)
-
doc/proposals/concurrency/figures/system.fig (added)
-
doc/proposals/concurrency/notes/cor-thread-traits.c (added)
-
doc/proposals/concurrency/notes/lit-review.md (added)
-
doc/proposals/concurrency/notes/notes.md (added)
-
doc/proposals/concurrency/style/cfa-format.tex (added)
-
doc/proposals/concurrency/style/style.tex (added)
-
doc/proposals/concurrency/text/basics.tex (added)
-
doc/proposals/concurrency/text/cforall.tex (added)
-
doc/proposals/concurrency/text/concurrency.tex (added)
-
doc/proposals/concurrency/text/frontpgs.tex (added)
-
doc/proposals/concurrency/text/future.tex (added)
-
doc/proposals/concurrency/text/internals.tex (added)
-
doc/proposals/concurrency/text/intro.tex (added)
-
doc/proposals/concurrency/text/parallelism.tex (added)
-
doc/proposals/concurrency/text/results.tex (added)
-
doc/proposals/concurrency/text/together.tex (added)
-
doc/proposals/concurrency/thePlan.md (added)
-
doc/proposals/concurrency/thesis.tex (added)
-
doc/proposals/concurrency/version (added)
-
doc/rob_thesis/.gitignore (added)
-
doc/rob_thesis/Makefile (added)
-
doc/rob_thesis/cfa-format.tex (added)
-
doc/rob_thesis/conclusions.tex (added)
-
doc/rob_thesis/ctordtor.tex (added)
-
doc/rob_thesis/examples/conclusions/dtor.c (added)
-
doc/rob_thesis/examples/conclusions/except.c (added)
-
doc/rob_thesis/examples/conclusions/except.cc (added)
-
doc/rob_thesis/examples/ctor/array_ctor.c (added)
-
doc/rob_thesis/examples/ctor/copy_ctor.c (added)
-
doc/rob_thesis/examples/ctor/cv_ctor.c (added)
-
doc/rob_thesis/examples/ctor/enum_ctor.c (added)
-
doc/rob_thesis/examples/ctor/expr_ctor.c (added)
-
doc/rob_thesis/examples/ctor/global_ctor.c (added)
-
doc/rob_thesis/examples/ctor/hide_ctor.c (added)
-
doc/rob_thesis/examples/ctor/member.c (added)
-
doc/rob_thesis/examples/ctor/placement_ctor.c (added)
-
doc/rob_thesis/examples/ctor/return_dtor.c (added)
-
doc/rob_thesis/examples/ctor/static_ctor.c (added)
-
doc/rob_thesis/examples/ctor/union_ctor.c (added)
-
doc/rob_thesis/examples/intro/FileOutputStream.java (added)
-
doc/rob_thesis/examples/intro/compound_lit.c (added)
-
doc/rob_thesis/examples/intro/designation.c (added)
-
doc/rob_thesis/examples/intro/ignore.c (added)
-
doc/rob_thesis/examples/intro/ires.java (added)
-
doc/rob_thesis/examples/intro/res.java (added)
-
doc/rob_thesis/examples/intro/res1.java (added)
-
doc/rob_thesis/examples/intro/res2.java (added)
-
doc/rob_thesis/examples/intro/res3.java (added)
-
doc/rob_thesis/examples/intro/tuple.cc (added)
-
doc/rob_thesis/examples/intro/variadic.java (added)
-
doc/rob_thesis/examples/malloc.cc (added)
-
doc/rob_thesis/examples/nested.c (added)
-
doc/rob_thesis/examples/poly.c (added)
-
doc/rob_thesis/examples/scope_guard.h (added)
-
doc/rob_thesis/examples/test_scoped_guard.c (added)
-
doc/rob_thesis/examples/tuples/assign.c (added)
-
doc/rob_thesis/examples/tuples/cast.c (added)
-
doc/rob_thesis/examples/tuples/ctor.c (added)
-
doc/rob_thesis/examples/tuples/mrv.c (added)
-
doc/rob_thesis/examples/tuples/mrv_1.c (added)
-
doc/rob_thesis/examples/tuples/mrv_2.c (added)
-
doc/rob_thesis/examples/tuples/mrv_3.c (added)
-
doc/rob_thesis/examples/tuples/named.c (added)
-
doc/rob_thesis/examples/variadic/new.c (added)
-
doc/rob_thesis/examples/variadic/print.c (added)
-
doc/rob_thesis/examples/variadic/sum1.c (added)
-
doc/rob_thesis/examples/variadic/sum2.c (added)
-
doc/rob_thesis/intro.tex (added)
-
doc/rob_thesis/thesis-frontpgs.tex (added)
-
doc/rob_thesis/thesis.bib (added)
-
doc/rob_thesis/thesis.tex (added)
-
doc/rob_thesis/tuples.tex (added)
-
doc/rob_thesis/variadic.tex (added)
-
doc/theses/aaron_moss/comp_II/.gitignore (deleted)
-
doc/theses/aaron_moss/comp_II/Efficient Type Resolution in Cforall.pptx (deleted)
-
doc/theses/aaron_moss/comp_II/Makefile (deleted)
-
doc/theses/aaron_moss/comp_II/comp_II.tex (deleted)
-
doc/theses/aaron_moss/comp_II/conversion_dag.eps (deleted)
-
doc/theses/aaron_moss/comp_II/conversion_dag.odg (deleted)
-
doc/theses/aaron_moss/comp_II/conversion_dag.png (deleted)
-
doc/theses/aaron_moss/comp_II/resolution_dag.eps (deleted)
-
doc/theses/aaron_moss/comp_II/resolution_dag.odg (deleted)
-
doc/theses/aaron_moss/comp_II/resolution_dag.png (deleted)
-
doc/theses/aaron_moss/comp_II/resolution_dag2.odg (deleted)
-
doc/theses/aaron_moss/comp_II/resolution_dag2.png (deleted)
-
doc/theses/rob_schluntz/.gitignore (deleted)
-
doc/theses/rob_schluntz/Makefile (deleted)
-
doc/theses/rob_schluntz/cfa-format.tex (deleted)
-
doc/theses/rob_schluntz/conclusions.tex (deleted)
-
doc/theses/rob_schluntz/ctordtor.tex (deleted)
-
doc/theses/rob_schluntz/examples/conclusions/dtor.c (deleted)
-
doc/theses/rob_schluntz/examples/conclusions/except.c (deleted)
-
doc/theses/rob_schluntz/examples/conclusions/except.cc (deleted)
-
doc/theses/rob_schluntz/examples/ctor/array_ctor.c (deleted)
-
doc/theses/rob_schluntz/examples/ctor/copy_ctor.c (deleted)
-
doc/theses/rob_schluntz/examples/ctor/cv_ctor.c (deleted)
-
doc/theses/rob_schluntz/examples/ctor/enum_ctor.c (deleted)
-
doc/theses/rob_schluntz/examples/ctor/expr_ctor.c (deleted)
-
doc/theses/rob_schluntz/examples/ctor/global_ctor.c (deleted)
-
doc/theses/rob_schluntz/examples/ctor/hide_ctor.c (deleted)
-
doc/theses/rob_schluntz/examples/ctor/member.c (deleted)
-
doc/theses/rob_schluntz/examples/ctor/placement_ctor.c (deleted)
-
doc/theses/rob_schluntz/examples/ctor/return_dtor.c (deleted)
-
doc/theses/rob_schluntz/examples/ctor/static_ctor.c (deleted)
-
doc/theses/rob_schluntz/examples/ctor/union_ctor.c (deleted)
-
doc/theses/rob_schluntz/examples/intro/FileOutputStream.java (deleted)
-
doc/theses/rob_schluntz/examples/intro/compound_lit.c (deleted)
-
doc/theses/rob_schluntz/examples/intro/designation.c (deleted)
-
doc/theses/rob_schluntz/examples/intro/ignore.c (deleted)
-
doc/theses/rob_schluntz/examples/intro/ires.java (deleted)
-
doc/theses/rob_schluntz/examples/intro/res.java (deleted)
-
doc/theses/rob_schluntz/examples/intro/res1.java (deleted)
-
doc/theses/rob_schluntz/examples/intro/res2.java (deleted)
-
doc/theses/rob_schluntz/examples/intro/res3.java (deleted)
-
doc/theses/rob_schluntz/examples/intro/tuple.cc (deleted)
-
doc/theses/rob_schluntz/examples/intro/variadic.java (deleted)
-
doc/theses/rob_schluntz/examples/malloc.cc (deleted)
-
doc/theses/rob_schluntz/examples/nested.c (deleted)
-
doc/theses/rob_schluntz/examples/poly.c (deleted)
-
doc/theses/rob_schluntz/examples/scope_guard.h (deleted)
-
doc/theses/rob_schluntz/examples/test_scoped_guard.c (deleted)
-
doc/theses/rob_schluntz/examples/tuples/assign.c (deleted)
-
doc/theses/rob_schluntz/examples/tuples/cast.c (deleted)
-
doc/theses/rob_schluntz/examples/tuples/ctor.c (deleted)
-
doc/theses/rob_schluntz/examples/tuples/mrv.c (deleted)
-
doc/theses/rob_schluntz/examples/tuples/mrv_1.c (deleted)
-
doc/theses/rob_schluntz/examples/tuples/mrv_2.c (deleted)
-
doc/theses/rob_schluntz/examples/tuples/mrv_3.c (deleted)
-
doc/theses/rob_schluntz/examples/tuples/named.c (deleted)
-
doc/theses/rob_schluntz/examples/variadic/new.c (deleted)
-
doc/theses/rob_schluntz/examples/variadic/print.c (deleted)
-
doc/theses/rob_schluntz/examples/variadic/sum1.c (deleted)
-
doc/theses/rob_schluntz/examples/variadic/sum2.c (deleted)
-
doc/theses/rob_schluntz/intro.tex (deleted)
-
doc/theses/rob_schluntz/thesis-frontpgs.tex (deleted)
-
doc/theses/rob_schluntz/thesis.bib (deleted)
-
doc/theses/rob_schluntz/thesis.tex (deleted)
-
doc/theses/rob_schluntz/tuples.tex (deleted)
-
doc/theses/rob_schluntz/variadic.tex (deleted)
-
doc/theses/thierry_delisle/.gitignore (deleted)
-
doc/theses/thierry_delisle/Makefile (deleted)
-
doc/theses/thierry_delisle/annex/glossary.tex (deleted)
-
doc/theses/thierry_delisle/annex/local.bib (deleted)
-
doc/theses/thierry_delisle/build/bump_ver.sh (deleted)
-
doc/theses/thierry_delisle/figures/dependency.fig (deleted)
-
doc/theses/thierry_delisle/figures/ext_monitor.fig (deleted)
-
doc/theses/thierry_delisle/figures/int_monitor.fig (deleted)
-
doc/theses/thierry_delisle/figures/monitor.fig (deleted)
-
doc/theses/thierry_delisle/figures/monitor_structs.fig (deleted)
-
doc/theses/thierry_delisle/figures/system.fig (deleted)
-
doc/theses/thierry_delisle/notes/cor-thread-traits.c (deleted)
-
doc/theses/thierry_delisle/notes/lit-review.md (deleted)
-
doc/theses/thierry_delisle/notes/notes.md (deleted)
-
doc/theses/thierry_delisle/style/cfa-format.tex (deleted)
-
doc/theses/thierry_delisle/style/style.tex (deleted)
-
doc/theses/thierry_delisle/text/basics.tex (deleted)
-
doc/theses/thierry_delisle/text/cforall.tex (deleted)
-
doc/theses/thierry_delisle/text/concurrency.tex (deleted)
-
doc/theses/thierry_delisle/text/frontpgs.tex (deleted)
-
doc/theses/thierry_delisle/text/future.tex (deleted)
-
doc/theses/thierry_delisle/text/internals.tex (deleted)
-
doc/theses/thierry_delisle/text/intro.tex (deleted)
-
doc/theses/thierry_delisle/text/parallelism.tex (deleted)
-
doc/theses/thierry_delisle/text/results.tex (deleted)
-
doc/theses/thierry_delisle/text/together.tex (deleted)
-
doc/theses/thierry_delisle/thePlan.md (deleted)
-
doc/theses/thierry_delisle/thesis.tex (deleted)
-
doc/theses/thierry_delisle/version (deleted)
-
src/CodeGen/GenType.cc (modified) (13 diffs)
-
src/CodeTools/DeclStats.cc (modified) (19 diffs)
-
src/Common/PassVisitor.h (modified) (4 diffs)
-
src/Common/PassVisitor.impl.h (modified) (3 diffs)
-
src/Concurrency/Waitfor.cc (modified) (1 diff)
-
src/ControlStruct/ExceptTranslate.cc (modified) (1 diff)
-
src/ControlStruct/LabelFixer.cc (modified) (1 diff)
-
src/ControlStruct/MLEMutator.cc (modified) (8 diffs)
-
src/ControlStruct/MLEMutator.h (modified) (4 diffs)
-
src/GenPoly/Box.cc (modified) (4 diffs)
-
src/GenPoly/Lvalue.cc (modified) (7 diffs)
-
src/GenPoly/ScrubTyVars.cc (modified) (6 diffs)
-
src/GenPoly/ScrubTyVars.h (modified) (6 diffs)
-
src/InitTweak/FixInit.cc (modified) (11 diffs)
-
src/ResolvExpr/AlternativeFinder.cc (modified) (40 diffs)
-
src/ResolvExpr/AlternativeFinder.h (modified) (2 diffs)
-
src/ResolvExpr/CastCost.cc (modified) (4 diffs)
-
src/ResolvExpr/CommonType.cc (modified) (10 diffs)
-
src/ResolvExpr/ConversionCost.cc (modified) (22 diffs)
-
src/ResolvExpr/ConversionCost.h (modified) (3 diffs)
-
src/ResolvExpr/CurrentObject.cc (modified) (4 diffs)
-
src/ResolvExpr/PtrsAssignable.cc (modified) (6 diffs)
-
src/ResolvExpr/PtrsCastable.cc (modified) (7 diffs)
-
src/ResolvExpr/RenameVars.cc (modified) (2 diffs)
-
src/ResolvExpr/RenameVars.h (modified) (1 diff)
-
src/ResolvExpr/Resolver.cc (modified) (6 diffs)
-
src/ResolvExpr/TypeMap.h (added)
-
src/ResolvExpr/Unify.cc (modified) (10 diffs)
-
src/SymTab/Mangler.cc (modified) (2 diffs)
-
src/SymTab/Mangler.h (modified) (1 diff)
-
src/SynTree/AggregateDecl.cc (modified) (1 diff)
-
src/SynTree/CompoundStmt.cc (modified) (1 diff)
-
src/SynTree/Expression.cc (modified) (2 diffs)
-
src/SynTree/FunctionDecl.cc (modified) (1 diff)
-
src/SynTree/Label.h (modified) (1 diff)
-
src/SynTree/TypeSubstitution.cc (modified) (3 diffs)
-
src/SynTree/TypeSubstitution.h (modified) (5 diffs)
-
src/SynTree/VarExprReplacer.cc (modified) (1 diff)
-
src/SynTree/VarExprReplacer.h (modified) (1 diff)
-
src/Tuples/TupleExpansion.cc (modified) (5 diffs)
-
src/benchmark/Makefile.am (modified) (2 diffs)
-
src/benchmark/Makefile.in (modified) (2 diffs)
-
src/driver/cfa.cc (modified) (1 diff)
-
src/libcfa/bits/locks.h (modified) (8 diffs)
-
src/libcfa/bits/signal.h (deleted)
-
src/libcfa/concurrency/CtxSwitch-armv7l.S (deleted)
-
src/libcfa/concurrency/invoke.c (modified) (2 diffs)
-
src/libcfa/concurrency/invoke.h (modified) (3 diffs)
-
src/libcfa/concurrency/kernel.c (modified) (8 diffs)
-
src/libcfa/concurrency/kernel_private.h (modified) (1 diff)
-
src/libcfa/concurrency/monitor.c (modified) (10 diffs)
-
src/libcfa/concurrency/preemption.c (modified) (7 diffs)
-
src/libcfa/concurrency/thread.c (modified) (1 diff)
-
src/libcfa/interpose.c (modified) (3 diffs)
-
src/libcfa/iostream (modified) (3 diffs)
-
src/libcfa/iostream.c (modified) (4 diffs)
-
src/libcfa/stdlib.c (modified) (3 diffs)
-
src/prelude/prelude.cf (modified) (8 diffs)
-
src/tests/.expect/alloc-ERROR.txt (modified) (3 diffs)
-
src/tests/.expect/alloc.txt (modified) (1 diff)
-
src/tests/.expect/ctor-autogen-ERR1.txt (added)
-
src/tests/.expect/ctor-autogen.txt (added)
-
src/tests/.expect/dtor-early-exit-ERR1.txt (added)
-
src/tests/.expect/dtor-early-exit-ERR2.txt (added)
-
src/tests/.expect/dtor-early-exit.txt (added)
-
src/tests/.expect/globals.txt (added)
-
src/tests/.expect/init_once.txt (added)
-
src/tests/.expect/io.txt (modified) (1 diff)
-
src/tests/.expect/libcfa_vector.txt (added)
-
src/tests/.expect/literals.x64.txt (modified) (11 diffs)
-
src/tests/.expect/literals.x86.txt (modified) (11 diffs)
-
src/tests/.expect/memberCtors-ERR1.txt (added)
-
src/tests/.expect/memberCtors.txt (added)
-
src/tests/.expect/multiDimension.txt (added)
-
src/tests/.expect/sum.txt (modified) (1 diff)
-
src/tests/.expect/vector.txt (deleted)
-
src/tests/.expect/vector_test.txt (added)
-
src/tests/.in/vector_test.txt (added)
-
src/tests/Makefile.am (modified) (5 diffs)
-
src/tests/Makefile.in (modified) (14 diffs)
-
src/tests/alloc.c (modified) (4 diffs)
-
src/tests/concurrent/examples/.expect/quickSort.txt (deleted)
-
src/tests/concurrent/examples/quickSort.c (modified) (9 diffs)
-
src/tests/ctor-autogen.c (added)
-
src/tests/dtor-early-exit.c (added)
-
src/tests/globals.c (added)
-
src/tests/init_once.c (added)
-
src/tests/io.c (modified) (4 diffs)
-
src/tests/io.data (modified) (1 diff)
-
src/tests/libcfa_vector.c (added)
-
src/tests/memberCtors.c (added)
-
src/tests/multiDimension.c (added)
-
src/tests/raii/.expect/ctor-autogen-ERR1.txt (deleted)
-
src/tests/raii/.expect/ctor-autogen.txt (deleted)
-
src/tests/raii/.expect/dtor-early-exit-ERR1.txt (deleted)
-
src/tests/raii/.expect/dtor-early-exit-ERR2.txt (deleted)
-
src/tests/raii/.expect/dtor-early-exit.txt (deleted)
-
src/tests/raii/.expect/globals.txt (deleted)
-
src/tests/raii/.expect/init_once.txt (deleted)
-
src/tests/raii/.expect/memberCtors-ERR1.txt (deleted)
-
src/tests/raii/.expect/memberCtors.txt (deleted)
-
src/tests/raii/ctor-autogen.c (deleted)
-
src/tests/raii/dtor-early-exit.c (deleted)
-
src/tests/raii/globals.c (deleted)
-
src/tests/raii/init_once.c (deleted)
-
src/tests/raii/memberCtors.c (deleted)
-
src/tests/raii/multiDimension.c (deleted)
-
src/tests/raii/multiDimension.txt (deleted)
-
src/tests/sum.c (modified) (7 diffs)
-
src/tests/vector.c (deleted)
-
src/tests/vector/array.c (added)
-
src/tests/vector/array.h (added)
-
src/tests/vector/vector_int.c (added)
-
src/tests/vector/vector_int.h (added)
-
src/tests/vector/vector_test.c (added)
-
tools/repeat.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
Jenkinsfile
r7416d46a rf792cb8 174 174 175 175 def notify_server(int wait) { 176 sh """curl -- data "wait=${wait}" -X POST http://plg2:8082/jenkins/notify > /dev/null || true"""176 sh """curl --silent --data "wait=${wait}" -X POST http://plg2:8082/jenkins/notify > /dev/null || true""" 177 177 return 178 178 } … … 324 324 325 325 //Then publish the results 326 sh 'curl -H \'Content-Type: application/json\'--data @bench.json http://plg2:8082/jenkins/publish > /dev/null || true'326 sh 'curl -H "Content-Type: application/json" --silent --data @bench.json http://plg2:8082/jenkins/publish > /dev/null || true' 327 327 } 328 328 } -
doc/bibliography/cfa.bib
r7416d46a rf792cb8 28 28 % @string{spe="Softw. Pract. Exp."} 29 29 @string{ccpe="Concurrency and Computation: Practice and Experience"} 30 % @string{ccpe="Concurrency Comput : Pract Experience"}30 % @string{ccpe="Concurrency Comput. Pract. Exp."} 31 31 @string{sigplan="SIGPLAN Notices"} 32 32 % @string{sigplan="SIGPLAN Not."} … … 866 866 contributer = {pabuhr@plg}, 867 867 author = {C11}, 868 title = {Programming Languages -- {C} {ISO/IEC} 9889:2011 -12},868 title = {Programming Languages -- {C} {ISO/IEC} 9889:2011}, 869 869 edition = {3rd}, 870 870 publisher = {International Standard Organization}, … … 877 877 keywords = {ISO/IEC TS 19217:2015}, 878 878 contributer = {a3moss@uwaterloo.ca}, 879 key= {Concepts},879 author = {Concepts}, 880 880 title = {Information technology -- Programming languages -- {C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Extensions for concepts {ISO/IEC} {TS} 19217:2015}, 881 881 publisher = {International Standard Organization}, … … 1019 1019 contributer = {pabuhr@plg}, 1020 1020 author = {Peter A. Buhr and Glen Ditchfield and David Till and Charles R. Zarnke}, 1021 title = { {\mbox{\mdseries\sffamily C{$\mathbf{\forall}$}}}\ Users Guide, Version 0.1},1021 title = {\mbox{\mdseries\sffamily C{$\mathbf{\forall}$}}\ Users Guide, Version 0.1}, 1022 1022 institution = {Department of Computer Science, University of Waterloo}, 1023 1023 address = {Waterloo, Ontario, Canada, N2L 3G1}, … … 1437 1437 month = jul, 1438 1438 year = 2015, 1439 note = {\href{http://plg.uwaterloo.ca/~usystem/pub/uSystem/u++-6.1.0.sh}{ http://\-plg.\-uwaterloo.\-ca/\-$\sim$usystem/\-pub/\-uSystem/\-u++-6.1.0.sh}},1439 note = {\href{http://plg.uwaterloo.ca/~usystem/pub/uSystem/u++-6.1.0.sh}{\textsf{http://\-plg.\-uwaterloo.\-ca/\-$\sim$usystem/\-pub/\-uSystem/\-u++-6.1.0.sh}}}, 1440 1440 } 1441 1441 … … 2447 2447 keywords = {Erlang}, 2448 2448 contributer = {pabuhr@plg}, 2449 key = {Erlang},2450 title = {Erlang/OTP System Documentation 8.1},2451 organization= {Erlang AB},2452 month = sep,2453 year = 201 6,2454 note = {\href{http:// erlang.org/doc/pdf/otp-system-documentation.pdf}{http://\-erlang.org/\-doc/\-pdf/\-otp-system-documentation.pdf}},2449 title = {Erlang Reference Manual User's Guide, Vertion 7.0}, 2450 organization= {Erlang/OTP System Documentation}, 2451 address = {1430 Broadway, New York, New York 10018}, 2452 month = jun, 2453 year = 2015, 2454 note = {\href{http://www.erlang.org/doc/pdf/otp-system-documentation.pdf}{\textsf{http://www.erlang.org/\-doc/\-pdf/\-otp-system-\-documentation.pdf}}}, 2455 2455 } 2456 2456 … … 2768 2768 month = jan, 2769 2769 year = {1987}, 2770 pages = {1- 11},2770 pages = {1--11}, 2771 2771 publisher = {ACM}, 2772 2772 address = {New York, NY, USA}, 2773 }2774 2775 @article{Hesselink17,2776 keywords = {concurrency, mutual exclusion, performance experiment, software solutions},2777 title = {Fast mutual exclusion by the {T}riangle algorithm},2778 author = {Wim H. Hesselink and Peter Buhr and David Dice},2779 journal = ccpe,2780 volume = 30,2781 number = 4,2782 year = 2018,2783 month = feb,2784 publisher = {John Wiley \& Sons},2785 note = {\url{https://doi.org/10.1002/cpe.4183}}2786 2773 } 2787 2774 … … 2863 2850 title = {Programming Languages -- {Fortran} Part 1:Base Language ISO/IEC 1539-1:2010}, 2864 2851 edition = {3rd}, 2865 publisher = {International Standard Organization},2852 publisher = {International Standard Organization}, 2866 2853 address = {\href{https://www.iso.org/standard/50459.html}{https://\-www.iso.org/\-standard/\-50459.html}}, 2867 2854 year = 2010, … … 2899 2886 journal = sigplan, 2900 2887 year = 1976, 2901 volume = 11, 2902 pages = {63-65}, 2888 volume = 11, pages = {63-65}, 2903 2889 note = {Conference on Data: Abstraction, Definition and Structure}, 2904 2890 summary = { … … 3686 3672 author = {James Gosling and Bill Joy and Guy Steele and Gilad Bracha and Alex Buckley}, 3687 3673 title = {{Java} Language Spec.}, 3674 organization= {Oracle}, 3688 3675 publisher = {Oracle}, 3689 3676 year = 2015, 3690 edition = {Java SE 8},3677 edition = {Java SE8}, 3691 3678 } 3692 3679 … … 3698 3685 organization= {Oracle}, 3699 3686 year = 2014, 3700 note = {\href{http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary.html}{ http://docs.oracle.com/\-javase/7/\-docs/\-api/\-java/\-util/\-concurrent/\-package-summary.html}},3687 note = {\href{http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary.html}{\textsf{http://docs.oracle.com/\-javase/7/\-docs/\-api/\-java/\-util/\-concurrent/\-package-summary.html}}}, 3701 3688 } 3702 3689 … … 4230 4217 month = jun, 4231 4218 year = 2015, 4232 note = {\href{http://www.mpi-forum.org/docs/mpi-3.1/mpi31-report.pdf}{ http://www.mpi-forum.org/\-docs/\-mpi-3.1/\-mpi31-report.pdf}},4219 note = {\href{http://www.mpi-forum.org/docs/mpi-3.1/mpi31-report.pdf}{\textsf{http://www.mpi-forum.org/\-docs/\-mpi-3.1/\-mpi31-report.pdf}}}, 4233 4220 } 4234 4221 … … 4371 4358 year = 1980, 4372 4359 pages = {833-842}, 4373 note = {\href{http://groups.csail.mit.edu/tds/papers/Lynch/allertonconf.pdf}{ http://\-groups.csail.mit.edu/\-tds/\-papers/\-Lynch/\-allertonconf.pdf} [Accessed on March 2014]},4360 note = {\href{http://groups.csail.mit.edu/tds/papers/Lynch/allertonconf.pdf}{\textsf{http://\-groups.csail.mit.edu/\-tds/\-papers/\-Lynch/\-allertonconf.pdf}} [Accessed on March 2014]}, 4374 4361 optnote = {\textsf{http://\-groups.csail.mit.edu/\-tds/\-papers/\-Lynch/\-allertonconf.pdf}}, 4375 4362 } … … 4454 4441 booktitle = {Proceedings of the Summer 1990 UKUUG Conference}, 4455 4442 year = 1990, 4456 pages = {41- 51},4443 pages = {41--51}, 4457 4444 note = {\href{http://doc.cat-v.org/bell_labs/new_c_compilers/new_c_compiler.pdf}{http://\-doc.cat-v.org/\-bell\_labs/\-new\_c\_compilers/\-new\_c\_compiler.pdf}}, 4458 4445 } … … 4471 4458 } 4472 4459 4473 @article{Anderson01,4474 keywords = {software solutions, fast path},4475 contributer = {pabuhr@plg},4476 author = {James H. Anderson and Yong-Jik Kim},4477 title = {A New Fast-Path Mechanism For Mutual Exclusion},4478 journal = {Distributed Computing},4479 month = jan,4480 year = 2001,4481 volume = 14,4482 number = 1,4483 pages = {17-29},4484 }4485 4486 4460 @article{Lamport74, 4487 4461 keywords = {concurrency, N-Process solution, O(N)}, … … 4495 4469 number = 8, 4496 4470 pages = {453-455}, 4497 }4498 4499 @book{NeWS,4500 AUTHOR = {James Gosling and David S. H. Rosenthal and Richelle J. Arden},4501 TITLE = {The {NeWS} Book},4502 PUBLISHER = {Springer-Verlag},4503 YEAR = {1989}4504 4471 } 4505 4472 … … 4773 4740 month = jul, 4774 4741 year = 2013, 4775 note = {\href{http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf}{ http://\-www.openmp.org/\-mp-documents/\-OpenMP4.0.0.pdf}},4742 note = {\href{http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf}{\textsf{http://\-www.openmp.org/\-mp-documents/\-OpenMP4.0.0.pdf}}}, 4776 4743 } 4777 4744 … … 6020 5987 month = sep, 6021 5988 year = 1995, 6022 note = {\href{http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-95-7.pdf}{ http://www.hpl.hp.com/\-techreports/\-Compaq-DEC/\-WRL-95-7.pdf}, Reprinted in \cite{Adve95reprint}.},5989 note = {\href{http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-95-7.pdf}{\textsf{http://www.hpl.hp.com/\-techreports/\-Compaq-DEC/\-WRL-95-7.pdf}}, Reprinted in \cite{Adve95reprint}.}, 6023 5990 } 6024 5991 … … 6182 6149 author = {Herb Sutter and James Larus}, 6183 6150 title = {Software and the Concurrency Revolution}, 6184 journal = {Queue},6151 journal = Queue, 6185 6152 year = 2005, 6186 6153 month = sep, … … 6275 6242 6276 6243 @article{Smith98, 6277 keywords= {Polymorphic C},6278 contributor = {a3moss@uwaterloo.ca},6279 title ={A sound polymorphic type system for a dialect of C},6280 author ={Smith, Geoffrey and Volpano, Dennis},6281 journal ={Science of computer programming},6282 volume = 32,6283 number ={1-3},6284 pages = {49-72},6285 year ={1998},6286 publisher ={Elsevier}6244 keywords = {Polymorphic C}, 6245 contributor = {a3moss@uwaterloo.ca}, 6246 title={A sound polymorphic type system for a dialect of C}, 6247 author={Smith, Geoffrey and Volpano, Dennis}, 6248 journal={Science of computer programming}, 6249 volume={32}, 6250 number={1-3}, 6251 pages={49--72}, 6252 year={1998}, 6253 publisher={Elsevier} 6287 6254 } 6288 6255 -
src/CodeGen/GenType.cc
r7416d46a rf792cb8 26 26 27 27 namespace CodeGen { 28 struct GenType : public WithVisitorRef<GenType>, public WithShortCircuiting { 28 class GenType : public Visitor { 29 public: 29 30 GenType( const std::string &typeString, bool pretty = false, bool genC = false, bool lineMarks = false ); 30 31 std::string get_typeString() const { return typeString; } 31 32 void set_typeString( const std::string &newValue ) { typeString = newValue; } 32 33 33 void previsit( BaseSyntaxNode * ); 34 void postvisit( BaseSyntaxNode * ); 35 36 void postvisit( FunctionType * funcType ); 37 void postvisit( VoidType * voidType ); 38 void postvisit( BasicType * basicType ); 39 void postvisit( PointerType * pointerType ); 40 void postvisit( ArrayType * arrayType ); 41 void postvisit( ReferenceType * refType ); 42 void postvisit( StructInstType * structInst ); 43 void postvisit( UnionInstType * unionInst ); 44 void postvisit( EnumInstType * enumInst ); 45 void postvisit( TypeInstType * typeInst ); 46 void postvisit( TupleType * tupleType ); 47 void postvisit( VarArgsType * varArgsType ); 48 void postvisit( ZeroType * zeroType ); 49 void postvisit( OneType * oneType ); 34 virtual void visit( FunctionType *funcType ); 35 virtual void visit( VoidType *voidType ); 36 virtual void visit( BasicType *basicType ); 37 virtual void visit( PointerType *pointerType ); 38 virtual void visit( ArrayType *arrayType ); 39 virtual void visit( ReferenceType *refType ); 40 virtual void visit( StructInstType *structInst ); 41 virtual void visit( UnionInstType *unionInst ); 42 virtual void visit( EnumInstType *enumInst ); 43 virtual void visit( TypeInstType *typeInst ); 44 virtual void visit( TupleType * tupleType ); 45 virtual void visit( VarArgsType *varArgsType ); 46 virtual void visit( ZeroType *zeroType ); 47 virtual void visit( OneType *oneType ); 50 48 51 49 private: … … 61 59 62 60 std::string genType( Type *type, const std::string &baseString, bool pretty, bool genC , bool lineMarks ) { 63 PassVisitor<GenType>gt( baseString, pretty, genC, lineMarks );61 GenType gt( baseString, pretty, genC, lineMarks ); 64 62 std::ostringstream os; 65 63 … … 70 68 71 69 type->accept( gt ); 72 return os.str() + gt. pass.get_typeString();70 return os.str() + gt.get_typeString(); 73 71 } 74 72 … … 79 77 GenType::GenType( const std::string &typeString, bool pretty, bool genC, bool lineMarks ) : typeString( typeString ), pretty( pretty ), genC( genC ), lineMarks( lineMarks ) {} 80 78 81 // *** BaseSyntaxNode 82 void GenType::previsit( BaseSyntaxNode * ) { 83 // turn off automatic recursion for all nodes, to allow each visitor to 84 // precisely control the order in which its children are visited. 85 visit_children = false; 86 } 87 88 void GenType::postvisit( BaseSyntaxNode * node ) { 89 std::stringstream ss; 90 node->print( ss ); 91 assertf( false, "Unhandled node reached in GenType: %s", ss.str().c_str() ); 92 } 93 94 void GenType::postvisit( VoidType * voidType ) { 79 void GenType::visit( VoidType *voidType ) { 95 80 typeString = "void " + typeString; 96 81 handleQualifiers( voidType ); 97 82 } 98 83 99 void GenType:: postvisit( BasicType *basicType ) {100 BasicType::Kind kind = basicType-> kind;84 void GenType::visit( BasicType *basicType ) { 85 BasicType::Kind kind = basicType->get_kind(); 101 86 assert( 0 <= kind && kind < BasicType::NUMBER_OF_BASIC_TYPES ); 102 87 typeString = std::string( BasicType::typeNames[kind] ) + " " + typeString; … … 104 89 } 105 90 106 void GenType::genArray( const Type::Qualifiers & qualifiers, Type *base, Expression *dimension, bool isVarLen, bool isStatic ) {91 void GenType::genArray( const Type::Qualifiers &qualifiers, Type *base, Expression *dimension, bool isVarLen, bool isStatic ) { 107 92 std::ostringstream os; 108 93 if ( typeString != "" ) { … … 141 126 typeString = os.str(); 142 127 143 base->accept( * visitor);144 } 145 146 void GenType:: postvisit( PointerType *pointerType ) {147 assert( pointerType-> base!= 0);148 if ( pointerType->get_isStatic() || pointerType->get_isVarLen() || pointerType-> dimension) {149 genArray( pointerType->get_qualifiers(), pointerType-> base, pointerType->dimension, pointerType->get_isVarLen(), pointerType->get_isStatic() );128 base->accept( *this ); 129 } 130 131 void GenType::visit( PointerType *pointerType ) { 132 assert( pointerType->get_base() != 0); 133 if ( pointerType->get_isStatic() || pointerType->get_isVarLen() || pointerType->get_dimension() ) { 134 genArray( pointerType->get_qualifiers(), pointerType->get_base(), pointerType->get_dimension(), pointerType->get_isVarLen(), pointerType->get_isStatic() ); 150 135 } else { 151 136 handleQualifiers( pointerType ); … … 155 140 typeString = "*" + typeString; 156 141 } // if 157 pointerType-> base->accept( *visitor);158 } // if 159 } 160 161 void GenType:: postvisit( ArrayType *arrayType ) {162 genArray( arrayType->get_qualifiers(), arrayType-> base, arrayType->dimension, arrayType->get_isVarLen(), arrayType->get_isStatic() );163 } 164 165 void GenType:: postvisit( ReferenceType *refType ) {166 assert( refType-> base!= 0);142 pointerType->get_base()->accept( *this ); 143 } // if 144 } 145 146 void GenType::visit( ArrayType *arrayType ) { 147 genArray( arrayType->get_qualifiers(), arrayType->get_base(), arrayType->get_dimension(), arrayType->get_isVarLen(), arrayType->get_isStatic() ); 148 } 149 150 void GenType::visit( ReferenceType *refType ) { 151 assert( refType->get_base() != 0); 167 152 assertf( ! genC, "Reference types should not reach code generation." ); 168 153 handleQualifiers( refType ); 169 154 typeString = "&" + typeString; 170 refType-> base->accept( *visitor);171 } 172 173 void GenType:: postvisit( FunctionType *funcType ) {155 refType->get_base()->accept( *this ); 156 } 157 158 void GenType::visit( FunctionType *funcType ) { 174 159 std::ostringstream os; 175 160 … … 184 169 /************* parameters ***************/ 185 170 186 const std::list<DeclarationWithType *> &pars = funcType-> parameters;171 const std::list<DeclarationWithType *> &pars = funcType->get_parameters(); 187 172 188 173 if ( pars.empty() ) { … … 206 191 typeString = os.str(); 207 192 208 if ( funcType-> returnVals.size() == 0 ) {193 if ( funcType->get_returnVals().size() == 0 ) { 209 194 typeString = "void " + typeString; 210 195 } else { 211 funcType-> returnVals.front()->get_type()->accept( *visitor);196 funcType->get_returnVals().front()->get_type()->accept( *this ); 212 197 } // if 213 198 214 199 // add forall 215 if( ! funcType-> forall.empty() && ! genC ) {200 if( ! funcType->get_forall().empty() && ! genC ) { 216 201 // assertf( ! genC, "Aggregate type parameters should not reach code generation." ); 217 202 std::ostringstream os; 218 203 PassVisitor<CodeGenerator> cg( os, pretty, genC, lineMarks ); 219 204 os << "forall("; 220 cg.pass.genCommaList( funcType-> forall.begin(), funcType->forall.end() );205 cg.pass.genCommaList( funcType->get_forall().begin(), funcType->get_forall().end() ); 221 206 os << ")" << std::endl; 222 207 typeString = os.str() + typeString; … … 236 221 } 237 222 238 void GenType:: postvisit( StructInstType *structInst ) {239 typeString = structInst-> name+ handleGeneric( structInst ) + " " + typeString;223 void GenType::visit( StructInstType *structInst ) { 224 typeString = structInst->get_name() + handleGeneric( structInst ) + " " + typeString; 240 225 if ( genC ) typeString = "struct " + typeString; 241 226 handleQualifiers( structInst ); 242 227 } 243 228 244 void GenType:: postvisit( UnionInstType *unionInst ) {245 typeString = unionInst-> name+ handleGeneric( unionInst ) + " " + typeString;229 void GenType::visit( UnionInstType *unionInst ) { 230 typeString = unionInst->get_name() + handleGeneric( unionInst ) + " " + typeString; 246 231 if ( genC ) typeString = "union " + typeString; 247 232 handleQualifiers( unionInst ); 248 233 } 249 234 250 void GenType:: postvisit( EnumInstType *enumInst ) {251 typeString = enumInst-> name+ " " + typeString;235 void GenType::visit( EnumInstType *enumInst ) { 236 typeString = enumInst->get_name() + " " + typeString; 252 237 if ( genC ) typeString = "enum " + typeString; 253 238 handleQualifiers( enumInst ); 254 239 } 255 240 256 void GenType:: postvisit( TypeInstType *typeInst ) {257 typeString = typeInst-> name+ " " + typeString;241 void GenType::visit( TypeInstType *typeInst ) { 242 typeString = typeInst->get_name() + " " + typeString; 258 243 handleQualifiers( typeInst ); 259 244 } 260 245 261 void GenType:: postvisit( TupleType * tupleType ) {246 void GenType::visit( TupleType * tupleType ) { 262 247 assertf( ! genC, "Tuple types should not reach code generation." ); 263 248 unsigned int i = 0; … … 272 257 } 273 258 274 void GenType:: postvisit( VarArgsType *varArgsType ) {259 void GenType::visit( VarArgsType *varArgsType ) { 275 260 typeString = "__builtin_va_list " + typeString; 276 261 handleQualifiers( varArgsType ); 277 262 } 278 263 279 void GenType:: postvisit( ZeroType *zeroType ) {264 void GenType::visit( ZeroType *zeroType ) { 280 265 // ideally these wouldn't hit codegen at all, but should be safe to make them ints 281 266 typeString = (pretty ? "zero_t " : "long int ") + typeString; … … 283 268 } 284 269 285 void GenType:: postvisit( OneType *oneType ) {270 void GenType::visit( OneType *oneType ) { 286 271 // ideally these wouldn't hit codegen at all, but should be safe to make them ints 287 272 typeString = (pretty ? "one_t " : "long int ") + typeString; … … 289 274 } 290 275 291 void GenType::handleQualifiers( Type * type ) {276 void GenType::handleQualifiers( Type *type ) { 292 277 if ( type->get_const() ) { 293 278 typeString = "const " + typeString; -
src/CodeTools/DeclStats.cc
r7416d46a rf792cb8 23 23 #include <utility> // for pair, make_pair 24 24 25 #include "Common/PassVisitor.h"26 25 #include "Common/SemanticError.h" // for SemanticError 27 26 #include "Common/VectorMap.h" // for VectorMap … … 36 35 namespace CodeTools { 37 36 38 struct DeclStats : public WithShortCircuiting{37 class DeclStats : public Visitor { 39 38 template<typename T> 40 39 static void sum(T& a, const T& b) { a += b; } … … 62 61 63 62 struct ArgPackStats { 64 VectorMap<unsigned> n; ///< Count of decls with each number of elements 65 VectorMap<unsigned> n_basic; ///< Count of decls with each number of basic type elements 66 VectorMap<unsigned> n_generic; ///< Count of decls with each number of generic type elements 67 VectorMap<unsigned> n_poly; ///< Count of decls with each number of polymorphic elements 68 VectorMap<unsigned> n_compound; ///< Count of decls with each number of non-generic compound types 69 std::map<unsigned, unsigned> p_basic; ///< Count of decls with each percentage of basic type elements 70 std::map<unsigned, unsigned> p_generic; ///< Count of decls with each percentage of generic type elements 71 std::map<unsigned, unsigned> p_poly; ///< Count of decls with each percentage of polymorphic elements 72 std::map<unsigned, unsigned> p_compound; ///< Count of decls with each percentage of non-generic compound type elements 73 VectorMap<unsigned> n_types; ///< Count of decls with each number of distinct types in the pack 63 VectorMap<unsigned> n; ///< Count of decls with each number of elements 64 VectorMap<unsigned> n_basic; ///< Count of decls with each number of basic type elements 65 VectorMap<unsigned> n_poly; ///< Count of decls with each number of polymorphic elements 66 std::map<unsigned, unsigned> p_basic; ///< Count of decls with each percentage of basic type elements 67 std::map<unsigned, unsigned> p_poly; ///< Count of decls with each percentage of polymorphic elements 68 VectorMap<unsigned> n_types; ///< Count of decls with each number of distinct types in the pack 74 69 /// Count of decls with each percentage of new types in lists. 75 70 /// Types used in the parameter list that recur in the return list are not considered to be new. … … 79 74 sum(n, o.n); 80 75 sum(n_basic, o.n_basic); 81 sum(n_generic, o.n_generic);82 76 sum(n_poly, o.n_poly); 83 sum(n_compound, o.n_compound);84 77 sum(p_basic, o.p_basic); 85 sum(p_generic, o.p_generic);86 78 sum(p_poly, o.p_poly); 87 sum(p_compound, o.p_compound);88 79 sum(n_types, o.n_types); 89 80 sum(p_new, o.p_new); … … 97 88 /// Count of declarations with each number of assertion parameters 98 89 VectorMap<unsigned> n_type_params; 99 /// Count of generic types with each number of type parameters100 VectorMap<unsigned> n_generic_params;101 /// Count of maximum nesting depth of types102 VectorMap<unsigned> n_generic_nesting;103 90 /// Count of declarations with each name 104 91 std::unordered_map<std::string, unsigned> by_name; 105 92 /// Count of uses of each basic type 106 93 std::unordered_map<std::string, unsigned> basic_type_names; 107 /// Count of uses of each generic type name (includes "*", "[]", "(*)", "[,]") 108 std::unordered_map<std::string, unsigned> generic_type_names; 109 /// Count of uses of each non-generic aggregate type 94 /// Count of uses of each non-basic type 110 95 std::unordered_map<std::string, unsigned> compound_type_names; 111 96 /// Count of decls using each basic type 112 97 std::unordered_map<std::string, unsigned> basic_type_decls; 113 /// Count of decls using each generic type (includes "*", "[]", "(*)", "[,]")114 std::unordered_map<std::string, unsigned> generic_type_decls;115 98 /// Count of decls using each compound type 116 99 std::unordered_map<std::string, unsigned> compound_type_decls; … … 127 110 ArgPackStats assn_returns; 128 111 129 Stats() : n_decls(0), n_type_params(), n_generic_params(), n_generic_nesting(), 130 by_name(), basic_type_names(), generic_type_names(), compound_type_names(), 131 basic_type_decls(), generic_type_decls(), compound_type_decls(), params(), 132 returns(), n_assns(), assn_params(), assn_returns() {} 112 Stats() : n_decls(0), n_type_params(), by_name(), basic_type_names(), compound_type_names(), basic_type_decls(), compound_type_decls(), params(), returns(), n_assns(), assn_params(), assn_returns() {} 133 113 134 114 public: … … 136 116 sum( n_decls, o.n_decls ); 137 117 sum( n_type_params, o.n_type_params ); 138 sum( n_generic_params, o.n_generic_params );139 sum( n_generic_nesting, o.n_generic_nesting );140 118 sum( by_name, o.by_name ); 141 119 sum( basic_type_names, o.basic_type_names ); 142 sum( generic_type_names, o.generic_type_names );143 120 sum( compound_type_names, o.compound_type_names ); 144 121 sum( basic_type_decls, o.basic_type_decls ); 145 sum( generic_type_decls, o.generic_type_decls );146 122 sum( compound_type_decls, o.compound_type_decls ); 147 123 sum( params, o.params ); … … 155 131 }; 156 132 157 /// number of counting bins for linkages 158 static const unsigned n_named_specs = 8; 159 /// map from total number of specs to bins 160 static const unsigned ind_for_linkage[16]; 161 162 Stats for_linkage[n_named_specs]; ///< Stores separate stats per linkage 133 Stats for_linkage[LinkageSpec::NoOfSpecs]; ///< Stores separate stats per linkage 163 134 std::unordered_set<std::string> seen_names; ///< Stores manglenames already seen to avoid double-counting 164 135 Stats total; … … 166 137 std::map<std::pair<unsigned, unsigned>, unsigned> exprs_by_fanout_at_depth; 167 138 168 void countType( const std::string& name, unsigned& n, std::unordered_map<std::string,169 unsigned>& names, std::unordered_map<std::string, unsigned>& decls,170 std::unordered_set<std::string>& elSeen ) {171 ++n;172 ++names[ name ];173 if ( elSeen.insert( name ).second ) { ++decls[ name ]; }174 }175 176 void update_max( unsigned& max, unsigned crnt ) {177 if ( crnt > max ) max = crnt;178 }179 180 void analyzeSubtype( Type* ty, Stats& stats, std::unordered_set<std::string>& elSeen,181 unsigned& n_poly, bool& seen_poly, unsigned& max_depth, unsigned depth ) {182 unsigned x;183 analyzeType( ty, stats, elSeen, x, x, n_poly, x, seen_poly, max_depth, depth + 1 );184 }185 186 void analyzeSubtypes( std::list<DeclarationWithType*>& tys, Stats& stats,187 std::unordered_set<std::string>& elSeen, unsigned& n_poly, bool& seen_poly,188 unsigned& max_depth, unsigned depth, unsigned& n_subs ) {189 for ( DeclarationWithType* dwt : tys ) {190 Type* ty = dwt->get_type();191 n_subs += (unsigned)( dynamic_cast<VoidType*>(ty) != nullptr );192 analyzeSubtype( ty, stats, elSeen, n_poly, seen_poly, max_depth, depth );193 }194 }195 196 void analyzeSubtypes( std::list<Expression*>& tys, Stats& stats,197 std::unordered_set<std::string>& elSeen, unsigned& n_poly, bool& seen_poly,198 unsigned& max_depth, unsigned depth ) {199 for ( Expression* expr : tys ) {200 TypeExpr* texpr = dynamic_cast<TypeExpr*>(expr);201 if ( ! texpr ) continue;202 Type* ty = texpr->get_type();203 analyzeSubtype( ty, stats, elSeen, n_poly, seen_poly, max_depth, depth );204 }205 }206 207 void analyzeSubtypes( std::list<Type*>& tys, Stats& stats,208 std::unordered_set<std::string>& elSeen, unsigned& n_poly, bool& seen_poly,209 unsigned& max_depth, unsigned depth ) {210 for ( Type* ty : tys ) {211 analyzeSubtype( ty, stats, elSeen, n_poly, seen_poly, max_depth, depth );212 }213 }214 215 void analyzeType( Type* ty, Stats& stats, std::unordered_set<std::string>& elSeen,216 unsigned& n_basic, unsigned& n_generic, unsigned& n_poly, unsigned& n_agg,217 bool& seen_poly, unsigned& max_depth, unsigned depth = 0 ) {218 if ( BasicType* bt = dynamic_cast<BasicType*>(ty) ) {219 std::string name = BasicType::typeNames[ bt->get_kind() ];220 countType( name, n_basic, stats.basic_type_names, stats.basic_type_decls, elSeen );221 update_max( max_depth, depth );222 } else if ( PointerType* pt = dynamic_cast<PointerType*>(ty) ) {223 std::string name = "*";224 countType(225 name, n_generic, stats.generic_type_names, stats.generic_type_decls, elSeen);226 analyzeSubtype(227 pt->get_base(), stats, elSeen, n_poly, seen_poly, max_depth, depth );228 ++stats.n_generic_params.at( 1 );229 } else if ( ArrayType* at = dynamic_cast<ArrayType*>(ty) ) {230 std::string name = "[]";231 countType(232 name, n_generic, stats.generic_type_names, stats.generic_type_decls, elSeen);233 analyzeSubtype(234 at->get_base(), stats, elSeen, n_poly, seen_poly, max_depth, depth );235 ++stats.n_generic_params.at( 1 );236 } else if ( ReferenceType* rt = dynamic_cast<ReferenceType*>(ty) ) {237 std::string name = "&";238 countType(239 name, n_generic, stats.generic_type_names, stats.generic_type_decls, elSeen);240 analyzeSubtype(241 rt->get_base(), stats, elSeen, n_poly, seen_poly, max_depth, depth );242 ++stats.n_generic_params.at( 1 );243 } else if ( FunctionType* ft = dynamic_cast<FunctionType*>(ty) ) {244 std::string name = "(*)";245 countType(246 name, n_generic, stats.generic_type_names, stats.generic_type_decls, elSeen);247 unsigned n_subs = 0;248 analyzeSubtypes(249 ft->get_returnVals(), stats, elSeen, n_poly, seen_poly, max_depth, depth,250 n_subs );251 analyzeSubtypes(252 ft->get_parameters(), stats, elSeen, n_poly, seen_poly, max_depth, depth,253 n_subs );254 ++stats.n_generic_params.at( n_subs );255 } else if ( TypeInstType* vt = dynamic_cast<TypeInstType*>(ty) ) {256 if ( ! seen_poly ) {257 ++n_poly;258 seen_poly = true;259 }260 countType(261 vt->get_name(), n_agg, stats.compound_type_names, stats.compound_type_decls,262 elSeen );263 update_max( max_depth, depth );264 } else if ( ReferenceToType* st = dynamic_cast<ReferenceToType*>(ty) ) {265 std::list<Expression*>& params = st->get_parameters();266 if ( params.empty() ) {267 countType(268 st->get_name(), n_agg, stats.compound_type_names,269 stats.compound_type_decls, elSeen );270 update_max( max_depth, depth );271 } else {272 countType(273 st->get_name(), n_generic, stats.generic_type_names,274 stats.generic_type_decls, elSeen);275 analyzeSubtypes( params, stats, elSeen, n_poly, seen_poly, max_depth, depth );276 ++stats.n_generic_params.at( params.size() );277 }278 } else if ( TupleType* tt = dynamic_cast<TupleType*>(ty) ) {279 std::string name = "[,]";280 countType(281 name, n_generic, stats.generic_type_names, stats.generic_type_decls, elSeen);282 analyzeSubtypes(283 tt->get_types(), stats, elSeen, n_poly, seen_poly, max_depth, depth );284 ++stats.n_generic_params.at( tt->size() );285 } else if ( dynamic_cast<VarArgsType*>(ty) ) {286 std::string name = "...";287 countType(288 name, n_agg, stats.compound_type_names, stats.compound_type_decls, elSeen );289 update_max( max_depth, depth );290 } else if ( dynamic_cast<ZeroType*>(ty) ) {291 std::string name = "0";292 countType( name, n_basic, stats.basic_type_names, stats.basic_type_decls, elSeen );293 update_max( max_depth, depth );294 } else if ( dynamic_cast<OneType*>(ty) ) {295 std::string name = "1";296 countType( name, n_basic, stats.basic_type_names, stats.basic_type_decls, elSeen );297 update_max( max_depth, depth );298 }299 }300 301 139 /// Update arg pack stats based on a declaration list 302 void analyze( Stats& stats, std::unordered_set<std::string>& seen, 303 std::unordered_set<std::string>& elSeen, ArgPackStats& pstats, 304 std::list<DeclarationWithType*>& decls ) { 140 void analyze( Stats& stats, std::unordered_set<std::string>& seen, ArgPackStats& pstats, std::list<DeclarationWithType*>& decls ) { 305 141 std::unordered_set<std::string> types; 306 unsigned n = 0; ///< number of args/returns 307 unsigned n_basic = 0; ///< number of basic types 308 unsigned n_generic = 0; ///< number of generic types (includes "*", "&", "[]", "(*)", "[,]") 309 unsigned n_poly = 0; ///< number of polymorphic types 310 unsigned n_agg = 0; ///< number of non-generic aggregate types 311 unsigned n_new = 0; ///< number of new types 312 142 unsigned n = 0; ///< number of args/returns 143 unsigned n_basic = 0; ///< number of basic types 144 unsigned n_poly = 0; ///< number of polymorphic types 145 unsigned n_new = 0; ///< number of new types 313 146 for ( auto decl : decls ) { 314 147 Type* dt = decl->get_type(); … … 319 152 dt->print( ss ); 320 153 types.insert( ss.str() ); 321 if ( seen.insert( ss.str() ).second ) { ++n_new; } 322 323 bool seen_poly = false; 324 unsigned max_depth = 0; 325 analyzeType( 326 dt, stats, elSeen, n_basic, n_generic, n_poly, n_agg, seen_poly, max_depth ); 327 ++stats.n_generic_nesting.at( max_depth ); 328 } 329 154 bool this_new = seen.insert( ss.str() ).second; 155 if ( this_new ) { ++n_new; } 156 157 if ( dynamic_cast<BasicType*>( dt ) ) { 158 ++n_basic; 159 ++stats.basic_type_names[ ss.str() ]; 160 if ( this_new ) { 161 ++stats.basic_type_decls[ ss.str() ]; 162 } 163 } else if ( GenPoly::hasPolyBase( dt ) ) { 164 ++n_poly; 165 } else { 166 ++stats.compound_type_names[ ss.str() ]; 167 if ( this_new ) { 168 ++stats.compound_type_decls[ ss.str() ]; 169 } 170 } 171 } 330 172 ++pstats.n.at( n ); 331 173 ++pstats.n_basic.at( n_basic ); 332 ++pstats.n_generic.at( n_generic );333 174 ++pstats.n_poly.at( n_poly ); 334 ++pstats.n_compound.at( n_agg );335 175 if ( n > 0 ) { 336 176 ++pstats.p_basic[ n_basic*100/n ]; 337 ++pstats.p_generic[ n_generic*100/n ];338 177 ++pstats.p_poly[ n_poly*100/n ]; 339 ++pstats.p_compound[ n_agg*100/n ]; 340 if ( n > 1 ) ++pstats.p_new[ (n_new-1)*100/(n-1) ]; 178 ++pstats.p_new[ n_new*100/n ]; 341 179 } 342 180 ++pstats.n_types.at( types.size() ); … … 345 183 void analyzeFunc( FunctionType* fnTy, Stats& stats, ArgPackStats& params, ArgPackStats& returns ) { 346 184 std::unordered_set<std::string> seen; 347 std::unordered_set<std::string> elSeen; 348 analyze( stats, seen, elSeen, params, fnTy->get_parameters() ); 349 analyze( stats, seen, elSeen, returns, fnTy->get_returnVals() ); 185 analyze( stats, seen, params, fnTy->get_parameters() ); 186 analyze( stats, seen, returns, fnTy->get_returnVals() ); 350 187 } 351 188 … … 363 200 364 201 public: 365 void previsit( FunctionDecl *decl ) { 202 using Visitor::visit; 203 204 virtual void visit( FunctionDecl *decl ) { 366 205 // skip if already seen declaration for this function 367 const std::string& mangleName = decl->get_mangleName().empty() ? decl->name : decl->get_mangleName(); 368 if ( seen_names.insert( mangleName ).second ) { 369 Stats& stats = for_linkage[ ind_for_linkage[ decl->linkage ] ]; 370 371 ++stats.n_decls; 372 FunctionType* fnTy = decl->type; 373 const Type::ForallList& forall = fnTy->forall; 374 ++stats.n_type_params.at( forall.size() ); 375 unsigned n_assns = 0; 376 for ( TypeDecl* fdecl : forall ) { 377 n_assns += fdecl->assertions.size(); 378 for ( DeclarationWithType* assn : fdecl->assertions ) { 379 FunctionType *assnTy = nullptr; 380 if ( ObjectDecl *assnObj = dynamic_cast<ObjectDecl*>(assn) ) { 381 if ( PointerType *ptrTy = dynamic_cast<PointerType*>(assnObj->get_type()) ) { 382 assnTy = dynamic_cast<FunctionType*>(ptrTy->base); 383 } else assnTy = dynamic_cast<FunctionType*>(assnObj->get_type()); 384 } else if ( FunctionDecl *assnDecl = dynamic_cast<FunctionDecl*>(assn) ) { 385 assnTy = assnDecl->type; 386 } 387 if ( assnTy ) analyzeFunc( assnTy, stats, stats.assn_params, stats.assn_returns ); 206 const std::string& mangleName = decl->get_mangleName().empty() ? decl->get_name() : decl->get_mangleName(); 207 if ( ! seen_names.insert( mangleName ).second ) { 208 maybeAccept( decl->get_statements(), *this ); 209 return; 210 } 211 212 Stats& stats = for_linkage[ decl->get_linkage() ]; 213 214 ++stats.n_decls; 215 FunctionType* fnTy = decl->get_functionType(); 216 const Type::ForallList& forall = fnTy->get_forall(); 217 ++stats.n_type_params.at( forall.size() ); 218 unsigned n_assns = 0; 219 for ( TypeDecl* fdecl : forall ) { 220 n_assns += fdecl->get_assertions().size(); 221 for ( DeclarationWithType* assn : fdecl->get_assertions() ) { 222 FunctionType *assnTy = 0; 223 if ( ObjectDecl *assnObj = dynamic_cast<ObjectDecl*>(assn) ) { 224 if ( PointerType *ptrTy = dynamic_cast<PointerType*>(assnObj->get_type()) ) { 225 assnTy = dynamic_cast<FunctionType*>(ptrTy->get_base()); 226 } else assnTy = dynamic_cast<FunctionType*>(assnObj->get_type()); 227 } else if ( FunctionDecl *assnDecl = dynamic_cast<FunctionDecl*>(assn) ) { 228 assnTy = assnDecl->get_functionType(); 388 229 } 389 } 390 ++stats.n_assns[ n_assns ]; 391 ++stats.by_name[ decl->name ]; 392 analyzeFunc( fnTy, stats, stats.params, stats.returns ); 393 } 394 } 395 396 void previsit( UntypedExpr *expr ) { 397 visit_children = false; 230 if ( assnTy ) analyzeFunc( assnTy, stats, stats.assn_params, stats.assn_returns ); 231 } 232 } 233 ++stats.n_assns[ n_assns ]; 234 235 ++stats.by_name[ decl->get_name() ]; 236 237 analyzeFunc( fnTy, stats, stats.params, stats.returns ); 238 239 // analyze expressions in decl statements 240 maybeAccept( decl->get_statements(), *this ); 241 } 242 243 virtual void visit( UntypedExpr *expr ) { 398 244 analyzeExpr( expr, 0 ); 399 245 } … … 426 272 template<typename F> 427 273 void printAllHisto( const std::string& name, F extract ) { 428 VectorMap<unsigned> histos[ n_named_specs];274 VectorMap<unsigned> histos[LinkageSpec::NoOfSpecs]; 429 275 VectorMap<unsigned> thisto; 430 276 431 277 for ( const auto& entry : extract(total) ) { ++thisto.at( entry.second ); } 432 278 433 for ( unsigned i = 0; i < n_named_specs; ++i ) {279 for ( unsigned i = 0; i < LinkageSpec::NoOfSpecs; ++i ) { 434 280 // can't be a higher count in one of the sub-histograms than the total 435 281 histos[i].reserve( thisto.size() ); … … 449 295 template<typename F> 450 296 void printAllSparseHisto( const std::string& name, F extract ) { 451 std::map<unsigned, unsigned> histos[ n_named_specs];297 std::map<unsigned, unsigned> histos[LinkageSpec::NoOfSpecs]; 452 298 std::map<unsigned, unsigned> thisto; 453 299 454 300 for ( const auto& entry : extract(total) ) { ++thisto[ entry.second ]; } 455 301 456 for ( unsigned i = 0; i < n_named_specs; ++i ) {302 for ( unsigned i = 0; i < LinkageSpec::NoOfSpecs; ++i ) { 457 303 for ( const auto& entry : extract(for_linkage[i]) ) { ++histos[i][entry.second]; } 458 304 } … … 461 307 const auto& key = entry.first; 462 308 std::cout << "\"" << name << "\"," << key; 463 for ( unsigned i = 0; i < n_named_specs; ++i ) {309 for ( unsigned i = 0; i < LinkageSpec::NoOfSpecs; ++i ) { 464 310 auto it = histos[i].find( key ); 465 311 if ( it == histos[i].end() ) std::cout << ",0"; … … 473 319 void printAllPack( const std::string& name, F extract ) { 474 320 printAllMap("n_basic_" + name, [&extract](const Stats& stats) { return extract(stats).n_basic; }); 475 printAllMap("n_generic_" + name, [&extract](const Stats& stats) { return extract(stats).n_generic; });476 321 printAllMap("n_poly_" + name, [&extract](const Stats& stats) { return extract(stats).n_poly; }); 477 printAllMap("n_compound_" + name, [&extract](const Stats& stats) { return extract(stats).n_compound; });478 322 printAllMap("n_" + name, [&extract](const Stats& stats) { return extract(stats).n; }); 479 323 printAllMap("%_basic_" + name, [&extract](const Stats& stats) { return extract(stats).p_basic; }); 480 printAllMap("%_generic_" + name, [&extract](const Stats& stats) { return extract(stats).p_generic; });481 324 printAllMap("%_poly_" + name, [&extract](const Stats& stats) { return extract(stats).p_poly; }); 482 printAllMap("%_compound_" + name, [&extract](const Stats& stats) { return extract(stats).p_compound; });483 325 printAllMap("n_distinct_types_" + name, [&extract](const Stats& stats) { return extract(stats).n_types; }); 484 326 printAllMap("%_new_types_in_" + name, [&extract](const Stats& stats) { return extract(stats).p_new; }); … … 500 342 } 501 343 502 std::cout << ",,\"intrinsic\",\"Cforall\",\"C\",\"autogen\",\" compiler\",\"builtinCFA\",\"builtinC\",\"other\",\"TOTAL\"" << std::endl;344 std::cout << ",,\"intrinsic\",\"Cforall\",\"C\",\"autogen\",\"builtin\",\"TOTAL\"" << std::endl; 503 345 504 346 printAllMap("n_type_params", [](const Stats& stats) { return stats.n_type_params; }); 505 printAllMap("n_generic_params", [](const Stats& stats) { return stats.n_generic_params; });506 printAllMap("n_generic_nesting", [](const Stats& stats) { return stats.n_generic_nesting; });507 347 printAll("n_decls", [](const Stats& stats) { return stats.n_decls; }); 508 348 printAll("unique_names", [](const Stats& stats) { return stats.by_name.size(); }); … … 511 351 printAllSparseHisto("basic_type_uses", [](const Stats& stats) { return stats.basic_type_names; }); 512 352 printAllSparseHisto("decls_using_basic_type", [](const Stats& stats) { return stats.basic_type_decls; }); 513 printAll("generic_type_names", [](const Stats& stats) { return stats.generic_type_names.size(); });514 printAllSparseHisto("generic_type_uses", [](const Stats& stats) { return stats.generic_type_names; });515 printAllSparseHisto("decls_using_generic_type", [](const Stats& stats) { return stats.generic_type_decls; });516 353 printAll("compound_type_names", [](const Stats& stats) { return stats.compound_type_names.size(); }); 517 354 printAllSparseHisto("compound_type_uses", [](const Stats& stats) { return stats.compound_type_names; }); … … 528 365 }; 529 366 530 const unsigned DeclStats::ind_for_linkage[]531 = { 7, 7, 2, 1, 7, 7, 7, 3, 4, 7, 6, 5, 7, 7, 7, 0 };532 533 367 void printDeclStats( std::list< Declaration * > &translationUnit ) { 534 PassVisitor<DeclStats>stats;368 DeclStats stats; 535 369 acceptAll( translationUnit, stats ); 536 stats.p ass.print();370 stats.print(); 537 371 } 538 372 -
src/Common/PassVisitor.h
r7416d46a rf792cb8 19 19 #include "SynTree/Expression.h" 20 20 #include "SynTree/Constant.h" 21 22 class TypeSubstitution; 21 #include "SynTree/TypeSubstitution.h" 23 22 24 23 #include "PassVisitor.proto.h" … … 119 118 virtual void visit( StmtExpr * stmtExpr ) override final; 120 119 virtual void visit( UniqueExpr * uniqueExpr ) override final; 121 virtual void visit( UntypedInitExpr * initExpr ) override final;122 virtual void visit( InitExpr * initExpr ) override final;123 120 124 121 virtual void visit( VoidType * basicType ) override final; … … 213 210 virtual Expression * mutate( StmtExpr * stmtExpr ) override final; 214 211 virtual Expression * mutate( UniqueExpr * uniqueExpr ) override final; 215 virtual Expression * mutate( UntypedInitExpr * initExpr ) override final;216 virtual Expression * mutate( InitExpr * initExpr ) override final;217 212 218 213 virtual Type * mutate( VoidType * basicType ) override final; … … 408 403 }; 409 404 410 #include "SynTree/TypeSubstitution.h"411 405 #include "PassVisitor.impl.h" -
src/Common/PassVisitor.impl.h
r7416d46a rf792cb8 62 62 63 63 template< typename pass_type > 64 inline void acceptAll( std::list< Declaration* > &decls, PassVisitor< pass_type >& visitor ) {64 static inline void acceptAll( std::list< Declaration* > &decls, PassVisitor< pass_type >& visitor ) { 65 65 DeclList_t* beforeDecls = visitor.get_beforeDecls(); 66 66 DeclList_t* afterDecls = visitor.get_afterDecls(); … … 90 90 91 91 template< typename pass_type > 92 inline void mutateAll( std::list< Declaration* > &decls, PassVisitor< pass_type >& mutator ) {92 static inline void mutateAll( std::list< Declaration* > &decls, PassVisitor< pass_type >& mutator ) { 93 93 DeclList_t* beforeDecls = mutator.get_beforeDecls(); 94 94 DeclList_t* afterDecls = mutator.get_afterDecls(); … … 1853 1853 } 1854 1854 1855 //--------------------------------------------------------------------------1856 // UntypedInitExpr1857 template< typename pass_type >1858 void PassVisitor< pass_type >::visit( UntypedInitExpr * node ) {1859 VISIT_START( node );1860 1861 indexerScopedAccept( node->result, *this );1862 maybeAccept_impl ( node->expr , *this );1863 // not currently visiting initAlts, but this doesn't matter since this node is only used in the resolver.1864 1865 VISIT_END( node );1866 }1867 1868 template< typename pass_type >1869 Expression * PassVisitor< pass_type >::mutate( UntypedInitExpr * node ) {1870 MUTATE_START( node );1871 1872 indexerScopedMutate( node->env , *this );1873 indexerScopedMutate( node->result, *this );1874 maybeMutate_impl ( node->expr , *this );1875 // not currently visiting initAlts, but this doesn't matter since this node is only used in the resolver.1876 1877 MUTATE_END( Expression, node );1878 }1879 1880 //--------------------------------------------------------------------------1881 // InitExpr1882 template< typename pass_type >1883 void PassVisitor< pass_type >::visit( InitExpr * node ) {1884 VISIT_START( node );1885 1886 indexerScopedAccept( node->result, *this );1887 maybeAccept_impl ( node->expr , *this );1888 maybeAccept_impl ( node->designation, *this );1889 1890 VISIT_END( node );1891 }1892 1893 template< typename pass_type >1894 Expression * PassVisitor< pass_type >::mutate( InitExpr * node ) {1895 MUTATE_START( node );1896 1897 indexerScopedMutate( node->env , *this );1898 indexerScopedMutate( node->result, *this );1899 maybeMutate_impl ( node->expr , *this );1900 maybeMutate_impl ( node->designation, *this );1901 1902 MUTATE_END( Expression, node );1903 }1904 1905 1855 template< typename pass_type > 1906 1856 void PassVisitor< pass_type >::visit( VoidType * node ) { -
src/Concurrency/Waitfor.cc
r7416d46a rf792cb8 507 507 new ListInit({ 508 508 new SingleInit( new AddressExpr( new VariableExpr( index ) ) ), 509 new ListInit({ 510 new SingleInit( new VariableExpr( acceptables ) ), 511 new SingleInit( new ConstantExpr( Constant::from_ulong( count ) ) ) 512 }) 509 new SingleInit( new VariableExpr( acceptables ) ), 510 new SingleInit( new ConstantExpr( Constant::from_ulong( count ) ) ) 513 511 }) 514 512 ); -
src/ControlStruct/ExceptTranslate.cc
r7416d46a rf792cb8 316 316 VarExprReplacer::DeclMap mapping; 317 317 mapping[ handler_decl ] = local_except; 318 VarExprReplacer::replace( handler->body, mapping ); 318 VarExprReplacer mapper( mapping ); 319 handler->get_body()->accept( mapper ); 319 320 } 320 321 -
src/ControlStruct/LabelFixer.cc
r7416d46a rf792cb8 44 44 45 45 void LabelFixer::postvisit( FunctionDecl * functionDecl ) { 46 PassVisitor<MLEMutator>mlemut( resolveJumps(), generator );46 MLEMutator mlemut( resolveJumps(), generator ); 47 47 functionDecl->acceptMutator( mlemut ); 48 48 } -
src/ControlStruct/MLEMutator.cc
r7416d46a rf792cb8 46 46 void MLEMutator::fixBlock( std::list< Statement * > &kids ) { 47 47 for ( std::list< Statement * >::iterator k = kids.begin(); k != kids.end(); k++ ) { 48 *k = (*k)->acceptMutator(* visitor);48 *k = (*k)->acceptMutator(*this); 49 49 50 50 if ( ! get_breakLabel().empty() ) { … … 57 57 } 58 58 59 void MLEMutator::premutate( CompoundStmt *cmpndStmt ) { 60 visit_children = false; 61 bool labeledBlock = !(cmpndStmt->labels.empty()); 59 CompoundStmt* MLEMutator::mutate( CompoundStmt *cmpndStmt ) { 60 bool labeledBlock = !(cmpndStmt->get_labels().empty()); 62 61 if ( labeledBlock ) { 63 62 Label brkLabel = generator->newLabel("blockBreak", cmpndStmt); … … 66 65 67 66 // a child statement may set the break label - if they do, attach it to the next statement 68 std::list< Statement * > &kids = cmpndStmt-> kids;67 std::list< Statement * > &kids = cmpndStmt->get_kids(); 69 68 fixBlock( kids ); 70 69 … … 76 75 enclosingControlStructures.pop_back(); 77 76 } // if 78 } 79 77 78 return cmpndStmt; 79 } 80 81 template< typename LoopClass > 82 Statement *MLEMutator::handleLoopStmt( LoopClass *loopStmt ) { 83 // remember this as the most recent enclosing loop, then mutate the body of the loop -- this will determine 84 // whether brkLabel and contLabel are used with branch statements and will recursively do the same to nested 85 // loops 86 Label brkLabel = generator->newLabel("loopBreak", loopStmt); 87 Label contLabel = generator->newLabel("loopContinue", loopStmt); 88 enclosingControlStructures.push_back( Entry( loopStmt, brkLabel, contLabel ) ); 89 loopStmt->set_body ( loopStmt->get_body()->acceptMutator( *this ) ); 90 91 assert( ! enclosingControlStructures.empty() ); 92 Entry &e = enclosingControlStructures.back(); 93 // sanity check that the enclosing loops have been popped correctly 94 assert ( e == loopStmt ); 95 96 // this will take the necessary steps to add definitions of the previous two labels, if they are used. 97 loopStmt->set_body( mutateLoop( loopStmt->get_body(), e ) ); 98 enclosingControlStructures.pop_back(); 99 100 return loopStmt; 101 } 102 103 Statement *MLEMutator::mutate( CaseStmt *caseStmt ) { 104 caseStmt->set_condition( maybeMutate( caseStmt->get_condition(), *this ) ); 105 fixBlock( caseStmt->get_statements() ); 106 107 return caseStmt; 108 } 109 110 template< typename IfClass > 111 Statement *MLEMutator::handleIfStmt( IfClass *ifStmt ) { 112 // generate a label for breaking out of a labeled if 113 bool labeledBlock = !(ifStmt->get_labels().empty()); 114 if ( labeledBlock ) { 115 Label brkLabel = generator->newLabel("blockBreak", ifStmt); 116 enclosingControlStructures.push_back( Entry( ifStmt, brkLabel ) ); 117 } // if 118 119 Parent::mutate( ifStmt ); 120 121 if ( labeledBlock ) { 122 if ( ! enclosingControlStructures.back().useBreakExit().empty() ) { 123 set_breakLabel( enclosingControlStructures.back().useBreakExit() ); 124 } // if 125 enclosingControlStructures.pop_back(); 126 } // if 127 return ifStmt; 128 } 129 130 template< typename SwitchClass > 131 Statement *MLEMutator::handleSwitchStmt( SwitchClass *switchStmt ) { 132 // generate a label for breaking out of a labeled switch 133 Label brkLabel = generator->newLabel("switchBreak", switchStmt); 134 enclosingControlStructures.push_back( Entry(switchStmt, brkLabel) ); 135 mutateAll( switchStmt->get_statements(), *this ); 136 137 Entry &e = enclosingControlStructures.back(); 138 assert ( e == switchStmt ); 139 140 // only generate break label if labeled break is used 141 if ( e.isBreakUsed() ) { 142 // for the purposes of keeping switch statements uniform (i.e. all statements that are direct children of a 143 // switch should be CastStmts), append the exit label + break to the last case statement; create a default 144 // case if there are no cases 145 std::list< Statement * > &statements = switchStmt->get_statements(); 146 if ( statements.empty() ) { 147 statements.push_back( CaseStmt::makeDefault() ); 148 } // if 149 150 if ( CaseStmt * c = dynamic_cast< CaseStmt * >( statements.back() ) ) { 151 Statement * stmt = new BranchStmt( Label("brkLabel"), BranchStmt::Break ); 152 stmt->labels.push_back( brkLabel ); 153 c->get_statements().push_back( stmt ); 154 } else assert(0); // as of this point, all statements of a switch are still CaseStmts 155 } // if 156 157 assert ( enclosingControlStructures.back() == switchStmt ); 158 enclosingControlStructures.pop_back(); 159 return switchStmt; 160 } 80 161 81 162 void addUnused( Statement * stmt, const Label & originalTarget ) { … … 98 179 99 180 100 Statement *MLEMutator:: postmutate( BranchStmt *branchStmt ) throw ( SemanticError ) {101 std::string originalTarget = branchStmt-> originalTarget;181 Statement *MLEMutator::mutate( BranchStmt *branchStmt ) throw ( SemanticError ) { 182 std::string originalTarget = branchStmt->get_originalTarget(); 102 183 103 184 std::list< Entry >::reverse_iterator targetEntry; … … 134 215 // branch error checks, get the appropriate label name and create a goto 135 216 Label exitLabel; 136 switch ( branchStmt-> type) {217 switch ( branchStmt->get_type() ) { 137 218 case BranchStmt::Break: 138 219 assert( targetEntry->useBreakExit() != ""); … … 148 229 149 230 // add unused attribute to label to silence warnings 150 addUnused( targetEntry->get_controlStructure(), branchStmt-> originalTarget);231 addUnused( targetEntry->get_controlStructure(), branchStmt->get_originalTarget() ); 151 232 152 233 // transform break/continue statements into goto to simplify later handling of branches … … 179 260 } 180 261 181 template< typename LoopClass > 182 void MLEMutator::prehandleLoopStmt( LoopClass * loopStmt ) { 183 // remember this as the most recent enclosing loop, then mutate the body of the loop -- this will determine 184 // whether brkLabel and contLabel are used with branch statements and will recursively do the same to nested 185 // loops 186 Label brkLabel = generator->newLabel("loopBreak", loopStmt); 187 Label contLabel = generator->newLabel("loopContinue", loopStmt); 188 enclosingControlStructures.push_back( Entry( loopStmt, brkLabel, contLabel ) ); 189 } 190 191 template< typename LoopClass > 192 Statement * MLEMutator::posthandleLoopStmt( LoopClass * loopStmt ) { 193 assert( ! enclosingControlStructures.empty() ); 194 Entry &e = enclosingControlStructures.back(); 195 // sanity check that the enclosing loops have been popped correctly 196 assert ( e == loopStmt ); 197 198 // this will take the necessary steps to add definitions of the previous two labels, if they are used. 199 loopStmt->set_body( mutateLoop( loopStmt->get_body(), e ) ); 200 enclosingControlStructures.pop_back(); 201 return loopStmt; 202 } 203 204 void MLEMutator::premutate( WhileStmt * whileStmt ) { 205 return prehandleLoopStmt( whileStmt ); 206 } 207 208 void MLEMutator::premutate( ForStmt * forStmt ) { 209 return prehandleLoopStmt( forStmt ); 210 } 211 212 Statement * MLEMutator::postmutate( WhileStmt * whileStmt ) { 213 return posthandleLoopStmt( whileStmt ); 214 } 215 216 Statement * MLEMutator::postmutate( ForStmt * forStmt ) { 217 return posthandleLoopStmt( forStmt ); 218 } 219 220 void MLEMutator::premutate( IfStmt * ifStmt ) { 221 // generate a label for breaking out of a labeled if 222 bool labeledBlock = !(ifStmt->get_labels().empty()); 223 if ( labeledBlock ) { 224 Label brkLabel = generator->newLabel("blockBreak", ifStmt); 225 enclosingControlStructures.push_back( Entry( ifStmt, brkLabel ) ); 226 } // if 227 } 228 229 Statement * MLEMutator::postmutate( IfStmt * ifStmt ) { 230 bool labeledBlock = !(ifStmt->get_labels().empty()); 231 if ( labeledBlock ) { 232 if ( ! enclosingControlStructures.back().useBreakExit().empty() ) { 233 set_breakLabel( enclosingControlStructures.back().useBreakExit() ); 234 } // if 235 enclosingControlStructures.pop_back(); 236 } // if 237 return ifStmt; 238 } 239 240 void MLEMutator::premutate( CaseStmt *caseStmt ) { 241 visit_children = false; 242 caseStmt->condition = maybeMutate( caseStmt->condition, *visitor ); 243 fixBlock( caseStmt->stmts ); 244 } 245 246 void MLEMutator::premutate( SwitchStmt *switchStmt ) { 247 // generate a label for breaking out of a labeled switch 248 Label brkLabel = generator->newLabel("switchBreak", switchStmt); 249 enclosingControlStructures.push_back( Entry(switchStmt, brkLabel) ); 250 } 251 252 Statement * MLEMutator::postmutate( SwitchStmt * switchStmt ) { 253 Entry &e = enclosingControlStructures.back(); 254 assert ( e == switchStmt ); 255 256 // only generate break label if labeled break is used 257 if ( e.isBreakUsed() ) { 258 // for the purposes of keeping switch statements uniform (i.e. all statements that are direct children of a 259 // switch should be CastStmts), append the exit label + break to the last case statement; create a default 260 // case if there are no cases 261 std::list< Statement * > &statements = switchStmt->statements; 262 if ( statements.empty() ) { 263 statements.push_back( CaseStmt::makeDefault() ); 264 } // if 265 266 if ( CaseStmt * c = dynamic_cast< CaseStmt * >( statements.back() ) ) { 267 Statement * stmt = new BranchStmt( Label("brkLabel"), BranchStmt::Break ); 268 stmt->labels.push_back( e.useBreakExit() ); 269 c->stmts.push_back( stmt ); 270 } else assert(0); // as of this point, all statements of a switch are still CaseStmts 271 } // if 272 273 assert ( enclosingControlStructures.back() == switchStmt ); 274 enclosingControlStructures.pop_back(); 275 return switchStmt; 262 Statement *MLEMutator::mutate( WhileStmt *whileStmt ) { 263 return handleLoopStmt( whileStmt ); 264 } 265 266 Statement *MLEMutator::mutate( ForStmt *forStmt ) { 267 return handleLoopStmt( forStmt ); 268 } 269 270 Statement *MLEMutator::mutate( IfStmt *ifStmt ) { 271 return handleIfStmt( ifStmt ); 272 } 273 274 Statement *MLEMutator::mutate( SwitchStmt *switchStmt ) { 275 return handleSwitchStmt( switchStmt ); 276 276 } 277 277 } // namespace ControlStruct -
src/ControlStruct/MLEMutator.h
r7416d46a rf792cb8 20 20 #include <string> // for string 21 21 22 #include "Common/PassVisitor.h"23 22 #include "Common/SemanticError.h" // for SemanticError 24 23 #include "SynTree/Label.h" // for Label … … 27 26 28 27 namespace ControlStruct { 29 class LabelGenerator;28 class LabelGenerator; 30 29 31 class MLEMutator : public WithVisitorRef<MLEMutator>, public WithShortCircuiting{30 class MLEMutator : public Mutator { 32 31 class Entry; 33 32 33 typedef Mutator Parent; 34 34 public: 35 35 MLEMutator( std::map<Label, Statement *> *t, LabelGenerator *gen = 0 ) : targetTable( t ), breakLabel(std::string("")), generator( gen ) {} 36 36 ~MLEMutator(); 37 37 38 void premutate( CompoundStmt *cmpndStmt ); 39 Statement * postmutate( BranchStmt *branchStmt ) throw ( SemanticError ); 40 void premutate( WhileStmt *whileStmt ); 41 Statement * postmutate( WhileStmt *whileStmt ); 42 void premutate( ForStmt *forStmt ); 43 Statement * postmutate( ForStmt *forStmt ); 44 void premutate( CaseStmt *caseStmt ); 45 void premutate( IfStmt *ifStmt ); 46 Statement * postmutate( IfStmt *ifStmt ); 47 void premutate( SwitchStmt *switchStmt ); 48 Statement * postmutate( SwitchStmt *switchStmt ); 38 virtual CompoundStmt *mutate( CompoundStmt *cmpndStmt ) override; 39 virtual Statement *mutate( WhileStmt *whileStmt ) override; 40 virtual Statement *mutate( ForStmt *forStmt ) override; 41 virtual Statement *mutate( BranchStmt *branchStmt ) throw ( SemanticError ) override; 42 virtual Statement *mutate( CaseStmt *caseStmt ) override; 43 virtual Statement *mutate( IfStmt *ifStmt ) override; 44 virtual Statement *mutate( SwitchStmt *switchStmt ) override; 49 45 50 46 Statement *mutateLoop( Statement *bodyLoop, Entry &e ); … … 58 54 loop( _loop ), breakExit( _breakExit ), contExit( _contExit ), breakUsed(false), contUsed(false) {} 59 55 60 bool operator==( const Statement *stmt ) { return loop == stmt; }61 bool operator!=( const Statement *stmt ) { return loop != stmt; }56 bool operator==( const Statement *stmt ) { return ( loop == stmt ); } 57 bool operator!=( const Statement *stmt ) { return ( loop != stmt ); } 62 58 63 bool operator==( const Entry &other ) { return loop == other.get_controlStructure(); }59 bool operator==( const Entry &other ) { return ( loop == other.get_controlStructure() ); } 64 60 65 61 Statement *get_controlStructure() const { return loop; } … … 82 78 83 79 template< typename LoopClass > 84 void prehandleLoopStmt( LoopClass *loopStmt );80 Statement *handleLoopStmt( LoopClass *loopStmt ); 85 81 86 template< typename LoopClass > 87 Statement * posthandleLoopStmt( LoopClass * loopStmt ); 82 template< typename IfClass > 83 Statement *handleIfStmt( IfClass *switchStmt ); 84 85 template< typename SwitchClass > 86 Statement *handleSwitchStmt( SwitchClass *switchStmt ); 88 87 89 88 void fixBlock( std::list< Statement * > &kids ); -
src/GenPoly/Box.cc
r7416d46a rf792cb8 302 302 Expression *makeOp( const std::string &name, Expression *arg ) { 303 303 UntypedExpr *expr = new UntypedExpr( new NameExpr( name ) ); 304 expr-> args.push_back( arg );304 expr->get_args().push_back( arg ); 305 305 return expr; 306 306 } … … 309 309 Expression *makeOp( const std::string &name, Expression *lhs, Expression *rhs ) { 310 310 UntypedExpr *expr = new UntypedExpr( new NameExpr( name ) ); 311 expr-> args.push_back( lhs );312 expr-> args.push_back( rhs );311 expr->get_args().push_back( lhs ); 312 expr->get_args().push_back( rhs ); 313 313 return expr; 314 314 } … … 316 316 /// Returns the dereference of a local pointer variable 317 317 Expression *derefVar( ObjectDecl *var ) { 318 return UntypedExpr::createDeref(new VariableExpr( var ) );318 return makeOp( "*?", new VariableExpr( var ) ); 319 319 } 320 320 … … 831 831 if ( ! isPolyType( arg->get_type() ) ) { 832 832 UntypedExpr *deref = new UntypedExpr( new NameExpr( "*?" ) ); 833 deref->args.push_back( new CastExpr( new VariableExpr( param ), new PointerType( Type::Qualifiers(), arg->get_type()->clone() ) ) ); 834 deref->result = arg->get_type()->clone(); 835 deref->result->set_lvalue( true ); 833 deref->get_args().push_back( new CastExpr( new VariableExpr( param ), new PointerType( Type::Qualifiers(), arg->get_type()->clone() ) ) ); 834 deref->set_result( arg->get_type()->clone() ); 836 835 return deref; 837 836 } // if -
src/GenPoly/Lvalue.cc
r7416d46a rf792cb8 47 47 if ( SymTab::dereferenceOperator ) { 48 48 VariableExpr * deref = new VariableExpr( SymTab::dereferenceOperator ); 49 deref-> result = new PointerType( Type::Qualifiers(), deref->result);50 Type * base = InitTweak::getPointerBase( arg-> result);51 assertf( base, "expected pointer type in dereference (type was %s)", toString( arg-> result).c_str() );49 deref->set_result( new PointerType( Type::Qualifiers(), deref->get_result() ) ); 50 Type * base = InitTweak::getPointerBase( arg->get_result() ); 51 assertf( base, "expected pointer type in dereference (type was %s)", toString( arg->get_result() ).c_str() ); 52 52 ApplicationExpr * ret = new ApplicationExpr( deref, { arg } ); 53 delete ret-> result;54 ret-> result = base->clone();55 ret-> result->set_lvalue( true );53 delete ret->get_result(); 54 ret->set_result( base->clone() ); 55 ret->get_result()->set_lvalue( true ); 56 56 return ret; 57 57 } else { … … 308 308 int diff = depth1-depth2; 309 309 if ( diff == 0 ) { 310 // conversion between references of the same depth311 310 assertf( depth1 == depth2, "non-intrinsic reference with cast of reference to reference not yet supported: %d %d %s", depth1, depth2, toString( castExpr ).c_str() ); 312 311 PRINT( std::cerr << castExpr << std::endl; ) 313 312 return castExpr; 314 313 } else if ( diff < 0 ) { 315 // conversion from reference to reference with less depth (e.g. int && -> int &): add dereferences 316 Expression * ret = castExpr->arg; 314 Expression * ret = castExpr->get_arg(); 317 315 for ( int i = 0; i < diff; ++i ) { 318 316 ret = mkDeref( ret ); 319 317 } 320 ret->env = castExpr->env; 321 delete ret->result; 322 ret->result = castExpr->result; 323 ret->result->set_lvalue( true ); // ensure result is lvalue 324 castExpr->env = nullptr; 325 castExpr->arg = nullptr; 326 castExpr->result = nullptr; 318 ret->set_env( castExpr->get_env() ); 319 delete ret->get_result(); 320 ret->set_result( castExpr->get_result() ); 321 castExpr->set_env( nullptr ); 322 castExpr->set_arg( nullptr ); 323 castExpr->set_result( nullptr ); 327 324 delete castExpr; 328 325 return ret; 329 326 } else if ( diff > 0 ) { 330 // conversion from reference to reference with more depth (e.g. int & -> int &&): add address-of 331 Expression * ret = castExpr->arg; 327 Expression * ret = castExpr->get_arg(); 332 328 for ( int i = 0; i < diff; ++i ) { 333 329 ret = new AddressExpr( ret ); 334 330 } 335 ret-> env = castExpr->env;336 delete ret-> result;337 ret-> result = castExpr->result;338 castExpr-> env = nullptr;339 castExpr-> arg = nullptr;340 castExpr-> result = nullptr;331 ret->set_env( castExpr->get_env() ); 332 delete ret->get_result(); 333 ret->set_result( castExpr->get_result() ); 334 castExpr->set_env( nullptr ); 335 castExpr->set_arg( nullptr ); 336 castExpr->set_result( nullptr ); 341 337 delete castExpr; 342 338 return ret; … … 346 342 PRINT( std::cerr << castExpr << std::endl; ) 347 343 return castExpr; 348 } else if ( castExpr-> arg->result->get_lvalue() ) {344 } else if ( castExpr->get_arg()->get_result()->get_lvalue() ) { 349 345 // conversion from lvalue to reference 350 346 // xxx - keep cast, but turn into pointer cast?? … … 352 348 PRINT( 353 349 std::cerr << "convert lvalue to reference -- &" << std::endl; 354 std::cerr << castExpr-> arg<< std::endl;350 std::cerr << castExpr->get_arg() << std::endl; 355 351 ) 356 AddressExpr * ret = new AddressExpr( castExpr-> arg);357 if ( refType-> base->get_qualifiers() != castExpr->arg->result->get_qualifiers() ) {352 AddressExpr * ret = new AddressExpr( castExpr->get_arg() ); 353 if ( refType->get_base()->get_qualifiers() != castExpr->get_arg()->get_result()->get_qualifiers() ) { 358 354 // must keep cast if cast-to type is different from the actual type 359 castExpr-> arg = ret;355 castExpr->set_arg( ret ); 360 356 return castExpr; 361 357 } 362 ret-> env = castExpr->env;363 delete ret-> result;364 ret-> result = castExpr->result;365 castExpr-> env = nullptr;366 castExpr-> arg = nullptr;367 castExpr-> result = nullptr;358 ret->set_env( castExpr->get_env() ); 359 delete ret->get_result(); 360 ret->set_result( castExpr->get_result() ); 361 castExpr->set_env( nullptr ); 362 castExpr->set_arg( nullptr ); 363 castExpr->set_result( nullptr ); 368 364 delete castExpr; 369 365 return ret; … … 372 368 } 373 369 assertf( false, "Only conversions to reference from lvalue are currently supported: %s", toString( castExpr ).c_str() ); 374 } else if ( ReferenceType * refType = dynamic_cast< ReferenceType * >( castExpr-> arg->result) ) {370 } else if ( ReferenceType * refType = dynamic_cast< ReferenceType * >( castExpr->get_arg()->get_result() ) ) { 375 371 (void)refType; 376 372 // conversion from reference to rvalue … … 379 375 std::cerr << "was = " << castExpr << std::endl; 380 376 ) 381 Expression * ret = castExpr-> arg;382 TypeSubstitution * env = castExpr-> env;377 Expression * ret = castExpr->get_arg(); 378 TypeSubstitution * env = castExpr->get_env(); 383 379 castExpr->set_env( nullptr ); 384 380 if ( ! isIntrinsicReference( ret ) ) { … … 386 382 ret = mkDeref( ret ); 387 383 } 388 if ( ResolvExpr::typesCompatibleIgnoreQualifiers( castExpr-> result, castExpr->arg->result->stripReferences(), SymTab::Indexer() ) ) {384 if ( ResolvExpr::typesCompatibleIgnoreQualifiers( castExpr->get_result(), castExpr->get_arg()->get_result()->stripReferences(), SymTab::Indexer() ) ) { 389 385 // can remove cast if types are compatible, changing expression type to value type 390 ret->result = castExpr->result->clone(); 391 ret->result->set_lvalue( true ); // ensure result is lvalue 392 castExpr->arg = nullptr; 386 ret->set_result( castExpr->get_result()->clone() ); 387 castExpr->set_arg( nullptr ); 393 388 delete castExpr; 394 389 } else { 395 390 // must keep cast if types are different 396 castExpr-> arg = ret;391 castExpr->set_arg( ret ); 397 392 ret = castExpr; 398 393 } -
src/GenPoly/ScrubTyVars.cc
r7416d46a rf792cb8 25 25 26 26 namespace GenPoly { 27 Type * ScrubTyVars:: postmutate( TypeInstType *typeInst ) {27 Type * ScrubTyVars::mutate( TypeInstType *typeInst ) { 28 28 if ( ! tyVars ) { 29 29 if ( typeInst->get_isFtype() ) { … … 31 31 return new PointerType( Type::Qualifiers(), new FunctionType( Type::Qualifiers(), true ) ); 32 32 } else { 33 PointerType * ret = new PointerType( Type::Qualifiers(), new VoidType( typeInst->get_qualifiers() ) );33 PointerType *ret = new PointerType( Type::Qualifiers(), new VoidType( typeInst->get_qualifiers() ) ); 34 34 delete typeInst; 35 35 return ret; … … 37 37 } 38 38 39 TyVarMap::const_iterator tyVar = tyVars->find( typeInst-> name);39 TyVarMap::const_iterator tyVar = tyVars->find( typeInst->get_name() ); 40 40 if ( tyVar != tyVars->end() ) { 41 41 switch ( tyVar->second.kind ) { … … 43 43 case TypeDecl::Ttype: 44 44 { 45 PointerType * ret = new PointerType( Type::Qualifiers(), new VoidType( typeInst->get_qualifiers() ) );45 PointerType *ret = new PointerType( Type::Qualifiers(), new VoidType( typeInst->get_qualifiers() ) ); 46 46 delete typeInst; 47 47 return ret; … … 55 55 } 56 56 57 Type * ScrubTyVars::mutateAggregateType( Type * ty ) {57 Type * ScrubTyVars::mutateAggregateType( Type *ty ) { 58 58 if ( shouldScrub( ty ) ) { 59 PointerType * ret = new PointerType( Type::Qualifiers(), new VoidType( ty->get_qualifiers() ) );59 PointerType *ret = new PointerType( Type::Qualifiers(), new VoidType( ty->get_qualifiers() ) ); 60 60 delete ty; 61 61 return ret; … … 64 64 } 65 65 66 Type * ScrubTyVars:: postmutate( StructInstType *structInst ) {66 Type * ScrubTyVars::mutate( StructInstType *structInst ) { 67 67 return mutateAggregateType( structInst ); 68 68 } 69 69 70 Type * ScrubTyVars:: postmutate( UnionInstType *unionInst ) {70 Type * ScrubTyVars::mutate( UnionInstType *unionInst ) { 71 71 return mutateAggregateType( unionInst ); 72 72 } 73 73 74 void ScrubTyVars::primeBaseScrub( Type * type) {75 // need to determine whether type needs to be scrubbed to determine whether76 // automatic recursion is necessary77 if ( Type * t = shouldScrub( type ) ) {78 visit_children = false;79 GuardValue( dynType );80 dynType = t;81 } 74 Expression * ScrubTyVars::mutate( SizeofExpr *szeof ) { 75 // sizeof( T ) => _sizeof_T parameter, which is the size of T 76 if ( Type *dynType = shouldScrub( szeof->get_type() ) ) { 77 Expression *expr = new NameExpr( sizeofName( mangleType( dynType ) ) ); 78 return expr; 79 } else { 80 return Mutator::mutate( szeof ); 81 } // if 82 82 } 83 83 84 Expression * ScrubTyVars:: postmutate( SizeofExpr * szeof ) {85 // sizeof( T ) => _sizeof_T parameter, which is the sizeof T86 if ( dynType) {87 Expression *expr = new NameExpr( sizeofName( mangleType( dynType ) ) );84 Expression * ScrubTyVars::mutate( AlignofExpr *algnof ) { 85 // alignof( T ) => _alignof_T parameter, which is the alignment of T 86 if ( Type *dynType = shouldScrub( algnof->get_type() ) ) { 87 Expression *expr = new NameExpr( alignofName( mangleType( dynType ) ) ); 88 88 return expr; 89 } else { 90 return Mutator::mutate( algnof ); 89 91 } // if 90 return szeof;91 92 } 92 93 93 Expression * ScrubTyVars::postmutate( AlignofExpr * algnof ) { 94 // alignof( T ) => _alignof_T parameter, which is the alignment of T 95 if ( dynType ) { 96 Expression *expr = new NameExpr( alignofName( mangleType( dynType ) ) ); 97 return expr; 98 } // if 99 return algnof; 100 } 101 102 Type * ScrubTyVars::postmutate( PointerType * pointer ) { 103 if ( dynType ) { 104 Type * ret = dynType->acceptMutator( *visitor ); 94 Type * ScrubTyVars::mutate( PointerType *pointer ) { 95 // // special case of shouldScrub that takes all TypeInstType pointer bases, even if they're not dynamic 96 // Type *base = pointer->get_base(); 97 // Type *dynType = 0; 98 // if ( dynamicOnly ) { 99 // if ( TypeInstType *typeInst = dynamic_cast< TypeInstType* >( base ) ) { 100 // if ( tyVars.find( typeInst->get_name() ) != tyVars.end() ) { dynType = typeInst; } 101 // } else { 102 // dynType = isDynType( base, tyVars ); 103 // } 104 // } else { 105 // dynType = isPolyType( base, tyVars ); 106 // } 107 // if ( dynType ) { 108 if ( Type *dynType = shouldScrub( pointer->get_base() ) ) { 109 Type *ret = dynType->acceptMutator( *this ); 105 110 ret->get_qualifiers() |= pointer->get_qualifiers(); 106 pointer-> base = nullptr;111 pointer->set_base( 0 ); 107 112 delete pointer; 108 113 return ret; 109 114 } 110 return pointer;115 return Mutator::mutate( pointer ); 111 116 } 112 117 } // namespace GenPoly -
src/GenPoly/ScrubTyVars.h
r7416d46a rf792cb8 18 18 #include <cassert> // for assert 19 19 20 #include "Common/PassVisitor.h"21 20 #include "GenPoly.h" // for TyVarMap, isPolyType, isDynType 22 21 #include "SynTree/Mutator.h" // for Mutator … … 28 27 29 28 namespace GenPoly { 30 struct ScrubTyVars : public WithVisitorRef<ScrubTyVars>, public WithShortCircuiting, public WithGuards{29 class ScrubTyVars : public Mutator { 31 30 /// Whether to scrub all type variables from the provided map, dynamic type variables from the provided map, or all type variables 32 31 enum ScrubMode { FromMap, DynamicFromMap, All }; … … 52 51 static SynTreeClass *scrubAll( SynTreeClass *target ); 53 52 54 /// determine if children should be visited based on whether base type should be scrubbed. 55 void primeBaseScrub( Type * ); 56 57 void premutate( TypeInstType * ) { visit_children = false; } 58 void premutate( StructInstType * ) { visit_children = false; } 59 void premutate( UnionInstType * ) { visit_children = false; } 60 void premutate( SizeofExpr * szeof ) { primeBaseScrub( szeof->type ); } 61 void premutate( AlignofExpr * algnof ) { primeBaseScrub( algnof->type ); } 62 void premutate( PointerType * pointer ) { primeBaseScrub( pointer->base ); } 63 64 Type * postmutate( TypeInstType * typeInst ); 65 Type * postmutate( StructInstType * structInst ); 66 Type * postmutate( UnionInstType * unionInst ); 67 Expression * postmutate( SizeofExpr * szeof ); 68 Expression * postmutate( AlignofExpr * algnof ); 69 Type * postmutate( PointerType * pointer ); 53 virtual Type* mutate( TypeInstType *typeInst ); 54 virtual Type* mutate( StructInstType *structInst ); 55 virtual Type* mutate( UnionInstType *unionInst ); 56 virtual Expression* mutate( SizeofExpr *szeof ); 57 virtual Expression* mutate( AlignofExpr *algnof ); 58 virtual Type* mutate( PointerType *pointer ); 70 59 71 60 private: … … 86 75 const TyVarMap *tyVars; ///< Type variables to scrub 87 76 ScrubMode mode; ///< which type variables to scrub? [FromMap] 88 89 Type * dynType = nullptr; ///< result of shouldScrub90 77 }; 91 78 92 79 template< typename SynTreeClass > 93 80 SynTreeClass * ScrubTyVars::scrub( SynTreeClass *target, const TyVarMap &tyVars ) { 94 PassVisitor<ScrubTyVars>scrubber( tyVars );81 ScrubTyVars scrubber( tyVars ); 95 82 return static_cast< SynTreeClass * >( target->acceptMutator( scrubber ) ); 96 83 } … … 98 85 template< typename SynTreeClass > 99 86 SynTreeClass * ScrubTyVars::scrubDynamic( SynTreeClass *target, const TyVarMap &tyVars ) { 100 PassVisitor<ScrubTyVars>scrubber( tyVars, ScrubTyVars::DynamicFromMap );87 ScrubTyVars scrubber( tyVars, ScrubTyVars::DynamicFromMap ); 101 88 return static_cast< SynTreeClass * >( target->acceptMutator( scrubber ) ); 102 89 } … … 104 91 template< typename SynTreeClass > 105 92 SynTreeClass * ScrubTyVars::scrubAll( SynTreeClass *target ) { 106 PassVisitor<ScrubTyVars>scrubber;93 ScrubTyVars scrubber; 107 94 return static_cast< SynTreeClass * >( target->acceptMutator( scrubber ) ); 108 95 } -
src/InitTweak/FixInit.cc
r7416d46a rf792cb8 197 197 }; 198 198 199 struct GenStructMemberCalls final : public WithGuards, public WithShortCircuiting, public WithIndexer , public WithVisitorRef<GenStructMemberCalls>{199 struct GenStructMemberCalls final : public WithGuards, public WithShortCircuiting, public WithIndexer { 200 200 /// generate default/copy ctor and dtor calls for user-defined struct ctor/dtors 201 201 /// for any member that is missing a corresponding ctor/dtor call. … … 203 203 static void generate( std::list< Declaration * > & translationUnit ); 204 204 205 void premutate( FunctionDecl * funcDecl ); 206 DeclarationWithType * postmutate( FunctionDecl * funcDecl ); 207 208 void premutate( MemberExpr * memberExpr ); 209 void premutate( ApplicationExpr * appExpr ); 210 211 /// Note: this post mutate used to be in a separate visitor. If this pass breaks, one place to examine is whether it is 212 /// okay for this part of the recursion to occur alongside the rest. 213 Expression * postmutate( UntypedExpr * expr ); 205 void previsit( FunctionDecl * funcDecl ); 206 void postvisit( FunctionDecl * funcDecl ); 207 208 void previsit( MemberExpr * memberExpr ); 209 void previsit( ApplicationExpr * appExpr ); 214 210 215 211 SemanticError errors; … … 224 220 bool isCtor = false; // true if current function is a constructor 225 221 StructDecl * structDecl = nullptr; 222 }; 223 224 // very simple resolver-like mutator class - used to 225 // resolve UntypedExprs that are found within newly 226 // generated constructor/destructor calls 227 class MutatingResolver final : public Mutator { 228 public: 229 MutatingResolver( SymTab::Indexer & indexer ) : indexer( indexer ) {} 230 231 using Mutator::mutate; 232 virtual DeclarationWithType* mutate( ObjectDecl *objectDecl ) override; 233 virtual Expression* mutate( UntypedExpr *untypedExpr ) override; 234 235 private: 236 SymTab::Indexer & indexer; 226 237 }; 227 238 … … 304 315 void GenStructMemberCalls::generate( std::list< Declaration * > & translationUnit ) { 305 316 PassVisitor<GenStructMemberCalls> warner; 306 mutateAll( translationUnit, warner );317 acceptAll( translationUnit, warner ); 307 318 } 308 319 … … 939 950 } 940 951 941 void GenStructMemberCalls::pre mutate( FunctionDecl * funcDecl ) {952 void GenStructMemberCalls::previsit( FunctionDecl * funcDecl ) { 942 953 GuardValue( function ); 943 954 GuardValue( unhandled ); … … 973 984 } 974 985 975 DeclarationWithType * GenStructMemberCalls::postmutate( FunctionDecl * funcDecl ) {986 void GenStructMemberCalls::postvisit( FunctionDecl * funcDecl ) { 976 987 // remove the unhandled objects from usedUninit, because a call is inserted 977 988 // to handle them - only objects that are later constructed are used uninitialized. … … 1027 1038 Statement * callStmt = stmt.front(); 1028 1039 1040 MutatingResolver resolver( indexer ); 1029 1041 try { 1030 callStmt->acceptMutator( *visitor );1042 callStmt->acceptMutator( resolver ); 1031 1043 if ( isCtor ) { 1032 1044 function->get_statements()->push_front( callStmt ); … … 1044 1056 throw errors; 1045 1057 } 1046 return funcDecl;1047 1058 } 1048 1059 … … 1070 1081 } 1071 1082 1072 void GenStructMemberCalls::pre mutate( ApplicationExpr * appExpr ) {1083 void GenStructMemberCalls::previsit( ApplicationExpr * appExpr ) { 1073 1084 if ( ! checkWarnings( function ) ) { 1074 1085 visit_children = false; … … 1095 1106 } 1096 1107 1097 void GenStructMemberCalls::pre mutate( MemberExpr * memberExpr ) {1108 void GenStructMemberCalls::previsit( MemberExpr * memberExpr ) { 1098 1109 if ( ! checkWarnings( function ) || ! isCtor ) { 1099 1110 visit_children = false; … … 1123 1134 } 1124 1135 1125 Expression * GenStructMemberCalls::postmutate( UntypedExpr * untypedExpr ) { 1136 DeclarationWithType * MutatingResolver::mutate( ObjectDecl * objectDecl ) { 1137 // add object to the indexer assumes that there will be no name collisions 1138 // in generated code. If this changes, add mutate methods for entities with 1139 // scope and call {enter,leave}Scope explicitly. 1140 indexer.addId( objectDecl ); 1141 return objectDecl; 1142 } 1143 1144 Expression * MutatingResolver::mutate( UntypedExpr * untypedExpr ) { 1126 1145 Expression * newExpr = untypedExpr; 1127 1146 ResolvExpr::findVoidExpression( newExpr, indexer ); -
src/ResolvExpr/AlternativeFinder.cc
r7416d46a rf792cb8 60 60 61 61 namespace ResolvExpr { 62 struct AlternativeFinder::Finder : public WithShortCircuiting {63 Finder( AlternativeFinder & altFinder ) : altFinder( altFinder ), indexer( altFinder.indexer ), alternatives( altFinder.alternatives ), env( altFinder.env ), targetType( altFinder.targetType ) {}64 65 void previsit( BaseSyntaxNode * ) { visit_children = false; }66 67 void postvisit( ApplicationExpr * applicationExpr );68 void postvisit( UntypedExpr * untypedExpr );69 void postvisit( AddressExpr * addressExpr );70 void postvisit( LabelAddressExpr * labelExpr );71 void postvisit( CastExpr * castExpr );72 void postvisit( VirtualCastExpr * castExpr );73 void postvisit( UntypedMemberExpr * memberExpr );74 void postvisit( MemberExpr * memberExpr );75 void postvisit( NameExpr * variableExpr );76 void postvisit( VariableExpr * variableExpr );77 void postvisit( ConstantExpr * constantExpr );78 void postvisit( SizeofExpr * sizeofExpr );79 void postvisit( AlignofExpr * alignofExpr );80 void postvisit( UntypedOffsetofExpr * offsetofExpr );81 void postvisit( OffsetofExpr * offsetofExpr );82 void postvisit( OffsetPackExpr * offsetPackExpr );83 void postvisit( AttrExpr * attrExpr );84 void postvisit( LogicalExpr * logicalExpr );85 void postvisit( ConditionalExpr * conditionalExpr );86 void postvisit( CommaExpr * commaExpr );87 void postvisit( ImplicitCopyCtorExpr * impCpCtorExpr );88 void postvisit( ConstructorExpr * ctorExpr );89 void postvisit( RangeExpr * rangeExpr );90 void postvisit( UntypedTupleExpr * tupleExpr );91 void postvisit( TupleExpr * tupleExpr );92 void postvisit( TupleIndexExpr * tupleExpr );93 void postvisit( TupleAssignExpr * tupleExpr );94 void postvisit( UniqueExpr * unqExpr );95 void postvisit( StmtExpr * stmtExpr );96 void postvisit( UntypedInitExpr * initExpr );97 98 /// Adds alternatives for anonymous members99 void addAnonConversions( const Alternative & alt );100 /// Adds alternatives for member expressions, given the aggregate, conversion cost for that aggregate, and name of the member101 template< typename StructOrUnionType > void addAggMembers( StructOrUnionType *aggInst, Expression *expr, const Cost &newCost, const TypeEnvironment & env, Expression * member );102 /// Adds alternatives for member expressions where the left side has tuple type103 void addTupleMembers( TupleType * tupleType, Expression *expr, const Cost &newCost, const TypeEnvironment & env, Expression * member );104 /// Adds alternatives for offsetof expressions, given the base type and name of the member105 template< typename StructOrUnionType > void addOffsetof( StructOrUnionType *aggInst, const std::string &name );106 /// Takes a final result and checks if its assertions can be satisfied107 template<typename OutputIterator>108 void validateFunctionAlternative( const Alternative &func, ArgPack& result, const std::vector<ArgPack>& results, OutputIterator out );109 /// Finds matching alternatives for a function, given a set of arguments110 template<typename OutputIterator>111 void makeFunctionAlternatives( const Alternative &func, FunctionType *funcType, const ExplodedArgs& args, OutputIterator out );112 /// Checks if assertion parameters match for a new alternative113 template< typename OutputIterator >114 void inferParameters( const AssertionSet &need, AssertionSet &have, const Alternative &newAlt, OpenVarSet &openVars, OutputIterator out );115 private:116 AlternativeFinder & altFinder;117 const SymTab::Indexer &indexer;118 AltList & alternatives;119 const TypeEnvironment &env;120 Type *& targetType;121 };122 123 62 Expression *resolveInVoidContext( Expression *expr, const SymTab::Indexer &indexer, TypeEnvironment &env ) { 124 63 CastExpr *castToVoid = new CastExpr( expr ); … … 213 152 214 153 void renameTypes( Expression *expr ) { 215 renameTyVars( expr->result);154 expr->get_result()->accept( global_renamer ); 216 155 } 217 156 } // namespace … … 246 185 247 186 void AlternativeFinder::find( Expression *expr, bool adjust, bool prune, bool failFast ) { 248 PassVisitor<Finder> finder( *this ); 249 expr->accept( finder ); 187 expr->accept( *this ); 250 188 if ( failFast && alternatives.empty() ) { 251 189 PRINT( … … 306 244 } 307 245 308 void AlternativeFinder:: Finder::addAnonConversions( const Alternative & alt ) {246 void AlternativeFinder::addAnonConversions( const Alternative & alt ) { 309 247 // adds anonymous member interpretations whenever an aggregate value type is seen. 310 248 // it's okay for the aggregate expression to have reference type -- cast it to the base type to treat the aggregate as the referenced value … … 327 265 328 266 template< typename StructOrUnionType > 329 void AlternativeFinder:: Finder::addAggMembers( StructOrUnionType *aggInst, Expression *expr, const Cost &newCost, const TypeEnvironment & env, Expression * member ) {267 void AlternativeFinder::addAggMembers( StructOrUnionType *aggInst, Expression *expr, const Cost &newCost, const TypeEnvironment & env, Expression * member ) { 330 268 // by this point, member must be a name expr 331 269 NameExpr * nameExpr = dynamic_cast< NameExpr * >( member ); … … 346 284 } 347 285 348 void AlternativeFinder:: Finder::addTupleMembers( TupleType * tupleType, Expression *expr, const Cost &newCost, const TypeEnvironment & env, Expression * member ) {286 void AlternativeFinder::addTupleMembers( TupleType * tupleType, Expression *expr, const Cost &newCost, const TypeEnvironment & env, Expression * member ) { 349 287 if ( ConstantExpr * constantExpr = dynamic_cast< ConstantExpr * >( member ) ) { 350 288 // get the value of the constant expression as an int, must be between 0 and the length of the tuple type to have meaning … … 370 308 } 371 309 372 void AlternativeFinder:: Finder::postvisit( ApplicationExpr *applicationExpr ) {310 void AlternativeFinder::visit( ApplicationExpr *applicationExpr ) { 373 311 alternatives.push_back( Alternative( applicationExpr->clone(), env, Cost::zero ) ); 374 312 } … … 547 485 Type *adjType = candidate->get_type()->clone(); 548 486 adjustExprType( adjType, newEnv, indexer ); 549 renameTyVars( adjType);487 adjType->accept( global_renamer ); 550 488 PRINT( 551 489 std::cerr << "unifying "; … … 603 541 604 542 template< typename OutputIterator > 605 void AlternativeFinder:: Finder::inferParameters( const AssertionSet &need, AssertionSet &have, const Alternative &newAlt, OpenVarSet &openVars, OutputIterator out ) {543 void AlternativeFinder::inferParameters( const AssertionSet &need, AssertionSet &have, const Alternative &newAlt, OpenVarSet &openVars, OutputIterator out ) { 606 544 // PRINT( 607 545 // std::cerr << "inferParameters: assertions needed are" << std::endl; … … 657 595 658 596 ArgPack() 659 : parent(0), expr(), cost(Cost::zero), env(), need(), have(), openVars(), nextArg(0), 597 : parent(0), expr(), cost(Cost::zero), env(), need(), have(), openVars(), nextArg(0), 660 598 tupleStart(0), nextExpl(0), explAlt(0) {} 661 599 … … 768 706 769 707 if ( nTuples > 0 || ! results[i].expr ) { 770 // first iteration or no expression to clone, 708 // first iteration or no expression to clone, 771 709 // push empty tuple expression 772 710 newResult.parent = i; … … 954 892 955 893 template<typename OutputIterator> 956 void AlternativeFinder:: Finder::validateFunctionAlternative( const Alternative &func, ArgPack& result,894 void AlternativeFinder::validateFunctionAlternative( const Alternative &func, ArgPack& result, 957 895 const std::vector<ArgPack>& results, OutputIterator out ) { 958 896 ApplicationExpr *appExpr = new ApplicationExpr( func.expr->clone() ); … … 977 915 978 916 template<typename OutputIterator> 979 void AlternativeFinder:: Finder::makeFunctionAlternatives( const Alternative &func,917 void AlternativeFinder::makeFunctionAlternatives( const Alternative &func, 980 918 FunctionType *funcType, const ExplodedArgs &args, OutputIterator out ) { 981 919 OpenVarSet funcOpenVars; … … 1084 1022 } 1085 1023 1086 void AlternativeFinder:: Finder::postvisit( UntypedExpr *untypedExpr ) {1024 void AlternativeFinder::visit( UntypedExpr *untypedExpr ) { 1087 1025 AlternativeFinder funcFinder( indexer, env ); 1088 1026 funcFinder.findWithAdjustment( untypedExpr->get_function() ); … … 1091 1029 1092 1030 std::vector< AlternativeFinder > argAlternatives; 1093 altFinder.findSubExprs( untypedExpr->begin_args(), untypedExpr->end_args(),1031 findSubExprs( untypedExpr->begin_args(), untypedExpr->end_args(), 1094 1032 back_inserter( argAlternatives ) ); 1095 1033 1096 1034 // take care of possible tuple assignments 1097 1035 // if not tuple assignment, assignment is taken care of as a normal function call 1098 Tuples::handleTupleAssignment( altFinder, untypedExpr, argAlternatives );1036 Tuples::handleTupleAssignment( *this, untypedExpr, argAlternatives ); 1099 1037 1100 1038 // find function operators … … 1234 1172 // fix this issue in a more robust way. 1235 1173 targetType = nullptr; 1236 postvisit( untypedExpr );1174 visit( untypedExpr ); 1237 1175 } 1238 1176 } … … 1243 1181 } 1244 1182 1245 void AlternativeFinder:: Finder::postvisit( AddressExpr *addressExpr ) {1183 void AlternativeFinder::visit( AddressExpr *addressExpr ) { 1246 1184 AlternativeFinder finder( indexer, env ); 1247 1185 finder.find( addressExpr->get_arg() ); … … 1254 1192 } 1255 1193 1256 void AlternativeFinder:: Finder::postvisit( LabelAddressExpr * expr ) {1194 void AlternativeFinder::visit( LabelAddressExpr * expr ) { 1257 1195 alternatives.push_back( Alternative{ expr->clone(), env, Cost::zero } ); 1258 1196 } … … 1285 1223 } 1286 1224 1287 void AlternativeFinder:: Finder::postvisit( CastExpr *castExpr ) {1225 void AlternativeFinder::visit( CastExpr *castExpr ) { 1288 1226 Type *& toType = castExpr->get_result(); 1289 1227 assert( toType ); … … 1340 1278 } 1341 1279 1342 void AlternativeFinder:: Finder::postvisit( VirtualCastExpr * castExpr ) {1280 void AlternativeFinder::visit( VirtualCastExpr * castExpr ) { 1343 1281 assertf( castExpr->get_result(), "Implicate virtual cast targets not yet supported." ); 1344 1282 AlternativeFinder finder( indexer, env ); … … 1352 1290 } 1353 1291 1354 void AlternativeFinder:: Finder::postvisit( UntypedMemberExpr *memberExpr ) {1292 void AlternativeFinder::visit( UntypedMemberExpr *memberExpr ) { 1355 1293 AlternativeFinder funcFinder( indexer, env ); 1356 1294 funcFinder.findWithAdjustment( memberExpr->get_aggregate() ); … … 1374 1312 } 1375 1313 1376 void AlternativeFinder:: Finder::postvisit( MemberExpr *memberExpr ) {1314 void AlternativeFinder::visit( MemberExpr *memberExpr ) { 1377 1315 alternatives.push_back( Alternative( memberExpr->clone(), env, Cost::zero ) ); 1378 1316 } 1379 1317 1380 void AlternativeFinder:: Finder::postvisit( NameExpr *nameExpr ) {1318 void AlternativeFinder::visit( NameExpr *nameExpr ) { 1381 1319 std::list< SymTab::Indexer::IdData > declList; 1382 1320 indexer.lookupId( nameExpr->get_name(), declList ); … … 1399 1337 } 1400 1338 1401 void AlternativeFinder:: Finder::postvisit( VariableExpr *variableExpr ) {1339 void AlternativeFinder::visit( VariableExpr *variableExpr ) { 1402 1340 // not sufficient to clone here, because variable's type may have changed 1403 1341 // since the VariableExpr was originally created. … … 1405 1343 } 1406 1344 1407 void AlternativeFinder:: Finder::postvisit( ConstantExpr *constantExpr ) {1345 void AlternativeFinder::visit( ConstantExpr *constantExpr ) { 1408 1346 alternatives.push_back( Alternative( constantExpr->clone(), env, Cost::zero ) ); 1409 1347 } 1410 1348 1411 void AlternativeFinder:: Finder::postvisit( SizeofExpr *sizeofExpr ) {1349 void AlternativeFinder::visit( SizeofExpr *sizeofExpr ) { 1412 1350 if ( sizeofExpr->get_isType() ) { 1413 1351 Type * newType = sizeofExpr->get_type()->clone(); … … 1430 1368 } 1431 1369 1432 void AlternativeFinder:: Finder::postvisit( AlignofExpr *alignofExpr ) {1370 void AlternativeFinder::visit( AlignofExpr *alignofExpr ) { 1433 1371 if ( alignofExpr->get_isType() ) { 1434 1372 Type * newType = alignofExpr->get_type()->clone(); … … 1452 1390 1453 1391 template< typename StructOrUnionType > 1454 void AlternativeFinder:: Finder::addOffsetof( StructOrUnionType *aggInst, const std::string &name ) {1392 void AlternativeFinder::addOffsetof( StructOrUnionType *aggInst, const std::string &name ) { 1455 1393 std::list< Declaration* > members; 1456 1394 aggInst->lookup( name, members ); … … 1465 1403 } 1466 1404 1467 void AlternativeFinder:: Finder::postvisit( UntypedOffsetofExpr *offsetofExpr ) {1405 void AlternativeFinder::visit( UntypedOffsetofExpr *offsetofExpr ) { 1468 1406 AlternativeFinder funcFinder( indexer, env ); 1469 1407 // xxx - resolveTypeof? … … 1475 1413 } 1476 1414 1477 void AlternativeFinder:: Finder::postvisit( OffsetofExpr *offsetofExpr ) {1415 void AlternativeFinder::visit( OffsetofExpr *offsetofExpr ) { 1478 1416 alternatives.push_back( Alternative( offsetofExpr->clone(), env, Cost::zero ) ); 1479 1417 } 1480 1418 1481 void AlternativeFinder:: Finder::postvisit( OffsetPackExpr *offsetPackExpr ) {1419 void AlternativeFinder::visit( OffsetPackExpr *offsetPackExpr ) { 1482 1420 alternatives.push_back( Alternative( offsetPackExpr->clone(), env, Cost::zero ) ); 1483 1421 } … … 1506 1444 } 1507 1445 1508 void AlternativeFinder:: Finder::postvisit( AttrExpr *attrExpr ) {1446 void AlternativeFinder::visit( AttrExpr *attrExpr ) { 1509 1447 // assume no 'pointer-to-attribute' 1510 1448 NameExpr *nameExpr = dynamic_cast< NameExpr* >( attrExpr->get_attr() ); … … 1520 1458 if ( function->get_parameters().size() == 1 ) { 1521 1459 if ( attrExpr->get_isType() ) { 1522 resolveAttr( data, function, attrExpr->get_type(), env, altFinder);1460 resolveAttr( data, function, attrExpr->get_type(), env, *this ); 1523 1461 } else { 1524 1462 AlternativeFinder finder( indexer, env ); … … 1526 1464 for ( AltList::iterator choice = finder.alternatives.begin(); choice != finder.alternatives.end(); ++choice ) { 1527 1465 if ( choice->expr->get_result()->size() == 1 ) { 1528 resolveAttr(data, function, choice->expr->get_result(), choice->env, altFinder);1466 resolveAttr(data, function, choice->expr->get_result(), choice->env, *this ); 1529 1467 } // fi 1530 1468 } // for … … 1541 1479 } 1542 1480 1543 void AlternativeFinder:: Finder::postvisit( LogicalExpr *logicalExpr ) {1481 void AlternativeFinder::visit( LogicalExpr *logicalExpr ) { 1544 1482 AlternativeFinder firstFinder( indexer, env ); 1545 1483 firstFinder.findWithAdjustment( logicalExpr->get_arg1() ); 1546 if ( firstFinder.alternatives.empty() ) return;1547 AlternativeFinder secondFinder( indexer, env );1548 secondFinder.findWithAdjustment( logicalExpr->get_arg2() );1549 if ( secondFinder.alternatives.empty() ) return;1550 1484 for ( AltList::const_iterator first = firstFinder.alternatives.begin(); first != firstFinder.alternatives.end(); ++first ) { 1485 AlternativeFinder secondFinder( indexer, first->env ); 1486 secondFinder.findWithAdjustment( logicalExpr->get_arg2() ); 1551 1487 for ( AltList::const_iterator second = secondFinder.alternatives.begin(); second != secondFinder.alternatives.end(); ++second ) { 1552 TypeEnvironment compositeEnv;1553 compositeEnv.simpleCombine( first->env );1554 compositeEnv.simpleCombine( second->env );1555 1556 1488 LogicalExpr *newExpr = new LogicalExpr( first->expr->clone(), second->expr->clone(), logicalExpr->get_isAnd() ); 1557 alternatives.push_back( Alternative( newExpr, compositeEnv, first->cost + second->cost ) );1558 } 1559 } 1560 } 1561 1562 void AlternativeFinder:: Finder::postvisit( ConditionalExpr *conditionalExpr ) {1489 alternatives.push_back( Alternative( newExpr, second->env, first->cost + second->cost ) ); 1490 } 1491 } 1492 } 1493 1494 void AlternativeFinder::visit( ConditionalExpr *conditionalExpr ) { 1563 1495 // find alternatives for condition 1564 1496 AlternativeFinder firstFinder( indexer, env ); 1565 1497 firstFinder.findWithAdjustment( conditionalExpr->get_arg1() ); 1566 if ( firstFinder.alternatives.empty() ) return;1567 // find alternatives for true expression1568 AlternativeFinder secondFinder( indexer, env );1569 secondFinder.findWithAdjustment( conditionalExpr->get_arg2() );1570 if ( secondFinder.alternatives.empty() ) return;1571 // find alterantives for false expression1572 AlternativeFinder thirdFinder( indexer, env );1573 thirdFinder.findWithAdjustment( conditionalExpr->get_arg3() );1574 if ( thirdFinder.alternatives.empty() ) return;1575 1498 for ( AltList::const_iterator first = firstFinder.alternatives.begin(); first != firstFinder.alternatives.end(); ++first ) { 1499 // find alternatives for true expression 1500 AlternativeFinder secondFinder( indexer, first->env ); 1501 secondFinder.findWithAdjustment( conditionalExpr->get_arg2() ); 1576 1502 for ( AltList::const_iterator second = secondFinder.alternatives.begin(); second != secondFinder.alternatives.end(); ++second ) { 1503 // find alterantives for false expression 1504 AlternativeFinder thirdFinder( indexer, second->env ); 1505 thirdFinder.findWithAdjustment( conditionalExpr->get_arg3() ); 1577 1506 for ( AltList::const_iterator third = thirdFinder.alternatives.begin(); third != thirdFinder.alternatives.end(); ++third ) { 1578 TypeEnvironment compositeEnv;1579 compositeEnv.simpleCombine( first->env );1580 compositeEnv.simpleCombine( second->env );1581 compositeEnv.simpleCombine( third->env );1582 1583 1507 // unify true and false types, then infer parameters to produce new alternatives 1584 1508 OpenVarSet openVars; 1585 1509 AssertionSet needAssertions, haveAssertions; 1586 Alternative newAlt( 0, compositeEnv, first->cost + second->cost + third->cost );1510 Alternative newAlt( 0, third->env, first->cost + second->cost + third->cost ); 1587 1511 Type* commonType = nullptr; 1588 1512 if ( unify( second->expr->get_result(), third->expr->get_result(), newAlt.env, needAssertions, haveAssertions, openVars, indexer, commonType ) ) { … … 1600 1524 } 1601 1525 1602 void AlternativeFinder:: Finder::postvisit( CommaExpr *commaExpr ) {1526 void AlternativeFinder::visit( CommaExpr *commaExpr ) { 1603 1527 TypeEnvironment newEnv( env ); 1604 1528 Expression *newFirstArg = resolveInVoidContext( commaExpr->get_arg1(), indexer, newEnv ); … … 1611 1535 } 1612 1536 1613 void AlternativeFinder:: Finder::postvisit( RangeExpr * rangeExpr ) {1537 void AlternativeFinder::visit( RangeExpr * rangeExpr ) { 1614 1538 // resolve low and high, accept alternatives whose low and high types unify 1615 1539 AlternativeFinder firstFinder( indexer, env ); 1616 1540 firstFinder.findWithAdjustment( rangeExpr->get_low() ); 1617 if ( firstFinder.alternatives.empty() ) return;1618 AlternativeFinder secondFinder( indexer, env );1619 secondFinder.findWithAdjustment( rangeExpr->get_high() );1620 if ( secondFinder.alternatives.empty() ) return;1621 1541 for ( AltList::const_iterator first = firstFinder.alternatives.begin(); first != firstFinder.alternatives.end(); ++first ) { 1542 AlternativeFinder secondFinder( indexer, first->env ); 1543 secondFinder.findWithAdjustment( rangeExpr->get_high() ); 1622 1544 for ( AltList::const_iterator second = secondFinder.alternatives.begin(); second != secondFinder.alternatives.end(); ++second ) { 1623 TypeEnvironment compositeEnv;1624 compositeEnv.simpleCombine( first->env );1625 compositeEnv.simpleCombine( second->env );1626 1545 OpenVarSet openVars; 1627 1546 AssertionSet needAssertions, haveAssertions; 1628 Alternative newAlt( 0, compositeEnv, first->cost + second->cost );1547 Alternative newAlt( 0, second->env, first->cost + second->cost ); 1629 1548 Type* commonType = nullptr; 1630 1549 if ( unify( first->expr->get_result(), second->expr->get_result(), newAlt.env, needAssertions, haveAssertions, openVars, indexer, commonType ) ) { … … 1638 1557 } 1639 1558 1640 void AlternativeFinder:: Finder::postvisit( UntypedTupleExpr *tupleExpr ) {1559 void AlternativeFinder::visit( UntypedTupleExpr *tupleExpr ) { 1641 1560 std::vector< AlternativeFinder > subExprAlternatives; 1642 altFinder.findSubExprs( tupleExpr->get_exprs().begin(), tupleExpr->get_exprs().end(),1561 findSubExprs( tupleExpr->get_exprs().begin(), tupleExpr->get_exprs().end(), 1643 1562 back_inserter( subExprAlternatives ) ); 1644 1563 std::vector< AltList > possibilities; … … 1656 1575 } 1657 1576 1658 void AlternativeFinder:: Finder::postvisit( TupleExpr *tupleExpr ) {1577 void AlternativeFinder::visit( TupleExpr *tupleExpr ) { 1659 1578 alternatives.push_back( Alternative( tupleExpr->clone(), env, Cost::zero ) ); 1660 1579 } 1661 1580 1662 void AlternativeFinder:: Finder::postvisit( ImplicitCopyCtorExpr * impCpCtorExpr ) {1581 void AlternativeFinder::visit( ImplicitCopyCtorExpr * impCpCtorExpr ) { 1663 1582 alternatives.push_back( Alternative( impCpCtorExpr->clone(), env, Cost::zero ) ); 1664 1583 } 1665 1584 1666 void AlternativeFinder:: Finder::postvisit( ConstructorExpr * ctorExpr ) {1585 void AlternativeFinder::visit( ConstructorExpr * ctorExpr ) { 1667 1586 AlternativeFinder finder( indexer, env ); 1668 1587 // don't prune here, since it's guaranteed all alternatives will have the same type … … 1674 1593 } 1675 1594 1676 void AlternativeFinder:: Finder::postvisit( TupleIndexExpr *tupleExpr ) {1595 void AlternativeFinder::visit( TupleIndexExpr *tupleExpr ) { 1677 1596 alternatives.push_back( Alternative( tupleExpr->clone(), env, Cost::zero ) ); 1678 1597 } 1679 1598 1680 void AlternativeFinder:: Finder::postvisit( TupleAssignExpr *tupleAssignExpr ) {1599 void AlternativeFinder::visit( TupleAssignExpr *tupleAssignExpr ) { 1681 1600 alternatives.push_back( Alternative( tupleAssignExpr->clone(), env, Cost::zero ) ); 1682 1601 } 1683 1602 1684 void AlternativeFinder:: Finder::postvisit( UniqueExpr *unqExpr ) {1603 void AlternativeFinder::visit( UniqueExpr *unqExpr ) { 1685 1604 AlternativeFinder finder( indexer, env ); 1686 1605 finder.findWithAdjustment( unqExpr->get_expr() ); … … 1692 1611 } 1693 1612 1694 void AlternativeFinder:: Finder::postvisit( StmtExpr *stmtExpr ) {1613 void AlternativeFinder::visit( StmtExpr *stmtExpr ) { 1695 1614 StmtExpr * newStmtExpr = stmtExpr->clone(); 1696 1615 ResolvExpr::resolveStmtExpr( newStmtExpr, indexer ); … … 1699 1618 } 1700 1619 1701 void AlternativeFinder:: Finder::postvisit( UntypedInitExpr *initExpr ) {1620 void AlternativeFinder::visit( UntypedInitExpr *initExpr ) { 1702 1621 // handle each option like a cast 1703 1622 AltList candidates; 1704 PRINT( 1705 std::cerr << "untyped init expr: " << initExpr << std::endl; 1706 ) 1623 PRINT( std::cerr << "untyped init expr: " << initExpr << std::endl; ) 1707 1624 // O(N^2) checks of d-types with e-types 1708 1625 for ( InitAlternative & initAlt : initExpr->get_initAlts() ) { … … 1720 1637 AssertionSet needAssertions, haveAssertions; 1721 1638 OpenVarSet openVars; // find things in env that don't have a "representative type" and claim those are open vars? 1722 PRINT( 1723 std::cerr << " @ " << toType << " " << initAlt.designation << std::endl; 1724 ) 1639 PRINT( std::cerr << " @ " << toType << " " << initAlt.designation << std::endl; ) 1725 1640 // It's possible that a cast can throw away some values in a multiply-valued expression. (An example is a 1726 1641 // cast-to-void, which casts from one value to zero.) Figure out the prefix of the subexpression results -
src/ResolvExpr/AlternativeFinder.h
r7416d46a rf792cb8 38 38 using ExplodedArgs = std::vector< std::vector< ExplodedActual > >; 39 39 40 class AlternativeFinder {40 class AlternativeFinder : public Visitor { 41 41 public: 42 42 AlternativeFinder( const SymTab::Indexer &indexer, const TypeEnvironment &env ); … … 94 94 void findSubExprs( InputIterator begin, InputIterator end, OutputIterator out ); 95 95 private: 96 struct Finder; 96 virtual void visit( ApplicationExpr *applicationExpr ); 97 virtual void visit( UntypedExpr *untypedExpr ); 98 virtual void visit( AddressExpr *addressExpr ); 99 virtual void visit( LabelAddressExpr *labelExpr ); 100 virtual void visit( CastExpr *castExpr ); 101 virtual void visit( VirtualCastExpr *castExpr ); 102 virtual void visit( UntypedMemberExpr *memberExpr ); 103 virtual void visit( MemberExpr *memberExpr ); 104 virtual void visit( NameExpr *variableExpr ); 105 virtual void visit( VariableExpr *variableExpr ); 106 virtual void visit( ConstantExpr *constantExpr ); 107 virtual void visit( SizeofExpr *sizeofExpr ); 108 virtual void visit( AlignofExpr *alignofExpr ); 109 virtual void visit( UntypedOffsetofExpr *offsetofExpr ); 110 virtual void visit( OffsetofExpr *offsetofExpr ); 111 virtual void visit( OffsetPackExpr *offsetPackExpr ); 112 virtual void visit( AttrExpr *attrExpr ); 113 virtual void visit( LogicalExpr *logicalExpr ); 114 virtual void visit( ConditionalExpr *conditionalExpr ); 115 virtual void visit( CommaExpr *commaExpr ); 116 virtual void visit( ImplicitCopyCtorExpr * impCpCtorExpr ); 117 virtual void visit( ConstructorExpr * ctorExpr ); 118 virtual void visit( RangeExpr * rangeExpr ); 119 virtual void visit( UntypedTupleExpr *tupleExpr ); 120 virtual void visit( TupleExpr *tupleExpr ); 121 virtual void visit( TupleIndexExpr *tupleExpr ); 122 virtual void visit( TupleAssignExpr *tupleExpr ); 123 virtual void visit( UniqueExpr *unqExpr ); 124 virtual void visit( StmtExpr *stmtExpr ); 125 virtual void visit( UntypedInitExpr *initExpr ); 126 127 /// Adds alternatives for anonymous members 128 void addAnonConversions( const Alternative & alt ); 129 /// Adds alternatives for member expressions, given the aggregate, conversion cost for that aggregate, and name of the member 130 template< typename StructOrUnionType > void addAggMembers( StructOrUnionType *aggInst, Expression *expr, const Cost &newCost, const TypeEnvironment & env, Expression * member ); 131 /// Adds alternatives for member expressions where the left side has tuple type 132 void addTupleMembers( TupleType * tupleType, Expression *expr, const Cost &newCost, const TypeEnvironment & env, Expression * member ); 133 /// Adds alternatives for offsetof expressions, given the base type and name of the member 134 template< typename StructOrUnionType > void addOffsetof( StructOrUnionType *aggInst, const std::string &name ); 135 /// Takes a final result and checks if its assertions can be satisfied 136 template<typename OutputIterator> 137 void validateFunctionAlternative( const Alternative &func, ArgPack& result, const std::vector<ArgPack>& results, OutputIterator out ); 138 /// Finds matching alternatives for a function, given a set of arguments 139 template<typename OutputIterator> 140 void makeFunctionAlternatives( const Alternative &func, FunctionType *funcType, const ExplodedArgs& args, OutputIterator out ); 141 /// Checks if assertion parameters match for a new alternative 142 template< typename OutputIterator > 143 void inferParameters( const AssertionSet &need, AssertionSet &have, const Alternative &newAlt, OpenVarSet &openVars, OutputIterator out ); 144 97 145 const SymTab::Indexer &indexer; 98 146 AltList alternatives; -
src/ResolvExpr/CastCost.cc
r7416d46a rf792cb8 31 31 32 32 namespace ResolvExpr { 33 structCastCost : public ConversionCost {33 class CastCost : public ConversionCost { 34 34 public: 35 CastCost( Type *dest, const SymTab::Indexer &indexer, const TypeEnvironment &env , CostFunction costFunc);35 CastCost( Type *dest, const SymTab::Indexer &indexer, const TypeEnvironment &env ); 36 36 37 using ConversionCost::previsit; 38 using ConversionCost::postvisit; 39 void postvisit( BasicType * basicType ); 40 void postvisit( PointerType * pointerType ); 37 virtual void visit( BasicType *basicType ); 38 virtual void visit( PointerType *pointerType ); 41 39 }; 42 40 … … 54 52 // all typedefs should be gone by this point 55 53 TypeDecl *type = strict_dynamic_cast< TypeDecl* >( namedType ); 56 if ( type-> base) {57 return castCost( src, type-> base, indexer, env ) + Cost::safe;54 if ( type->get_base() ) { 55 return castCost( src, type->get_base(), indexer, env ) + Cost::safe; 58 56 } // if 59 57 } // if … … 76 74 } else if ( ReferenceType * refType = dynamic_cast< ReferenceType * > ( dest ) ) { 77 75 PRINT( std::cerr << "conversionCost: dest is reference" << std::endl; ) 78 return convertToReferenceCost( src, refType, indexer, env, [](Type * t1, Type * t2, const SymTab::Indexer & indexer, const TypeEnvironment & env) {76 return convertToReferenceCost( src, refType, indexer, env, [](Type * t1, Type * t2, const TypeEnvironment & env, const SymTab::Indexer & indexer) { 79 77 return ptrsCastable( t1, t2, env, indexer ); 80 78 }); 81 79 } else { 82 PassVisitor<CastCost> converter( dest, indexer, env, castCost);80 CastCost converter( dest, indexer, env ); 83 81 src->accept( converter ); 84 if ( converter. pass.get_cost() == Cost::infinity ) {82 if ( converter.get_cost() == Cost::infinity ) { 85 83 return Cost::infinity; 86 84 } else { 87 85 // xxx - why are we adding cost 0 here? 88 return converter. pass.get_cost() + Cost::zero;86 return converter.get_cost() + Cost::zero; 89 87 } // if 90 88 } // if 91 89 } 92 90 93 CastCost::CastCost( Type *dest, const SymTab::Indexer &indexer, const TypeEnvironment &env , CostFunction costFunc)94 : ConversionCost( dest, indexer, env , costFunc) {91 CastCost::CastCost( Type *dest, const SymTab::Indexer &indexer, const TypeEnvironment &env ) 92 : ConversionCost( dest, indexer, env ) { 95 93 } 96 94 97 void CastCost:: postvisit( BasicType *basicType ) {95 void CastCost::visit( BasicType *basicType ) { 98 96 PointerType *destAsPointer = dynamic_cast< PointerType* >( dest ); 99 97 if ( destAsPointer && basicType->isInteger() ) { … … 105 103 } 106 104 107 void CastCost:: postvisit( PointerType *pointerType ) {105 void CastCost::visit( PointerType *pointerType ) { 108 106 if ( PointerType *destAsPtr = dynamic_cast< PointerType* >( dest ) ) { 109 if ( pointerType->get_qualifiers() <= destAsPtr->get_qualifiers() && typesCompatibleIgnoreQualifiers( pointerType-> base, destAsPtr->base, indexer, env ) ) {107 if ( pointerType->get_qualifiers() <= destAsPtr->get_qualifiers() && typesCompatibleIgnoreQualifiers( pointerType->get_base(), destAsPtr->get_base(), indexer, env ) ) { 110 108 cost = Cost::safe; 111 109 } else { 112 110 TypeEnvironment newEnv( env ); 113 newEnv.add( pointerType-> forall);114 newEnv.add( pointerType-> base->forall);115 int castResult = ptrsCastable( pointerType-> base, destAsPtr->base, newEnv, indexer );111 newEnv.add( pointerType->get_forall() ); 112 newEnv.add( pointerType->get_base()->get_forall() ); 113 int castResult = ptrsCastable( pointerType->get_base(), destAsPtr->get_base(), newEnv, indexer ); 116 114 if ( castResult > 0 ) { 117 115 cost = Cost::safe; -
src/ResolvExpr/CommonType.cc
r7416d46a rf792cb8 18 18 #include <utility> // for pair 19 19 20 #include "Common/PassVisitor.h"21 20 #include "ResolvExpr/TypeEnvironment.h" // for OpenVarSet, AssertionSet 22 21 #include "SymTab/Indexer.h" // for Indexer … … 30 29 31 30 namespace ResolvExpr { 32 struct CommonType : public WithShortCircuiting { 31 class CommonType : public Visitor { 32 public: 33 33 CommonType( Type *type2, bool widenFirst, bool widenSecond, const SymTab::Indexer &indexer, TypeEnvironment &env, const OpenVarSet &openVars ); 34 34 Type *get_result() const { return result; } 35 36 void previsit( BaseSyntaxNode * ) { visit_children = false; }37 38 void postvisit( VoidType * voidType );39 void postvisit( BasicType * basicType );40 void postvisit( PointerType * pointerType );41 void postvisit( ArrayType * arrayType );42 void postvisit( ReferenceType * refType );43 void postvisit( FunctionType * functionType );44 void postvisit( StructInstType * aggregateUseType );45 void postvisit( UnionInstType * aggregateUseType );46 void postvisit( EnumInstType * aggregateUseType );47 void postvisit( TraitInstType * aggregateUseType );48 void postvisit( TypeInstType * aggregateUseType );49 void postvisit( TupleType * tupleType );50 void postvisit( VarArgsType * varArgsType );51 void postvisit( ZeroType * zeroType );52 void postvisit( OneType * oneType );53 54 35 private: 36 virtual void visit( VoidType *voidType ); 37 virtual void visit( BasicType *basicType ); 38 virtual void visit( PointerType *pointerType ); 39 virtual void visit( ArrayType *arrayType ); 40 virtual void visit( ReferenceType *refType ); 41 virtual void visit( FunctionType *functionType ); 42 virtual void visit( StructInstType *aggregateUseType ); 43 virtual void visit( UnionInstType *aggregateUseType ); 44 virtual void visit( EnumInstType *aggregateUseType ); 45 virtual void visit( TraitInstType *aggregateUseType ); 46 virtual void visit( TypeInstType *aggregateUseType ); 47 virtual void visit( TupleType *tupleType ); 48 virtual void visit( VarArgsType *varArgsType ); 49 virtual void visit( ZeroType *zeroType ); 50 virtual void visit( OneType *oneType ); 51 55 52 template< typename Pointer > void getCommonWithVoidPointer( Pointer* voidPointer, Pointer* otherPointer ); 56 53 template< typename RefType > void handleRefType( RefType *inst, Type *other ); … … 83 80 84 81 Type *commonType( Type *type1, Type *type2, bool widenFirst, bool widenSecond, const SymTab::Indexer &indexer, TypeEnvironment &env, const OpenVarSet &openVars ) { 85 PassVisitor<CommonType>visitor( type2, widenFirst, widenSecond, indexer, env, openVars );82 CommonType visitor( type2, widenFirst, widenSecond, indexer, env, openVars ); 86 83 87 84 int depth1 = type1->referenceDepth(); … … 119 116 120 117 type1->accept( visitor ); 121 Type *result = visitor. pass.get_result();118 Type *result = visitor.get_result(); 122 119 if ( ! result ) { 123 120 // this appears to be handling for opaque type declarations … … 191 188 } 192 189 193 void CommonType:: postvisit( VoidType * ) {}194 195 void CommonType:: postvisit( BasicType *basicType ) {190 void CommonType::visit( VoidType * ) {} 191 192 void CommonType::visit( BasicType *basicType ) { 196 193 if ( BasicType *otherBasic = dynamic_cast< BasicType* >( type2 ) ) { 197 194 BasicType::Kind newType = combinedType[ basicType->get_kind() ][ otherBasic->get_kind() ]; … … 222 219 } 223 220 224 void CommonType:: postvisit( PointerType *pointerType ) {221 void CommonType::visit( PointerType *pointerType ) { 225 222 if ( PointerType *otherPointer = dynamic_cast< PointerType* >( type2 ) ) { 226 223 // std::cerr << "commonType: two pointers: " << pointerType << " / " << otherPointer << std::endl; … … 257 254 } 258 255 259 void CommonType:: postvisit( ArrayType * ) {}260 261 void CommonType:: postvisit( ReferenceType *refType ) {256 void CommonType::visit( ArrayType * ) {} 257 258 void CommonType::visit( ReferenceType *refType ) { 262 259 if ( ReferenceType *otherRef = dynamic_cast< ReferenceType* >( type2 ) ) { 263 260 // std::cerr << "commonType: both references: " << refType << " / " << otherRef << std::endl; … … 294 291 } 295 292 296 void CommonType:: postvisit( FunctionType * ) {}297 void CommonType:: postvisit( StructInstType * ) {}298 void CommonType:: postvisit( UnionInstType * ) {}299 300 void CommonType:: postvisit( EnumInstType *enumInstType ) {293 void CommonType::visit( FunctionType * ) {} 294 void CommonType::visit( StructInstType * ) {} 295 void CommonType::visit( UnionInstType * ) {} 296 297 void CommonType::visit( EnumInstType *enumInstType ) { 301 298 if ( dynamic_cast< BasicType * >( type2 ) || dynamic_cast< ZeroType* >( type2 ) || dynamic_cast< OneType* >( type2 ) ) { 302 299 // reuse BasicType, EnumInstType code by swapping type2 with enumInstType 303 result = commonType( type2, enumInstType, widenSecond, widenFirst, indexer, env, openVars ); 304 } // if 305 } 306 307 void CommonType::postvisit( TraitInstType * ) { 308 } 309 310 void CommonType::postvisit( TypeInstType *inst ) { 300 ValueGuard< Type * > temp( type2 ); 301 type2 = enumInstType; 302 temp.old->accept( *this ); 303 } // if 304 } 305 306 void CommonType::visit( TraitInstType * ) { 307 } 308 309 void CommonType::visit( TypeInstType *inst ) { 311 310 if ( widenFirst ) { 312 311 NamedTypeDecl *nt = indexer.lookupType( inst->get_name() ); … … 330 329 } 331 330 332 void CommonType:: postvisit( TupleType * ) {}333 void CommonType:: postvisit( VarArgsType * ) {}334 335 void CommonType:: postvisit( ZeroType *zeroType ) {331 void CommonType::visit( TupleType * ) {} 332 void CommonType::visit( VarArgsType * ) {} 333 334 void CommonType::visit( ZeroType *zeroType ) { 336 335 if ( widenFirst ) { 337 336 if ( dynamic_cast< BasicType* >( type2 ) || dynamic_cast< PointerType* >( type2 ) || dynamic_cast< EnumInstType* >( type2 ) ) { … … 347 346 } 348 347 349 void CommonType:: postvisit( OneType *oneType ) {348 void CommonType::visit( OneType *oneType ) { 350 349 if ( widenFirst ) { 351 350 if ( dynamic_cast< BasicType* >( type2 ) || dynamic_cast< EnumInstType* >( type2 ) ) { -
src/ResolvExpr/ConversionCost.cc
r7416d46a rf792cb8 44 44 EqvClass eqvClass; 45 45 NamedTypeDecl *namedType; 46 PRINT( std::cerr << "type inst " << destAsTypeInst-> name; )47 if ( env.lookup( destAsTypeInst-> name, eqvClass ) ) {46 PRINT( std::cerr << "type inst " << destAsTypeInst->get_name(); ) 47 if ( env.lookup( destAsTypeInst->get_name(), eqvClass ) ) { 48 48 if ( eqvClass.type ) { 49 49 return conversionCost( src, eqvClass.type, indexer, env ); … … 51 51 return Cost::infinity; 52 52 } 53 } else if ( ( namedType = indexer.lookupType( destAsTypeInst-> name) ) ) {53 } else if ( ( namedType = indexer.lookupType( destAsTypeInst->get_name() ) ) ) { 54 54 PRINT( std::cerr << " found" << std::endl; ) 55 55 TypeDecl *type = dynamic_cast< TypeDecl* >( namedType ); 56 56 // all typedefs should be gone by this point 57 57 assert( type ); 58 if ( type-> base) {59 return conversionCost( src, type-> base, indexer, env ) + Cost::safe;58 if ( type->get_base() ) { 59 return conversionCost( src, type->get_base(), indexer, env ) + Cost::safe; 60 60 } // if 61 61 } // if … … 77 77 } else if ( ReferenceType * refType = dynamic_cast< ReferenceType * > ( dest ) ) { 78 78 PRINT( std::cerr << "conversionCost: dest is reference" << std::endl; ) 79 return convertToReferenceCost( src, refType, indexer, env, [](Type * t1, Type * t2, const SymTab::Indexer &, const TypeEnvironment & env){79 return convertToReferenceCost( src, refType, indexer, env, [](Type * t1, Type * t2, const TypeEnvironment & env, const SymTab::Indexer &){ 80 80 return ptrsAssignable( t1, t2, env ); 81 81 }); 82 82 } else { 83 PassVisitor<ConversionCost> converter( dest, indexer, env, conversionCost);83 ConversionCost converter( dest, indexer, env ); 84 84 src->accept( converter ); 85 if ( converter. pass.get_cost() == Cost::infinity ) {85 if ( converter.get_cost() == Cost::infinity ) { 86 86 return Cost::infinity; 87 87 } else { 88 return converter. pass.get_cost() + Cost::zero;88 return converter.get_cost() + Cost::zero; 89 89 } // if 90 90 } // if … … 95 95 if ( diff > 0 ) { 96 96 // TODO: document this 97 Cost cost = convertToReferenceCost( strict_dynamic_cast< ReferenceType * >( src )-> base, dest, diff-1, indexer, env, func );97 Cost cost = convertToReferenceCost( strict_dynamic_cast< ReferenceType * >( src )->get_base(), dest, diff-1, indexer, env, func ); 98 98 cost.incReference(); 99 99 return cost; 100 100 } else if ( diff < -1 ) { 101 101 // TODO: document this 102 Cost cost = convertToReferenceCost( src, strict_dynamic_cast< ReferenceType * >( dest )-> base, diff+1, indexer, env, func );102 Cost cost = convertToReferenceCost( src, strict_dynamic_cast< ReferenceType * >( dest )->get_base(), diff+1, indexer, env, func ); 103 103 cost.incReference(); 104 104 return cost; … … 108 108 if ( srcAsRef && destAsRef ) { // pointer-like conversions between references 109 109 PRINT( std::cerr << "converting between references" << std::endl; ) 110 Type::Qualifiers tq1 = srcAsRef-> base->get_qualifiers();111 Type::Qualifiers tq2 = destAsRef-> base->get_qualifiers();112 if ( tq1 <= tq2 && typesCompatibleIgnoreQualifiers( srcAsRef-> base, destAsRef->base, indexer, env ) ) {110 Type::Qualifiers tq1 = srcAsRef->get_base()->get_qualifiers(); 111 Type::Qualifiers tq2 = destAsRef->get_base()->get_qualifiers(); 112 if ( tq1 <= tq2 && typesCompatibleIgnoreQualifiers( srcAsRef->get_base(), destAsRef->get_base(), indexer, env ) ) { 113 113 PRINT( std::cerr << " :: compatible and good qualifiers" << std::endl; ) 114 114 if ( tq1 == tq2 ) { … … 120 120 } 121 121 } else { // xxx - this discards reference qualifiers from consideration -- reducing qualifiers is a safe conversion; is this right? 122 int assignResult = func( srcAsRef-> base, destAsRef->base, indexer, env);122 int assignResult = func( srcAsRef->get_base(), destAsRef->get_base(), env, indexer ); 123 123 PRINT( std::cerr << "comparing references: " << assignResult << " " << srcAsRef << " " << destAsRef << std::endl; ) 124 124 if ( assignResult > 0 ) { … … 130 130 } else { 131 131 PRINT( std::cerr << "reference to rvalue conversion" << std::endl; ) 132 PassVisitor<ConversionCost> converter( dest, indexer, env, conversionCost);132 ConversionCost converter( dest, indexer, env ); 133 133 src->accept( converter ); 134 return converter. pass.get_cost();134 return converter.get_cost(); 135 135 } // if 136 136 } else { … … 138 138 assert( diff == -1 && destAsRef ); 139 139 PRINT( std::cerr << "dest is: " << dest << " / src is: " << src << std::endl; ) 140 if ( typesCompatibleIgnoreQualifiers( src, destAsRef-> base, indexer, env ) ) {140 if ( typesCompatibleIgnoreQualifiers( src, destAsRef->get_base(), indexer, env ) ) { 141 141 PRINT( std::cerr << "converting compatible base type" << std::endl; ) 142 142 if ( src->get_lvalue() ) { … … 146 146 ) 147 147 // lvalue-to-reference conversion: cv lvalue T => cv T & 148 if ( src->get_qualifiers() == destAsRef-> base->get_qualifiers() ) {148 if ( src->get_qualifiers() == destAsRef->get_base()->get_qualifiers() ) { 149 149 return Cost::reference; // cost needs to be non-zero to add cast 150 } if ( src->get_qualifiers() < destAsRef-> base->get_qualifiers() ) {150 } if ( src->get_qualifiers() < destAsRef->get_base()->get_qualifiers() ) { 151 151 return Cost::safe; // cost needs to be higher than previous cast to differentiate adding qualifiers vs. keeping same 152 152 } else { 153 153 return Cost::unsafe; 154 154 } // if 155 } else if ( destAsRef-> base->get_const() ) {155 } else if ( destAsRef->get_base()->get_const() ) { 156 156 PRINT( std::cerr << "rvalue to const ref conversion" << std::endl; ) 157 157 // rvalue-to-const-reference conversion: T => const T & … … 173 173 } 174 174 175 ConversionCost::ConversionCost( Type *dest, const SymTab::Indexer &indexer, const TypeEnvironment &env , CostFunction costFunc)176 : dest( dest ), indexer( indexer ), cost( Cost::infinity ), env( env ) , costFunc( costFunc ){175 ConversionCost::ConversionCost( Type *dest, const SymTab::Indexer &indexer, const TypeEnvironment &env ) 176 : dest( dest ), indexer( indexer ), cost( Cost::infinity ), env( env ) { 177 177 } 178 178 … … 257 257 }; 258 258 259 void ConversionCost:: postvisit( VoidType * ) {259 void ConversionCost::visit( VoidType * ) { 260 260 cost = Cost::infinity; 261 261 } 262 262 263 void ConversionCost:: postvisit(BasicType *basicType) {263 void ConversionCost::visit(BasicType *basicType) { 264 264 if ( BasicType *destAsBasic = dynamic_cast< BasicType* >( dest ) ) { 265 265 int tableResult = costMatrix[ basicType->get_kind() ][ destAsBasic->get_kind() ]; … … 278 278 } 279 279 280 void ConversionCost:: postvisit( PointerType * pointerType ) {280 void ConversionCost::visit( PointerType * pointerType ) { 281 281 if ( PointerType *destAsPtr = dynamic_cast< PointerType* >( dest ) ) { 282 282 PRINT( std::cerr << pointerType << " ===> " << destAsPtr << std::endl; ) 283 Type::Qualifiers tq1 = pointerType-> base->get_qualifiers();284 Type::Qualifiers tq2 = destAsPtr-> base->get_qualifiers();285 if ( tq1 <= tq2 && typesCompatibleIgnoreQualifiers( pointerType-> base, destAsPtr->base, indexer, env ) ) {283 Type::Qualifiers tq1 = pointerType->get_base()->get_qualifiers(); 284 Type::Qualifiers tq2 = destAsPtr->get_base()->get_qualifiers(); 285 if ( tq1 <= tq2 && typesCompatibleIgnoreQualifiers( pointerType->get_base(), destAsPtr->get_base(), indexer, env ) ) { 286 286 PRINT( std::cerr << " :: compatible and good qualifiers" << std::endl; ) 287 287 if ( tq1 == tq2 ) { … … 312 312 } 313 313 314 void ConversionCost:: postvisit( ArrayType * ) {}315 316 void ConversionCost:: postvisit( ReferenceType * refType ) {314 void ConversionCost::visit( ArrayType * ) {} 315 316 void ConversionCost::visit( ReferenceType * refType ) { 317 317 // Note: dest can never be a reference, since it would have been caught in an earlier check 318 318 assert( ! dynamic_cast< ReferenceType * >( dest ) ); … … 320 320 // recursively compute conversion cost from T1 to T2. 321 321 // cv can be safely dropped because of 'implicit dereference' behavior. 322 cost = costFunc( refType->base, dest, indexer, env);322 refType->base->accept( *this ); 323 323 if ( refType->base->get_qualifiers() == dest->get_qualifiers() ) { 324 324 cost.incReference(); // prefer exact qualifiers … … 331 331 } 332 332 333 void ConversionCost:: postvisit( FunctionType * ) {}334 335 void ConversionCost:: postvisit( StructInstType * inst ) {333 void ConversionCost::visit( FunctionType * ) {} 334 335 void ConversionCost::visit( StructInstType * inst ) { 336 336 if ( StructInstType *destAsInst = dynamic_cast< StructInstType* >( dest ) ) { 337 337 if ( inst->name == destAsInst->name ) { … … 341 341 } 342 342 343 void ConversionCost:: postvisit( UnionInstType * inst ) {343 void ConversionCost::visit( UnionInstType * inst ) { 344 344 if ( UnionInstType *destAsInst = dynamic_cast< UnionInstType* >( dest ) ) { 345 345 if ( inst->name == destAsInst->name ) { … … 349 349 } 350 350 351 void ConversionCost:: postvisit( EnumInstType * ) {351 void ConversionCost::visit( EnumInstType * ) { 352 352 static Type::Qualifiers q; 353 353 static BasicType integer( q, BasicType::SignedInt ); 354 cost = costFunc( &integer, dest, indexer, env); // safe if dest >= int354 integer.accept( *this ); // safe if dest >= int 355 355 if ( cost < Cost::unsafe ) { 356 356 cost.incSafe(); … … 358 358 } 359 359 360 void ConversionCost:: postvisit( TraitInstType * ) {}361 362 void ConversionCost:: postvisit( TypeInstType *inst ) {360 void ConversionCost::visit( TraitInstType * ) {} 361 362 void ConversionCost::visit( TypeInstType *inst ) { 363 363 EqvClass eqvClass; 364 364 NamedTypeDecl *namedType; 365 if ( env.lookup( inst-> name, eqvClass ) ) {366 cost = co stFunc( eqvClass.type, dest, indexer, env );365 if ( env.lookup( inst->get_name(), eqvClass ) ) { 366 cost = conversionCost( eqvClass.type, dest, indexer, env ); 367 367 } else if ( TypeInstType *destAsInst = dynamic_cast< TypeInstType* >( dest ) ) { 368 if ( inst-> name == destAsInst->name) {368 if ( inst->get_name() == destAsInst->get_name() ) { 369 369 cost = Cost::zero; 370 370 } 371 } else if ( ( namedType = indexer.lookupType( inst-> name) ) ) {371 } else if ( ( namedType = indexer.lookupType( inst->get_name() ) ) ) { 372 372 TypeDecl *type = dynamic_cast< TypeDecl* >( namedType ); 373 373 // all typedefs should be gone by this point 374 374 assert( type ); 375 if ( type-> base) {376 cost = co stFunc( type->base, dest, indexer, env ) + Cost::safe;377 } // if 378 } // if 379 } 380 381 void ConversionCost:: postvisit( TupleType * tupleType ) {375 if ( type->get_base() ) { 376 cost = conversionCost( type->get_base(), dest, indexer, env ) + Cost::safe; 377 } // if 378 } // if 379 } 380 381 void ConversionCost::visit( TupleType * tupleType ) { 382 382 Cost c = Cost::zero; 383 383 if ( TupleType * destAsTuple = dynamic_cast< TupleType * >( dest ) ) { 384 std::list< Type * >::const_iterator srcIt = tupleType-> types.begin();385 std::list< Type * >::const_iterator destIt = destAsTuple-> types.begin();386 while ( srcIt != tupleType-> types.end() && destIt != destAsTuple->types.end() ) {387 Cost newCost = co stFunc( *srcIt++, *destIt++, indexer, env );384 std::list< Type * >::const_iterator srcIt = tupleType->get_types().begin(); 385 std::list< Type * >::const_iterator destIt = destAsTuple->get_types().begin(); 386 while ( srcIt != tupleType->get_types().end() && destIt != destAsTuple->get_types().end() ) { 387 Cost newCost = conversionCost( *srcIt++, *destIt++, indexer, env ); 388 388 if ( newCost == Cost::infinity ) { 389 389 return; … … 391 391 c += newCost; 392 392 } // while 393 if ( destIt != destAsTuple-> types.end() ) {393 if ( destIt != destAsTuple->get_types().end() ) { 394 394 cost = Cost::infinity; 395 395 } else { … … 399 399 } 400 400 401 void ConversionCost:: postvisit( VarArgsType * ) {401 void ConversionCost::visit( VarArgsType * ) { 402 402 if ( dynamic_cast< VarArgsType* >( dest ) ) { 403 403 cost = Cost::zero; … … 405 405 } 406 406 407 void ConversionCost:: postvisit( ZeroType * ) {407 void ConversionCost::visit( ZeroType * ) { 408 408 if ( dynamic_cast< ZeroType * >( dest ) ) { 409 409 cost = Cost::zero; … … 422 422 } 423 423 424 void ConversionCost:: postvisit( OneType * ) {424 void ConversionCost::visit( OneType * ) { 425 425 if ( dynamic_cast< OneType * >( dest ) ) { 426 426 cost = Cost::zero; -
src/ResolvExpr/ConversionCost.h
r7416d46a rf792cb8 19 19 20 20 #include "Cost.h" // for Cost 21 22 #include "Common/PassVisitor.h"23 21 #include "SynTree/Visitor.h" // for Visitor 24 22 #include "SynTree/SynTree.h" // for Visitor Nodes … … 31 29 class TypeEnvironment; 32 30 33 typedef std::function<Cost(Type *, Type *, const SymTab::Indexer &, const TypeEnvironment &)> CostFunction; 34 struct ConversionCost : public WithShortCircuiting { 31 class ConversionCost : public Visitor { 35 32 public: 36 ConversionCost( Type *dest, const SymTab::Indexer &indexer, const TypeEnvironment &env , CostFunction);33 ConversionCost( Type *dest, const SymTab::Indexer &indexer, const TypeEnvironment &env ); 37 34 38 35 Cost get_cost() const { return cost; } 39 36 40 void previsit( BaseSyntaxNode * ) { visit_children = false; } 41 42 void postvisit( VoidType * voidType ); 43 void postvisit( BasicType * basicType ); 44 void postvisit( PointerType * pointerType ); 45 void postvisit( ArrayType * arrayType ); 46 void postvisit( ReferenceType * refType ); 47 void postvisit( FunctionType * functionType ); 48 void postvisit( StructInstType * aggregateUseType ); 49 void postvisit( UnionInstType * aggregateUseType ); 50 void postvisit( EnumInstType * aggregateUseType ); 51 void postvisit( TraitInstType * aggregateUseType ); 52 void postvisit( TypeInstType * aggregateUseType ); 53 void postvisit( TupleType * tupleType ); 54 void postvisit( VarArgsType * varArgsType ); 55 void postvisit( ZeroType * zeroType ); 56 void postvisit( OneType * oneType ); 37 virtual void visit(VoidType *voidType); 38 virtual void visit(BasicType *basicType); 39 virtual void visit(PointerType *pointerType); 40 virtual void visit(ArrayType *arrayType); 41 virtual void visit(ReferenceType *refType); 42 virtual void visit(FunctionType *functionType); 43 virtual void visit(StructInstType *aggregateUseType); 44 virtual void visit(UnionInstType *aggregateUseType); 45 virtual void visit(EnumInstType *aggregateUseType); 46 virtual void visit(TraitInstType *aggregateUseType); 47 virtual void visit(TypeInstType *aggregateUseType); 48 virtual void visit(TupleType *tupleType); 49 virtual void visit(VarArgsType *varArgsType); 50 virtual void visit(ZeroType *zeroType); 51 virtual void visit(OneType *oneType); 57 52 protected: 58 53 Type *dest; … … 60 55 Cost cost; 61 56 const TypeEnvironment &env; 62 CostFunction costFunc;63 57 }; 64 58 65 typedef std::function<int(Type *, Type *, const SymTab::Indexer &, const TypeEnvironment&)> PtrsFunction;59 typedef std::function<int(Type *, Type *, const TypeEnvironment &, const SymTab::Indexer &)> PtrsFunction; 66 60 Cost convertToReferenceCost( Type * src, ReferenceType * dest, const SymTab::Indexer & indexer, const TypeEnvironment & env, PtrsFunction func ); 67 61 } // namespace ResolvExpr -
src/ResolvExpr/CurrentObject.cc
r7416d46a rf792cb8 62 62 virtual ~MemberIterator() {} 63 63 64 /// walks the current object using the given designators as a guide65 64 virtual void setPosition( std::list< Expression * > & designators ) = 0; 66 67 /// retrieve the list of possible Type/Designaton pairs for the current position in the currect object68 65 virtual std::list<InitAlternative> operator*() const = 0; 69 70 /// true if the iterator is not currently at the end71 66 virtual operator bool() const = 0; 72 73 /// moves the iterator by one member in the current object74 67 virtual MemberIterator & bigStep() = 0; 75 76 /// moves the iterator by one member in the current subobject77 68 virtual MemberIterator & smallStep() = 0; 78 79 /// the type of the current object80 69 virtual Type * getType() = 0; 81 82 /// the type of the current subobject83 70 virtual Type * getNext() = 0; 84 71 85 /// printing for debug86 72 virtual void print( std::ostream & out, Indenter indent ) const = 0; 87 73 88 /// helper for operator*; aggregates must add designator to each init alternative, but89 /// adding designators in operator* creates duplicates.90 74 virtual std::list<InitAlternative> first() const = 0; // should be protected 91 75 }; … … 370 354 } 371 355 } 372 if ( atbegin ) { 356 // if ( curMember == std::next( decl->get_members().begin(), 1 ) ) { // xxx - this never triggers because curMember is incremented immediately on construction 357 if ( atbegin ) { // xxx - this never triggers because curMember is incremented immediately on construction 373 358 // xxx - what about case of empty struct?? 374 359 // only add self if at the very beginning of the structure … … 404 389 return *this; 405 390 } 391 virtual std::list<InitAlternative> first() const { return std::list<InitAlternative>{}; } 406 392 }; 407 393 … … 457 443 return new UnionIterator( uit ); 458 444 } else { 459 assertf( dynamic_cast< EnumInstType * >( type ) || dynamic_cast< TypeInstType * >( type ), "Encountered unhandled ReferenceToType in createMemberIterator: %s", toString( type ).c_str());445 assertf( dynamic_cast< TypeInstType * >( type ), "some other reftotype" ); 460 446 return new SimpleIterator( type ); 461 447 } -
src/ResolvExpr/PtrsAssignable.cc
r7416d46a rf792cb8 14 14 // 15 15 16 #include "Common/PassVisitor.h"17 16 #include "ResolvExpr/TypeEnvironment.h" // for EqvClass, TypeEnvironment 18 17 #include "SynTree/Type.h" // for TypeInstType, Type, BasicType … … 21 20 22 21 namespace ResolvExpr { 23 struct PtrsAssignable : public WithShortCircuiting { 22 class PtrsAssignable : public Visitor { 23 public: 24 24 PtrsAssignable( Type *dest, const TypeEnvironment &env ); 25 25 26 26 int get_result() const { return result; } 27 27 28 void previsit( Type * ) { visit_children = false; } 29 30 void postvisit( VoidType * voidType ); 31 void postvisit( BasicType * basicType ); 32 void postvisit( PointerType * pointerType ); 33 void postvisit( ArrayType * arrayType ); 34 void postvisit( FunctionType * functionType ); 35 void postvisit( StructInstType * inst ); 36 void postvisit( UnionInstType * inst ); 37 void postvisit( EnumInstType * inst ); 38 void postvisit( TraitInstType * inst ); 39 void postvisit( TypeInstType * inst ); 40 void postvisit( TupleType * tupleType ); 41 void postvisit( VarArgsType * varArgsType ); 42 void postvisit( ZeroType * zeroType ); 43 void postvisit( OneType * oneType ); 28 virtual void visit( VoidType *voidType ); 29 virtual void visit( BasicType *basicType ); 30 virtual void visit( PointerType *pointerType ); 31 virtual void visit( ArrayType *arrayType ); 32 virtual void visit( FunctionType *functionType ); 33 virtual void visit( StructInstType *inst ); 34 virtual void visit( UnionInstType *inst ); 35 virtual void visit( EnumInstType *inst ); 36 virtual void visit( TraitInstType *inst ); 37 virtual void visit( TypeInstType *inst ); 38 virtual void visit( TupleType *tupleType ); 39 virtual void visit( VarArgsType *varArgsType ); 40 virtual void visit( ZeroType *zeroType ); 41 virtual void visit( OneType *oneType ); 44 42 private: 45 43 Type *dest; … … 61 59 return -1; 62 60 } else { 63 P assVisitor<PtrsAssignable>ptrs( dest, env );61 PtrsAssignable ptrs( dest, env ); 64 62 src->accept( ptrs ); 65 return ptrs. pass.get_result();63 return ptrs.get_result(); 66 64 } // if 67 65 } … … 69 67 PtrsAssignable::PtrsAssignable( Type *dest, const TypeEnvironment &env ) : dest( dest ), result( 0 ), env( env ) {} 70 68 71 void PtrsAssignable:: postvisit( VoidType * ) {69 void PtrsAssignable::visit( VoidType * ) { 72 70 // T * = void * is disallowed - this is a change from C, where any 73 71 // void * can be assigned or passed to a non-void pointer without a cast. 74 72 } 75 73 76 void PtrsAssignable:: postvisit( __attribute__((unused)) BasicType *basicType ) {}77 void PtrsAssignable:: postvisit( __attribute__((unused)) PointerType *pointerType ) {}78 void PtrsAssignable:: postvisit( __attribute__((unused)) ArrayType *arrayType ) {}79 void PtrsAssignable:: postvisit( __attribute__((unused)) FunctionType *functionType ) {}74 void PtrsAssignable::visit( __attribute__((unused)) BasicType *basicType ) {} 75 void PtrsAssignable::visit( __attribute__((unused)) PointerType *pointerType ) {} 76 void PtrsAssignable::visit( __attribute__((unused)) ArrayType *arrayType ) {} 77 void PtrsAssignable::visit( __attribute__((unused)) FunctionType *functionType ) {} 80 78 81 void PtrsAssignable:: postvisit( __attribute__((unused)) StructInstType *inst ) {}82 void PtrsAssignable:: postvisit( __attribute__((unused)) UnionInstType *inst ) {}79 void PtrsAssignable::visit( __attribute__((unused)) StructInstType *inst ) {} 80 void PtrsAssignable::visit( __attribute__((unused)) UnionInstType *inst ) {} 83 81 84 void PtrsAssignable:: postvisit( EnumInstType * ) {82 void PtrsAssignable::visit( EnumInstType * ) { 85 83 if ( dynamic_cast< BasicType* >( dest ) ) { 86 84 // int * = E *, etc. is safe. This isn't technically correct, as each … … 93 91 } 94 92 95 void PtrsAssignable:: postvisit( __attribute__((unused)) TraitInstType *inst ) {}96 void PtrsAssignable:: postvisit( TypeInstType *inst ) {93 void PtrsAssignable::visit( __attribute__((unused)) TraitInstType *inst ) {} 94 void PtrsAssignable::visit( TypeInstType *inst ) { 97 95 EqvClass eqvClass; 98 96 if ( env.lookup( inst->get_name(), eqvClass ) && eqvClass.type ) { … … 102 100 } 103 101 104 void PtrsAssignable:: postvisit( __attribute__((unused)) TupleType *tupleType ) {}105 void PtrsAssignable:: postvisit( __attribute__((unused)) VarArgsType *varArgsType ) {}106 void PtrsAssignable:: postvisit( __attribute__((unused)) ZeroType *zeroType ) {}107 void PtrsAssignable:: postvisit( __attribute__((unused)) OneType *oneType ) {}102 void PtrsAssignable::visit( __attribute__((unused)) TupleType *tupleType ) {} 103 void PtrsAssignable::visit( __attribute__((unused)) VarArgsType *varArgsType ) {} 104 void PtrsAssignable::visit( __attribute__((unused)) ZeroType *zeroType ) {} 105 void PtrsAssignable::visit( __attribute__((unused)) OneType *oneType ) {} 108 106 109 107 } // namespace ResolvExpr -
src/ResolvExpr/PtrsCastable.cc
r7416d46a rf792cb8 14 14 // 15 15 16 #include "Common/PassVisitor.h"17 16 #include "ResolvExpr/TypeEnvironment.h" // for EqvClass, TypeEnvironment 18 17 #include "SymTab/Indexer.h" // for Indexer … … 22 21 #include "typeops.h" // for ptrsAssignable 23 22 23 24 24 namespace ResolvExpr { 25 struct PtrsCastable : public WithShortCircuiting{25 class PtrsCastable : public Visitor { 26 26 public: 27 27 PtrsCastable( Type *dest, const TypeEnvironment &env, const SymTab::Indexer &indexer ); … … 29 29 int get_result() const { return result; } 30 30 31 void previsit( Type * ) { visit_children = false; } 32 33 void postvisit( VoidType * voidType ); 34 void postvisit( BasicType * basicType ); 35 void postvisit( PointerType * pointerType ); 36 void postvisit( ArrayType * arrayType ); 37 void postvisit( FunctionType * functionType ); 38 void postvisit( StructInstType * inst ); 39 void postvisit( UnionInstType * inst ); 40 void postvisit( EnumInstType * inst ); 41 void postvisit( TraitInstType * inst ); 42 void postvisit( TypeInstType * inst ); 43 void postvisit( TupleType * tupleType ); 44 void postvisit( VarArgsType * varArgsType ); 45 void postvisit( ZeroType * zeroType ); 46 void postvisit( OneType * oneType ); 31 virtual void visit(VoidType *voidType); 32 virtual void visit(BasicType *basicType); 33 virtual void visit(PointerType *pointerType); 34 virtual void visit(ArrayType *arrayType); 35 virtual void visit(FunctionType *functionType); 36 virtual void visit(StructInstType *inst); 37 virtual void visit(UnionInstType *inst); 38 virtual void visit(EnumInstType *inst); 39 virtual void visit(TraitInstType *inst); 40 virtual void visit(TypeInstType *inst); 41 virtual void visit(TupleType *tupleType); 42 virtual void visit(VarArgsType *varArgsType); 43 virtual void visit(ZeroType *zeroType); 44 virtual void visit(OneType *oneType); 47 45 private: 48 46 Type *dest; … … 81 79 EqvClass eqvClass; 82 80 if ( env.lookup( destAsTypeInst->get_name(), eqvClass ) ) { 83 // xxx - should this be ptrsCastable?84 81 return ptrsAssignable( src, eqvClass.type, env ); 85 82 } // if … … 88 85 return objectCast( src, env, indexer ); 89 86 } else { 90 P assVisitor<PtrsCastable>ptrs( dest, env, indexer );87 PtrsCastable ptrs( dest, env, indexer ); 91 88 src->accept( ptrs ); 92 return ptrs. pass.get_result();89 return ptrs.get_result(); 93 90 } // if 94 91 } … … 98 95 } 99 96 100 void PtrsCastable:: postvisit( VoidType * ) {97 void PtrsCastable::visit( VoidType * ) { 101 98 result = objectCast( dest, env, indexer ); 102 99 } 103 100 104 void PtrsCastable:: postvisit( BasicType * ) {101 void PtrsCastable::visit( BasicType * ) { 105 102 result = objectCast( dest, env, indexer ); 106 103 } 107 104 108 void PtrsCastable:: postvisit( PointerType * ) {105 void PtrsCastable::visit( PointerType * ) { 109 106 result = objectCast( dest, env, indexer ); 110 107 } 111 108 112 void PtrsCastable:: postvisit( ArrayType * ) {109 void PtrsCastable::visit( ArrayType * ) { 113 110 result = objectCast( dest, env, indexer ); 114 111 } 115 112 116 void PtrsCastable:: postvisit( FunctionType * ) {113 void PtrsCastable::visit( FunctionType * ) { 117 114 // result = -1; 118 115 result = functionCast( dest, env, indexer ); 119 116 } 120 117 121 void PtrsCastable:: postvisit( StructInstType * ) {118 void PtrsCastable::visit( StructInstType * ) { 122 119 result = objectCast( dest, env, indexer ); 123 120 } 124 121 125 void PtrsCastable:: postvisit( UnionInstType * ) {122 void PtrsCastable::visit( UnionInstType * ) { 126 123 result = objectCast( dest, env, indexer ); 127 124 } 128 125 129 void PtrsCastable:: postvisit( EnumInstType * ) {126 void PtrsCastable::visit( EnumInstType * ) { 130 127 if ( dynamic_cast< EnumInstType* >( dest ) ) { 131 128 result = 1; … … 141 138 } 142 139 143 void PtrsCastable:: postvisit( TraitInstType * ) {}140 void PtrsCastable::visit( TraitInstType * ) {} 144 141 145 void PtrsCastable:: postvisit(TypeInstType *inst) {142 void PtrsCastable::visit(TypeInstType *inst) { 146 143 //result = objectCast( inst, env, indexer ) > 0 && objectCast( dest, env, indexer ) > 0 ? 1 : -1; 147 144 result = objectCast( inst, env, indexer ) == objectCast( dest, env, indexer ) ? 1 : -1; 148 145 } 149 146 150 void PtrsCastable:: postvisit( TupleType * ) {147 void PtrsCastable::visit( TupleType * ) { 151 148 result = objectCast( dest, env, indexer ); 152 149 } 153 150 154 void PtrsCastable:: postvisit( VarArgsType * ) {151 void PtrsCastable::visit( VarArgsType * ) { 155 152 result = objectCast( dest, env, indexer ); 156 153 } 157 154 158 void PtrsCastable:: postvisit( ZeroType * ) {155 void PtrsCastable::visit( ZeroType * ) { 159 156 result = objectCast( dest, env, indexer ); 160 157 } 161 158 162 void PtrsCastable:: postvisit( OneType * ) {159 void PtrsCastable::visit( OneType * ) { 163 160 result = objectCast( dest, env, indexer ); 164 161 } -
src/ResolvExpr/RenameVars.cc
r7416d46a rf792cb8 19 19 #include <utility> // for pair 20 20 21 #include "Common/PassVisitor.h"22 21 #include "Common/SemanticError.h" // for SemanticError 23 22 #include "RenameVars.h" … … 28 27 29 28 namespace ResolvExpr { 30 namespace { 31 struct RenameVars { 32 RenameVars(); 33 void reset(); 29 RenameVars global_renamer; 34 30 35 void previsit( TypeInstType * instType ); 36 void previsit( Type * ); 37 void postvisit( Type * ); 38 39 private: 40 int level, resetCount; 41 std::list< std::map< std::string, std::string > > mapStack; 42 }; 43 44 PassVisitor<RenameVars> global_renamer; 45 } // namespace 46 47 void renameTyVars( Type * t ) { 48 t->accept( global_renamer ); 31 RenameVars::RenameVars() : level( 0 ), resetCount( 0 ) { 32 mapStack.push_front( std::map< std::string, std::string >() ); 49 33 } 50 34 51 void resetTyVarRenaming() { 52 global_renamer.pass.reset(); 35 void RenameVars::reset() { 36 level = 0; 37 resetCount++; 53 38 } 54 39 55 namespace{56 RenameVars::RenameVars() : level( 0 ), resetCount( 0 ) {57 mapStack.push_front( std::map< std::string, std::string >());58 }40 void RenameVars::visit( VoidType *voidType ) { 41 typeBefore( voidType ); 42 typeAfter( voidType ); 43 } 59 44 60 void RenameVars::reset() {61 level = 0;62 resetCount++;63 }45 void RenameVars::visit( BasicType *basicType ) { 46 typeBefore( basicType ); 47 typeAfter( basicType ); 48 } 64 49 65 void RenameVars::previsit( TypeInstType * instType ) { 66 previsit( (Type *)instType ); 67 std::map< std::string, std::string >::const_iterator i = mapStack.front().find( instType->name ); 68 if ( i != mapStack.front().end() ) { 69 instType->name = i->second; 70 } // if 71 } 50 void RenameVars::visit( PointerType *pointerType ) { 51 typeBefore( pointerType ); 52 maybeAccept( pointerType->get_base(), *this ); 53 typeAfter( pointerType ); 54 } 72 55 73 void RenameVars::previsit( Type * type ) { 74 if ( ! type->forall.empty() ) { 75 // copies current name mapping into new mapping 76 mapStack.push_front( mapStack.front() ); 77 // renames all "forall" type names to `_${level}_${name}' 78 for ( auto td : type->forall ) { 79 std::ostringstream output; 80 output << "_" << resetCount << "_" << level << "_" << td->name; 81 std::string newname( output.str() ); 82 mapStack.front()[ td->get_name() ] = newname; 83 td->name = newname; 84 // ditto for assertion names, the next level in 85 level++; 86 // acceptAll( td->assertions, *this ); 87 } // for 88 } // if 89 } 56 void RenameVars::visit( ArrayType *arrayType ) { 57 typeBefore( arrayType ); 58 maybeAccept( arrayType->get_dimension(), *this ); 59 maybeAccept( arrayType->get_base(), *this ); 60 typeAfter( arrayType ); 61 } 90 62 91 void RenameVars::postvisit( Type * type ) { 92 // clears name mapping added by typeBefore() 93 if ( ! type->forall.empty() ) { 94 mapStack.pop_front(); 95 } // if 96 } 97 } // namespace 63 void RenameVars::visit( FunctionType *functionType ) { 64 typeBefore( functionType ); 65 acceptAll( functionType->get_returnVals(), *this ); 66 acceptAll( functionType->get_parameters(), *this ); 67 typeAfter( functionType ); 68 } 69 70 void RenameVars::visit( StructInstType *aggregateUseType ) { 71 typeBefore( aggregateUseType ); 72 acceptAll( aggregateUseType->get_parameters(), *this ); 73 typeAfter( aggregateUseType ); 74 } 75 76 void RenameVars::visit( UnionInstType *aggregateUseType ) { 77 typeBefore( aggregateUseType ); 78 acceptAll( aggregateUseType->get_parameters(), *this ); 79 typeAfter( aggregateUseType ); 80 } 81 82 void RenameVars::visit( EnumInstType *aggregateUseType ) { 83 typeBefore( aggregateUseType ); 84 acceptAll( aggregateUseType->get_parameters(), *this ); 85 typeAfter( aggregateUseType ); 86 } 87 88 void RenameVars::visit( TraitInstType *aggregateUseType ) { 89 typeBefore( aggregateUseType ); 90 acceptAll( aggregateUseType->get_parameters(), *this ); 91 typeAfter( aggregateUseType ); 92 } 93 94 void RenameVars::visit( TypeInstType *instType ) { 95 typeBefore( instType ); 96 std::map< std::string, std::string >::const_iterator i = mapStack.front().find( instType->get_name() ); 97 if ( i != mapStack.front().end() ) { 98 instType->set_name( i->second ); 99 } else { 100 } // if 101 acceptAll( instType->get_parameters(), *this ); 102 typeAfter( instType ); 103 } 104 105 void RenameVars::visit( TupleType *tupleType ) { 106 typeBefore( tupleType ); 107 acceptAll( tupleType->get_types(), *this ); 108 typeAfter( tupleType ); 109 } 110 111 void RenameVars::visit( VarArgsType *varArgsType ) { 112 typeBefore( varArgsType ); 113 typeAfter( varArgsType ); 114 } 115 116 void RenameVars::visit( ZeroType *zeroType ) { 117 typeBefore( zeroType ); 118 typeAfter( zeroType ); 119 } 120 121 void RenameVars::visit( OneType *oneType ) { 122 typeBefore( oneType ); 123 typeAfter( oneType ); 124 } 125 126 void RenameVars::typeBefore( Type *type ) { 127 if ( ! type->get_forall().empty() ) { 128 // copies current name mapping into new mapping 129 mapStack.push_front( mapStack.front() ); 130 // renames all "forall" type names to `_${level}_${name}' 131 for ( Type::ForallList::iterator i = type->get_forall().begin(); i != type->get_forall().end(); ++i ) { 132 std::ostringstream output; 133 output << "_" << resetCount << "_" << level << "_" << (*i)->get_name(); 134 std::string newname( output.str() ); 135 mapStack.front()[ (*i)->get_name() ] = newname; 136 (*i)->set_name( newname ); 137 // ditto for assertion names, the next level in 138 level++; 139 acceptAll( (*i)->get_assertions(), *this ); 140 } // for 141 } // if 142 } 143 144 void RenameVars::typeAfter( Type *type ) { 145 // clears name mapping added by typeBefore() 146 if ( ! type->get_forall().empty() ) { 147 mapStack.pop_front(); 148 } // if 149 } 150 98 151 } // namespace ResolvExpr 99 152 -
src/ResolvExpr/RenameVars.h
r7416d46a rf792cb8 24 24 25 25 namespace ResolvExpr { 26 26 27 /// Provides a consistent renaming of forall type names in a hierarchy by prefixing them with a unique "level" ID 27 void renameTyVars( Type * ); 28 class RenameVars : public Visitor { 29 public: 30 RenameVars(); 31 void reset(); 32 private: 33 virtual void visit( VoidType *basicType ); 34 virtual void visit( BasicType *basicType ); 35 virtual void visit( PointerType *pointerType ); 36 virtual void visit( ArrayType *arrayType ); 37 virtual void visit( FunctionType *functionType ); 38 virtual void visit( StructInstType *aggregateUseType ); 39 virtual void visit( UnionInstType *aggregateUseType ); 40 virtual void visit( EnumInstType *aggregateUseType ); 41 virtual void visit( TraitInstType *aggregateUseType ); 42 virtual void visit( TypeInstType *aggregateUseType ); 43 virtual void visit( TupleType *tupleType ); 44 virtual void visit( VarArgsType *varArgsType ); 45 virtual void visit( ZeroType *zeroType ); 46 virtual void visit( OneType *oneType ); 28 47 29 /// resets internal state of renamer to avoid overflow 30 void resetTyVarRenaming(); 48 void typeBefore( Type *type ); 49 void typeAfter( Type *type ); 50 int level, resetCount; 51 std::list< std::map< std::string, std::string > > mapStack; 52 }; 53 54 extern RenameVars global_renamer; 31 55 } // namespace ResolvExpr 32 56 -
src/ResolvExpr/Resolver.cc
r7416d46a rf792cb8 132 132 133 133 void findVoidExpression( Expression *& untyped, const SymTab::Indexer &indexer ) { 134 resetTyVarRenaming();134 global_renamer.reset(); 135 135 TypeEnvironment env; 136 136 Expression *newExpr = resolveInVoidContext( untyped, indexer, env ); … … 155 155 } // if 156 156 #endif 157 assertf( finder.get_alternatives().size() == 1, "findSingleExpression: must have exactly one alternative at the end : (%zd) %s", finder.get_alternatives().size(), toString( untyped ).c_str());157 assertf( finder.get_alternatives().size() == 1, "findSingleExpression: must have exactly one alternative at the end." ); 158 158 Alternative &choice = finder.get_alternatives().front(); 159 159 Expression *newExpr = choice.expr->clone(); … … 171 171 172 172 namespace { 173 /// resolve `untyped` to the expression whose type satisfies `pred` with the lowest cost; kindStr is used for providing better error messages174 template<typename Pred>175 void findKindExpression(Expression *& untyped, const SymTab::Indexer & indexer, const std::string & kindStr, Pred pred) {176 TypeEnvironment env;177 AlternativeFinder finder( indexer, env );178 finder.findWithAdjustment( untyped );179 180 AltList candidates;181 for ( Alternative & alt : finder.get_alternatives() ) {182 if ( pred( alt.expr->result ) ) {183 candidates.push_back( std::move( alt ) );184 }185 }186 187 // choose the lowest cost expression among the candidates188 AltList winners;189 findMinCost( candidates.begin(), candidates.end(), back_inserter( winners ) );190 if ( winners.size() == 0 ) {191 throw SemanticError( "No reasonable alternatives for " + kindStr + " expression: ", untyped );192 } else if ( winners.size() != 1 ) {193 std::ostringstream stream;194 stream << "Cannot choose between " << winners.size() << " alternatives for " + kindStr + " expression\n";195 untyped->print( stream );196 stream << "Alternatives are:\n";197 printAlts( winners, stream, 1 );198 throw SemanticError( stream.str() );199 }200 201 // there is one unambiguous interpretation - move the expression into the with statement202 Alternative & alt = winners.front();203 finishExpr( alt.expr, alt.env, untyped->env );204 delete untyped;205 untyped = alt.expr;206 alt.expr = nullptr;207 }208 209 173 bool isIntegralType( Type *type ) { 210 174 if ( dynamic_cast< EnumInstType * >( type ) ) { … … 220 184 221 185 void findIntegralExpression( Expression *& untyped, const SymTab::Indexer &indexer ) { 222 findKindExpression( untyped, indexer, "condition", isIntegralType ); 223 } 186 TypeEnvironment env; 187 AlternativeFinder finder( indexer, env ); 188 finder.find( untyped ); 189 #if 0 190 if ( finder.get_alternatives().size() != 1 ) { 191 std::cout << "untyped expr is "; 192 untyped->print( std::cout ); 193 std::cout << std::endl << "alternatives are:"; 194 for ( std::list< Alternative >::const_iterator i = finder.get_alternatives().begin(); i != finder.get_alternatives().end(); ++i ) { 195 i->print( std::cout ); 196 } // for 197 } // if 198 #endif 199 Expression *newExpr = 0; 200 const TypeEnvironment *newEnv = 0; 201 for ( AltList::const_iterator i = finder.get_alternatives().begin(); i != finder.get_alternatives().end(); ++i ) { 202 if ( i->expr->get_result()->size() == 1 && isIntegralType( i->expr->get_result() ) ) { 203 if ( newExpr ) { 204 throw SemanticError( "Too many interpretations for case control expression", untyped ); 205 } else { 206 newExpr = i->expr->clone(); 207 newEnv = &i->env; 208 } // if 209 } // if 210 } // for 211 if ( ! newExpr ) { 212 throw SemanticError( "No interpretations for case control expression", untyped ); 213 } // if 214 finishExpr( newExpr, *newEnv, untyped->env ); 215 delete untyped; 216 untyped = newExpr; 217 } 218 224 219 } 225 220 … … 316 311 317 312 void Resolver::previsit( IfStmt *ifStmt ) { 318 find IntegralExpression( ifStmt->condition, indexer );313 findSingleExpression( ifStmt->condition, indexer ); 319 314 } 320 315 321 316 void Resolver::previsit( WhileStmt *whileStmt ) { 322 find IntegralExpression( whileStmt->condition, indexer );317 findSingleExpression( whileStmt->condition, indexer ); 323 318 } 324 319 325 320 void Resolver::previsit( ForStmt *forStmt ) { 326 321 if ( forStmt->condition ) { 327 find IntegralExpression( forStmt->condition, indexer );322 findSingleExpression( forStmt->condition, indexer ); 328 323 } // if 329 324 … … 584 579 } 585 580 586 587 581 void Resolver::previsit( WithStmt * withStmt ) { 588 582 for ( Expression *& expr : withStmt->exprs ) { 583 TypeEnvironment env; 584 AlternativeFinder finder( indexer, env ); 585 finder.findWithAdjustment( expr ); 586 589 587 // only struct- and union-typed expressions are viable candidates 590 findKindExpression( expr, indexer, "with statement", isStructOrUnion ); 588 AltList candidates; 589 for ( Alternative & alt : finder.get_alternatives() ) { 590 if ( isStructOrUnion( alt.expr->result ) ) { 591 candidates.push_back( std::move( alt ) ); 592 } 593 } 594 595 // choose the lowest cost expression among the candidates 596 AltList winners; 597 findMinCost( candidates.begin(), candidates.end(), back_inserter( winners ) ); 598 if ( winners.size() == 0 ) { 599 throw SemanticError( "No reasonable alternatives for with statement expression: ", expr ); 600 } else if ( winners.size() != 1 ) { 601 std::ostringstream stream; 602 stream << "Cannot choose between " << winners.size() << " alternatives for with statement expression\n"; 603 expr->print( stream ); 604 stream << "Alternatives are:\n"; 605 printAlts( winners, stream, 1 ); 606 throw SemanticError( stream.str() ); 607 } 608 609 // there is one unambiguous interpretation - move the expression into the with statement 610 Alternative & alt = winners.front(); 611 finishExpr( alt.expr, alt.env, expr->env ); 612 delete expr; 613 expr = alt.expr; 614 alt.expr = nullptr; 591 615 592 616 // if with expression might be impure, create a temporary so that it is evaluated once -
src/ResolvExpr/Unify.cc
r7416d46a rf792cb8 44 44 namespace ResolvExpr { 45 45 46 struct Unify : public WithShortCircuiting { 46 class Unify : public Visitor { 47 public: 47 48 Unify( Type *type2, TypeEnvironment &env, AssertionSet &needAssertions, AssertionSet &haveAssertions, const OpenVarSet &openVars, WidenMode widenMode, const SymTab::Indexer &indexer ); 48 49 49 50 bool get_result() const { return result; } 50 51 void previsit( BaseSyntaxNode * ) { visit_children = false; }52 53 void postvisit( VoidType * voidType );54 void postvisit( BasicType * basicType );55 void postvisit( PointerType * pointerType );56 void postvisit( ArrayType * arrayType );57 void postvisit( ReferenceType * refType );58 void postvisit( FunctionType * functionType );59 void postvisit( StructInstType * aggregateUseType );60 void postvisit( UnionInstType * aggregateUseType );61 void postvisit( EnumInstType * aggregateUseType );62 void postvisit( TraitInstType * aggregateUseType );63 void postvisit( TypeInstType * aggregateUseType );64 void postvisit( TupleType * tupleType );65 void postvisit( VarArgsType * varArgsType );66 void postvisit( ZeroType * zeroType );67 void postvisit( OneType * oneType );68 69 51 private: 52 virtual void visit(VoidType *voidType); 53 virtual void visit(BasicType *basicType); 54 virtual void visit(PointerType *pointerType); 55 virtual void visit(ArrayType *arrayType); 56 virtual void visit(ReferenceType *refType); 57 virtual void visit(FunctionType *functionType); 58 virtual void visit(StructInstType *aggregateUseType); 59 virtual void visit(UnionInstType *aggregateUseType); 60 virtual void visit(EnumInstType *aggregateUseType); 61 virtual void visit(TraitInstType *aggregateUseType); 62 virtual void visit(TypeInstType *aggregateUseType); 63 virtual void visit(TupleType *tupleType); 64 virtual void visit(VarArgsType *varArgsType); 65 virtual void visit(ZeroType *zeroType); 66 virtual void visit(OneType *oneType); 67 70 68 template< typename RefType > void handleRefType( RefType *inst, Type *other ); 71 69 template< typename RefType > void handleGenericRefType( RefType *inst, Type *other ); … … 327 325 result = bindVar( var2, type1, entry2->second, env, needAssertions, haveAssertions, openVars, widenMode, indexer ); 328 326 } else { 329 PassVisitor<Unify>comparator( type2, env, needAssertions, haveAssertions, openVars, widenMode, indexer );327 Unify comparator( type2, env, needAssertions, haveAssertions, openVars, widenMode, indexer ); 330 328 type1->accept( comparator ); 331 result = comparator. pass.get_result();329 result = comparator.get_result(); 332 330 } // if 333 331 #ifdef DEBUG … … 406 404 } 407 405 408 void Unify:: postvisit( __attribute__((unused)) VoidType *voidType) {406 void Unify::visit( __attribute__((unused)) VoidType *voidType) { 409 407 result = dynamic_cast< VoidType* >( type2 ); 410 408 } 411 409 412 void Unify:: postvisit(BasicType *basicType) {410 void Unify::visit(BasicType *basicType) { 413 411 if ( BasicType *otherBasic = dynamic_cast< BasicType* >( type2 ) ) { 414 412 result = basicType->get_kind() == otherBasic->get_kind(); … … 438 436 } 439 437 440 void Unify:: postvisit(PointerType *pointerType) {438 void Unify::visit(PointerType *pointerType) { 441 439 if ( PointerType *otherPointer = dynamic_cast< PointerType* >( type2 ) ) { 442 440 result = unifyExact( pointerType->get_base(), otherPointer->get_base(), env, needAssertions, haveAssertions, openVars, WidenMode( false, false ), indexer ); … … 446 444 } 447 445 448 void Unify:: postvisit(ReferenceType *refType) {446 void Unify::visit(ReferenceType *refType) { 449 447 if ( ReferenceType *otherRef = dynamic_cast< ReferenceType* >( type2 ) ) { 450 448 result = unifyExact( refType->get_base(), otherRef->get_base(), env, needAssertions, haveAssertions, openVars, WidenMode( false, false ), indexer ); … … 454 452 } 455 453 456 void Unify:: postvisit(ArrayType *arrayType) {454 void Unify::visit(ArrayType *arrayType) { 457 455 ArrayType *otherArray = dynamic_cast< ArrayType* >( type2 ); 458 456 // to unify, array types must both be VLA or both not VLA … … 569 567 } 570 568 571 void Unify:: postvisit(FunctionType *functionType) {569 void Unify::visit(FunctionType *functionType) { 572 570 FunctionType *otherFunction = dynamic_cast< FunctionType* >( type2 ); 573 571 if ( otherFunction && functionType->get_isVarArgs() == otherFunction->get_isVarArgs() ) { … … 671 669 } 672 670 673 void Unify:: postvisit(StructInstType *structInst) {671 void Unify::visit(StructInstType *structInst) { 674 672 handleGenericRefType( structInst, type2 ); 675 673 } 676 674 677 void Unify:: postvisit(UnionInstType *unionInst) {675 void Unify::visit(UnionInstType *unionInst) { 678 676 handleGenericRefType( unionInst, type2 ); 679 677 } 680 678 681 void Unify:: postvisit(EnumInstType *enumInst) {679 void Unify::visit(EnumInstType *enumInst) { 682 680 handleRefType( enumInst, type2 ); 683 681 } 684 682 685 void Unify:: postvisit(TraitInstType *contextInst) {683 void Unify::visit(TraitInstType *contextInst) { 686 684 handleRefType( contextInst, type2 ); 687 685 } 688 686 689 void Unify:: postvisit(TypeInstType *typeInst) {687 void Unify::visit(TypeInstType *typeInst) { 690 688 assert( openVars.find( typeInst->get_name() ) == openVars.end() ); 691 689 TypeInstType *otherInst = dynamic_cast< TypeInstType* >( type2 ); … … 742 740 } 743 741 744 void Unify:: postvisit(TupleType *tupleType) {742 void Unify::visit(TupleType *tupleType) { 745 743 if ( TupleType *otherTuple = dynamic_cast< TupleType* >( type2 ) ) { 746 744 std::unique_ptr<TupleType> flat1( tupleType->clone() ); … … 759 757 } 760 758 761 void Unify:: postvisit( __attribute__((unused)) VarArgsType *varArgsType ) {759 void Unify::visit( __attribute__((unused)) VarArgsType *varArgsType ) { 762 760 result = dynamic_cast< VarArgsType* >( type2 ); 763 761 } 764 762 765 void Unify:: postvisit( __attribute__((unused)) ZeroType *zeroType ) {763 void Unify::visit( __attribute__((unused)) ZeroType *zeroType ) { 766 764 result = dynamic_cast< ZeroType* >( type2 ); 767 765 } 768 766 769 void Unify:: postvisit( __attribute__((unused)) OneType *oneType ) {767 void Unify::visit( __attribute__((unused)) OneType *oneType ) { 770 768 result = dynamic_cast< OneType* >( type2 ); 771 769 } -
src/SymTab/Mangler.cc
r7416d46a rf792cb8 23 23 24 24 #include "CodeGen/OperatorTable.h" // for OperatorInfo, operatorLookup 25 #include "Common/PassVisitor.h"26 25 #include "Common/SemanticError.h" // for SemanticError 27 26 #include "Common/utility.h" // for toString … … 32 31 33 32 namespace SymTab { 34 namespace Mangler{35 namespace {36 /// Mangles names to a unique C identifier37 struct Mangler : public WithShortCircuiting, public WithVisitorRef<Mangler> {38 Mangler( bool mangleOverridable, bool typeMode, bool mangleGenericParams );39 Mangler( const Mangler & ); 40 41 void previsit( BaseSyntaxNode * ) { visit_children = false; }42 43 void postvisit( ObjectDecl * declaration);44 void postvisit( FunctionDecl * declaration );45 void postvisit( TypeDecl * declaration ); 46 47 void postvisit( VoidType * voidType );48 void postvisit( BasicType * basicType ); 49 void postvisit( PointerType * pointerType );50 void postvisit( ArrayType * arrayType );51 void postvisit( ReferenceType * refType );52 void postvisit( FunctionType * functionType );53 void postvisit( StructInstType * aggregateUseType );54 void postvisit( UnionInstType * aggregateUseType );55 void postvisit( EnumInstType * aggregateUseType );56 void postvisit( TypeInstType * aggregateUseType ); 57 void postvisit( TupleType * tupleType );58 void postvisit( VarArgsType * varArgsType );59 void postvisit( ZeroType * zeroType );60 void postvisit( OneType * oneType);61 62 std::string get_mangleName() { return mangleName.str(); }63 private:64 std::ostringstream mangleName; ///< Mangled name being constructed65 typedef std::map< std::string, std::pair< int, int > > VarMapType;66 VarMapType varNums; ///< Map of type variables to indices67 int nextVarNum; ///< Next type variable index68 bool isTopLevel; ///< Is the Mangler at the top level69 bool mangleOverridable; ///< Specially mangle overridable built-in methods70 bool typeMode; ///< Produce a unique mangled name for a type71 bool mangleGenericParams; ///< Include generic parameters in name mangling if true72 73 void mangleDecl( DeclarationWithType *declaration );74 void mangleRef( ReferenceToType *refType, std::string prefix );75 76 void printQualifiers( Type *type );77 }; // Mangler78 } // namespace79 80 std::string mangle( BaseSyntaxNode * decl, bool mangleOverridable, bool typeMode, bool mangleGenericParams ){81 PassVisitor<Mangler> mangler( mangleOverridable, typeMode, mangleGenericParams );82 maybeAccept( decl, mangler);83 return mangler.pass.get_mangleName();33 std::string Mangler::mangleType( Type * ty ) { 34 Mangler mangler( false, true, true ); 35 maybeAccept( ty, mangler ); 36 return mangler.get_mangleName(); 37 } 38 39 std::string Mangler::mangleConcrete( Type* ty ) { 40 Mangler mangler( false, false, false ); 41 maybeAccept( ty, mangler ); 42 return mangler.get_mangleName(); 43 } 44 45 Mangler::Mangler( bool mangleOverridable, bool typeMode, bool mangleGenericParams ) 46 : nextVarNum( 0 ), isTopLevel( true ), mangleOverridable( mangleOverridable ), typeMode( typeMode ), mangleGenericParams( mangleGenericParams ) {} 47 48 Mangler::Mangler( const Mangler &rhs ) : mangleName() { 49 varNums = rhs.varNums; 50 nextVarNum = rhs.nextVarNum; 51 isTopLevel = rhs.isTopLevel; 52 mangleOverridable = rhs.mangleOverridable; 53 typeMode = rhs.typeMode; 54 } 55 56 void Mangler::mangleDecl( DeclarationWithType * declaration ) { 57 bool wasTopLevel = isTopLevel; 58 if ( isTopLevel ) { 59 varNums.clear(); 60 nextVarNum = 0; 61 isTopLevel = false; 62 } // if 63 mangleName << "__"; 64 CodeGen::OperatorInfo opInfo; 65 if ( operatorLookup( declaration->get_name(), opInfo ) ) { 66 mangleName << opInfo.outputName; 67 } else { 68 mangleName << declaration->get_name(); 69 } // if 70 mangleName << "__"; 71 maybeAccept( declaration->get_type(), *this ); 72 if ( mangleOverridable && LinkageSpec::isOverridable( declaration->get_linkage() ) ) { 73 // want to be able to override autogenerated and intrinsic routines, 74 // so they need a different name mangling 75 if ( declaration->get_linkage() == LinkageSpec::AutoGen ) { 76 mangleName << "autogen__"; 77 } else if ( declaration->get_linkage() == LinkageSpec::Intrinsic ) { 78 mangleName << "intrinsic__"; 79 } else { 80 // if we add another kind of overridable function, this has to change 81 assert( false && "unknown overrideable linkage" ); 82 } // if 84 83 } 85 86 std::string mangleType( Type * ty ) { 87 PassVisitor<Mangler> mangler( false, true, true ); 88 maybeAccept( ty, mangler ); 89 return mangler.pass.get_mangleName(); 84 isTopLevel = wasTopLevel; 85 } 86 87 void Mangler::visit( ObjectDecl * declaration ) { 88 mangleDecl( declaration ); 89 } 90 91 void Mangler::visit( FunctionDecl * declaration ) { 92 mangleDecl( declaration ); 93 } 94 95 void Mangler::visit( VoidType * voidType ) { 96 printQualifiers( voidType ); 97 mangleName << "v"; 98 } 99 100 void Mangler::visit( BasicType * basicType ) { 101 static const char *btLetter[] = { 102 "b", // Bool 103 "c", // Char 104 "Sc", // SignedChar 105 "Uc", // UnsignedChar 106 "s", // ShortSignedInt 107 "Us", // ShortUnsignedInt 108 "i", // SignedInt 109 "Ui", // UnsignedInt 110 "l", // LongSignedInt 111 "Ul", // LongUnsignedInt 112 "q", // LongLongSignedInt 113 "Uq", // LongLongUnsignedInt 114 "f", // Float 115 "d", // Double 116 "r", // LongDouble 117 "Xf", // FloatComplex 118 "Xd", // DoubleComplex 119 "Xr", // LongDoubleComplex 120 "If", // FloatImaginary 121 "Id", // DoubleImaginary 122 "Ir", // LongDoubleImaginary 123 "w", // SignedInt128 124 "Uw", // UnsignedInt128 125 }; 126 127 printQualifiers( basicType ); 128 mangleName << btLetter[ basicType->get_kind() ]; 129 } 130 131 void Mangler::visit( PointerType * pointerType ) { 132 printQualifiers( pointerType ); 133 mangleName << "P"; 134 maybeAccept( pointerType->get_base(), *this ); 135 } 136 137 void Mangler::visit( ArrayType * arrayType ) { 138 // TODO: encode dimension 139 printQualifiers( arrayType ); 140 mangleName << "A0"; 141 maybeAccept( arrayType->get_base(), *this ); 142 } 143 144 void Mangler::visit( ReferenceType * refType ) { 145 printQualifiers( refType ); 146 mangleName << "R"; 147 maybeAccept( refType->get_base(), *this ); 148 } 149 150 namespace { 151 inline std::list< Type* > getTypes( const std::list< DeclarationWithType* > decls ) { 152 std::list< Type* > ret; 153 std::transform( decls.begin(), decls.end(), std::back_inserter( ret ), 154 std::mem_fun( &DeclarationWithType::get_type ) ); 155 return ret; 90 156 } 91 92 std::string mangleConcrete( Type * ty ) { 93 PassVisitor<Mangler> mangler( false, false, false ); 94 maybeAccept( ty, mangler ); 95 return mangler.pass.get_mangleName(); 96 } 97 98 namespace { 99 Mangler::Mangler( bool mangleOverridable, bool typeMode, bool mangleGenericParams ) 100 : nextVarNum( 0 ), isTopLevel( true ), mangleOverridable( mangleOverridable ), typeMode( typeMode ), mangleGenericParams( mangleGenericParams ) {} 101 102 Mangler::Mangler( const Mangler &rhs ) : mangleName() { 103 varNums = rhs.varNums; 104 nextVarNum = rhs.nextVarNum; 105 isTopLevel = rhs.isTopLevel; 106 mangleOverridable = rhs.mangleOverridable; 107 typeMode = rhs.typeMode; 108 } 109 110 void Mangler::mangleDecl( DeclarationWithType * declaration ) { 111 bool wasTopLevel = isTopLevel; 112 if ( isTopLevel ) { 113 varNums.clear(); 114 nextVarNum = 0; 115 isTopLevel = false; 116 } // if 117 mangleName << "__"; 118 CodeGen::OperatorInfo opInfo; 119 if ( operatorLookup( declaration->get_name(), opInfo ) ) { 120 mangleName << opInfo.outputName; 121 } else { 122 mangleName << declaration->get_name(); 123 } // if 124 mangleName << "__"; 125 maybeAccept( declaration->get_type(), *visitor ); 126 if ( mangleOverridable && LinkageSpec::isOverridable( declaration->get_linkage() ) ) { 127 // want to be able to override autogenerated and intrinsic routines, 128 // so they need a different name mangling 129 if ( declaration->get_linkage() == LinkageSpec::AutoGen ) { 130 mangleName << "autogen__"; 131 } else if ( declaration->get_linkage() == LinkageSpec::Intrinsic ) { 132 mangleName << "intrinsic__"; 133 } else { 134 // if we add another kind of overridable function, this has to change 135 assert( false && "unknown overrideable linkage" ); 136 } // if 157 } 158 159 void Mangler::visit( FunctionType * functionType ) { 160 printQualifiers( functionType ); 161 mangleName << "F"; 162 std::list< Type* > returnTypes = getTypes( functionType->get_returnVals() ); 163 acceptAll( returnTypes, *this ); 164 mangleName << "_"; 165 std::list< Type* > paramTypes = getTypes( functionType->get_parameters() ); 166 acceptAll( paramTypes, *this ); 167 mangleName << "_"; 168 } 169 170 void Mangler::mangleRef( ReferenceToType * refType, std::string prefix ) { 171 printQualifiers( refType ); 172 173 mangleName << ( refType->get_name().length() + prefix.length() ) << prefix << refType->get_name(); 174 175 if ( mangleGenericParams ) { 176 std::list< Expression* >& params = refType->get_parameters(); 177 if ( ! params.empty() ) { 178 mangleName << "_"; 179 for ( std::list< Expression* >::const_iterator param = params.begin(); param != params.end(); ++param ) { 180 TypeExpr *paramType = dynamic_cast< TypeExpr* >( *param ); 181 assertf(paramType, "Aggregate parameters should be type expressions: %s", toString(*param).c_str()); 182 maybeAccept( paramType->get_type(), *this ); 137 183 } 138 isTopLevel = wasTopLevel;139 }140 141 void Mangler::postvisit( ObjectDecl * declaration ) {142 mangleDecl( declaration );143 }144 145 void Mangler::postvisit( FunctionDecl * declaration ) {146 mangleDecl( declaration );147 }148 149 void Mangler::postvisit( VoidType * voidType ) {150 printQualifiers( voidType );151 mangleName << "v";152 }153 154 void Mangler::postvisit( BasicType * basicType ) {155 static const char *btLetter[] = {156 "b", // Bool157 "c", // Char158 "Sc", // SignedChar159 "Uc", // UnsignedChar160 "s", // ShortSignedInt161 "Us", // ShortUnsignedInt162 "i", // SignedInt163 "Ui", // UnsignedInt164 "l", // LongSignedInt165 "Ul", // LongUnsignedInt166 "q", // LongLongSignedInt167 "Uq", // LongLongUnsignedInt168 "f", // Float169 "d", // Double170 "r", // LongDouble171 "Xf", // FloatComplex172 "Xd", // DoubleComplex173 "Xr", // LongDoubleComplex174 "If", // FloatImaginary175 "Id", // DoubleImaginary176 "Ir", // LongDoubleImaginary177 "w", // SignedInt128178 "Uw", // UnsignedInt128179 };180 181 printQualifiers( basicType );182 mangleName << btLetter[ basicType->get_kind() ];183 }184 185 void Mangler::postvisit( PointerType * pointerType ) {186 printQualifiers( pointerType );187 mangleName << "P";188 maybeAccept( pointerType->get_base(), *visitor );189 }190 191 void Mangler::postvisit( ArrayType * arrayType ) {192 // TODO: encode dimension193 printQualifiers( arrayType );194 mangleName << "A0";195 maybeAccept( arrayType->get_base(), *visitor );196 }197 198 void Mangler::postvisit( ReferenceType * refType ) {199 printQualifiers( refType );200 mangleName << "R";201 maybeAccept( refType->get_base(), *visitor );202 }203 204 namespace {205 inline std::list< Type* > getTypes( const std::list< DeclarationWithType* > decls ) {206 std::list< Type* > ret;207 std::transform( decls.begin(), decls.end(), std::back_inserter( ret ),208 std::mem_fun( &DeclarationWithType::get_type ) );209 return ret;210 }211 }212 213 void Mangler::postvisit( FunctionType * functionType ) {214 printQualifiers( functionType );215 mangleName << "F";216 std::list< Type* > returnTypes = getTypes( functionType->get_returnVals() );217 acceptAll( returnTypes, *visitor );218 mangleName << "_";219 std::list< Type* > paramTypes = getTypes( functionType->get_parameters() );220 acceptAll( paramTypes, *visitor );221 184 mangleName << "_"; 222 185 } 223 224 void Mangler::mangleRef( ReferenceToType * refType, std::string prefix ) { 225 printQualifiers( refType ); 226 227 mangleName << ( refType->get_name().length() + prefix.length() ) << prefix << refType->get_name(); 228 229 if ( mangleGenericParams ) { 230 std::list< Expression* >& params = refType->get_parameters(); 231 if ( ! params.empty() ) { 232 mangleName << "_"; 233 for ( std::list< Expression* >::const_iterator param = params.begin(); param != params.end(); ++param ) { 234 TypeExpr *paramType = dynamic_cast< TypeExpr* >( *param ); 235 assertf(paramType, "Aggregate parameters should be type expressions: %s", toString(*param).c_str()); 236 maybeAccept( paramType->get_type(), *visitor ); 237 } 238 mangleName << "_"; 239 } 240 } 241 } 242 243 void Mangler::postvisit( StructInstType * aggregateUseType ) { 244 mangleRef( aggregateUseType, "s" ); 245 } 246 247 void Mangler::postvisit( UnionInstType * aggregateUseType ) { 248 mangleRef( aggregateUseType, "u" ); 249 } 250 251 void Mangler::postvisit( EnumInstType * aggregateUseType ) { 252 mangleRef( aggregateUseType, "e" ); 253 } 254 255 void Mangler::postvisit( TypeInstType * typeInst ) { 256 VarMapType::iterator varNum = varNums.find( typeInst->get_name() ); 257 if ( varNum == varNums.end() ) { 258 mangleRef( typeInst, "t" ); 259 } else { 260 printQualifiers( typeInst ); 261 std::ostringstream numStream; 262 numStream << varNum->second.first; 263 switch ( (TypeDecl::Kind )varNum->second.second ) { 264 case TypeDecl::Dtype: 265 mangleName << "d"; 266 break; 267 case TypeDecl::Ftype: 268 mangleName << "f"; 269 break; 270 case TypeDecl::Ttype: 271 mangleName << "tVARGS"; 272 break; 273 default: 274 assert( false ); 275 } // switch 276 mangleName << numStream.str(); 277 } // if 278 } 279 280 void Mangler::postvisit( TupleType * tupleType ) { 281 printQualifiers( tupleType ); 282 mangleName << "T"; 283 acceptAll( tupleType->types, *visitor ); 284 mangleName << "_"; 285 } 286 287 void Mangler::postvisit( VarArgsType * varArgsType ) { 288 printQualifiers( varArgsType ); 289 mangleName << "VARGS"; 290 } 291 292 void Mangler::postvisit( ZeroType * ) { 293 mangleName << "Z"; 294 } 295 296 void Mangler::postvisit( OneType * ) { 297 mangleName << "O"; 298 } 299 300 void Mangler::postvisit( TypeDecl * decl ) { 301 static const char *typePrefix[] = { "BT", "BD", "BF" }; 302 mangleName << typePrefix[ decl->get_kind() ] << ( decl->name.length() + 1 ) << decl->name; 303 } 304 305 __attribute__((unused)) void printVarMap( const std::map< std::string, std::pair< int, int > > &varMap, std::ostream &os ) { 306 for ( std::map< std::string, std::pair< int, int > >::const_iterator i = varMap.begin(); i != varMap.end(); ++i ) { 307 os << i->first << "(" << i->second.first << "/" << i->second.second << ")" << std::endl; 186 } 187 } 188 189 void Mangler::visit( StructInstType * aggregateUseType ) { 190 mangleRef( aggregateUseType, "s" ); 191 } 192 193 void Mangler::visit( UnionInstType * aggregateUseType ) { 194 mangleRef( aggregateUseType, "u" ); 195 } 196 197 void Mangler::visit( EnumInstType * aggregateUseType ) { 198 mangleRef( aggregateUseType, "e" ); 199 } 200 201 void Mangler::visit( TypeInstType * typeInst ) { 202 VarMapType::iterator varNum = varNums.find( typeInst->get_name() ); 203 if ( varNum == varNums.end() ) { 204 mangleRef( typeInst, "t" ); 205 } else { 206 printQualifiers( typeInst ); 207 std::ostringstream numStream; 208 numStream << varNum->second.first; 209 switch ( (TypeDecl::Kind )varNum->second.second ) { 210 case TypeDecl::Dtype: 211 mangleName << "d"; 212 break; 213 case TypeDecl::Ftype: 214 mangleName << "f"; 215 break; 216 case TypeDecl::Ttype: 217 mangleName << "tVARGS"; 218 break; 219 default: 220 assert( false ); 221 } // switch 222 mangleName << numStream.str(); 223 } // if 224 } 225 226 void Mangler::visit( TupleType * tupleType ) { 227 printQualifiers( tupleType ); 228 mangleName << "T"; 229 acceptAll( tupleType->types, *this ); 230 mangleName << "_"; 231 } 232 233 void Mangler::visit( VarArgsType * varArgsType ) { 234 printQualifiers( varArgsType ); 235 mangleName << "VARGS"; 236 } 237 238 void Mangler::visit( ZeroType * ) { 239 mangleName << "Z"; 240 } 241 242 void Mangler::visit( OneType * ) { 243 mangleName << "O"; 244 } 245 246 void Mangler::visit( TypeDecl * decl ) { 247 static const char *typePrefix[] = { "BT", "BD", "BF" }; 248 mangleName << typePrefix[ decl->get_kind() ] << ( decl->name.length() + 1 ) << decl->name; 249 } 250 251 void printVarMap( const std::map< std::string, std::pair< int, int > > &varMap, std::ostream &os ) { 252 for ( std::map< std::string, std::pair< int, int > >::const_iterator i = varMap.begin(); i != varMap.end(); ++i ) { 253 os << i->first << "(" << i->second.first << "/" << i->second.second << ")" << std::endl; 254 } // for 255 } 256 257 void Mangler::printQualifiers( Type * type ) { 258 // skip if not including qualifiers 259 if ( typeMode ) return; 260 261 if ( ! type->get_forall().empty() ) { 262 std::list< std::string > assertionNames; 263 int tcount = 0, dcount = 0, fcount = 0, vcount = 0; 264 mangleName << "A"; 265 for ( Type::ForallList::iterator i = type->forall.begin(); i != type->forall.end(); ++i ) { 266 switch ( (*i)->get_kind() ) { 267 case TypeDecl::Dtype: 268 dcount++; 269 break; 270 case TypeDecl::Ftype: 271 fcount++; 272 break; 273 case TypeDecl::Ttype: 274 vcount++; 275 break; 276 default: 277 assert( false ); 278 } // switch 279 varNums[ (*i)->name ] = std::pair< int, int >( nextVarNum++, (int)(*i)->get_kind() ); 280 for ( std::list< DeclarationWithType* >::iterator assert = (*i)->assertions.begin(); assert != (*i)->assertions.end(); ++assert ) { 281 Mangler sub_mangler( mangleOverridable, typeMode, mangleGenericParams ); 282 sub_mangler.nextVarNum = nextVarNum; 283 sub_mangler.isTopLevel = false; 284 sub_mangler.varNums = varNums; 285 (*assert)->accept( sub_mangler ); 286 assertionNames.push_back( sub_mangler.mangleName.str() ); 308 287 } // for 309 } 310 311 void Mangler::printQualifiers( Type * type ) { 312 // skip if not including qualifiers 313 if ( typeMode ) return; 314 315 if ( ! type->get_forall().empty() ) { 316 std::list< std::string > assertionNames; 317 int tcount = 0, dcount = 0, fcount = 0, vcount = 0; 318 mangleName << "A"; 319 for ( Type::ForallList::iterator i = type->forall.begin(); i != type->forall.end(); ++i ) { 320 switch ( (*i)->get_kind() ) { 321 case TypeDecl::Dtype: 322 dcount++; 323 break; 324 case TypeDecl::Ftype: 325 fcount++; 326 break; 327 case TypeDecl::Ttype: 328 vcount++; 329 break; 330 default: 331 assert( false ); 332 } // switch 333 varNums[ (*i)->name ] = std::pair< int, int >( nextVarNum++, (int)(*i)->get_kind() ); 334 for ( std::list< DeclarationWithType* >::iterator assert = (*i)->assertions.begin(); assert != (*i)->assertions.end(); ++assert ) { 335 PassVisitor<Mangler> sub_mangler( mangleOverridable, typeMode, mangleGenericParams ); 336 sub_mangler.pass.nextVarNum = nextVarNum; 337 sub_mangler.pass.isTopLevel = false; 338 sub_mangler.pass.varNums = varNums; 339 (*assert)->accept( sub_mangler ); 340 assertionNames.push_back( sub_mangler.pass.mangleName.str() ); 341 } // for 342 } // for 343 mangleName << tcount << "_" << dcount << "_" << fcount << "_" << vcount << "_"; 344 std::copy( assertionNames.begin(), assertionNames.end(), std::ostream_iterator< std::string >( mangleName, "" ) ); 345 mangleName << "_"; 346 } // if 347 if ( type->get_const() ) { 348 mangleName << "C"; 349 } // if 350 if ( type->get_volatile() ) { 351 mangleName << "V"; 352 } // if 353 if ( type->get_mutex() ) { 354 mangleName << "M"; 355 } // if 356 // Removed due to restrict not affecting function compatibility in GCC 357 // if ( type->get_isRestrict() ) { 358 // mangleName << "E"; 359 // } // if 360 if ( type->get_lvalue() ) { 361 // mangle based on whether the type is lvalue, so that the resolver can differentiate lvalues and rvalues 362 mangleName << "L"; 363 } 364 if ( type->get_atomic() ) { 365 mangleName << "A"; 366 } // if 367 } 368 } // namespace 369 } // namespace Mangler 288 } // for 289 mangleName << tcount << "_" << dcount << "_" << fcount << "_" << vcount << "_"; 290 std::copy( assertionNames.begin(), assertionNames.end(), std::ostream_iterator< std::string >( mangleName, "" ) ); 291 mangleName << "_"; 292 } // if 293 if ( type->get_const() ) { 294 mangleName << "C"; 295 } // if 296 if ( type->get_volatile() ) { 297 mangleName << "V"; 298 } // if 299 if ( type->get_mutex() ) { 300 mangleName << "M"; 301 } // if 302 // Removed due to restrict not affecting function compatibility in GCC 303 // if ( type->get_isRestrict() ) { 304 // mangleName << "E"; 305 // } // if 306 if ( type->get_lvalue() ) { 307 // mangle based on whether the type is lvalue, so that the resolver can differentiate lvalues and rvalues 308 mangleName << "L"; 309 } 310 if ( type->get_atomic() ) { 311 mangleName << "A"; 312 } // if 313 } 370 314 } // namespace SymTab 371 315 -
src/SymTab/Mangler.h
r7416d46a rf792cb8 25 25 26 26 namespace SymTab { 27 namespace Mangler { 27 /// Mangles names to a unique C identifier 28 class Mangler : public Visitor { 29 public: 28 30 /// Mangle syntax tree object; primary interface to clients 29 std::string mangle( BaseSyntaxNode * decl, bool mangleOverridable = true, bool typeMode = false, bool mangleGenericParams = true ); 31 template< typename SynTreeClass > 32 static std::string mangle( SynTreeClass *decl, bool mangleOverridable = true, bool typeMode = false, bool mangleGenericParams = true ); 33 /// Mangle a type name; secondary interface 34 static std::string mangleType( Type* ty ); 35 /// Mangle ignoring generic type parameters 36 static std::string mangleConcrete( Type* ty ); 30 37 31 /// Mangle a type name; secondary interface 32 std::string mangleType( Type* ty ); 33 /// Mangle ignoring generic type parameters 34 std::string mangleConcrete( Type* ty ); 35 } // Mangler 38 39 virtual void visit( ObjectDecl *declaration ); 40 virtual void visit( FunctionDecl *declaration ); 41 virtual void visit( TypeDecl *declaration ); 42 43 virtual void visit( VoidType *voidType ); 44 virtual void visit( BasicType *basicType ); 45 virtual void visit( PointerType *pointerType ); 46 virtual void visit( ArrayType *arrayType ); 47 virtual void visit( ReferenceType *refType ); 48 virtual void visit( FunctionType *functionType ); 49 virtual void visit( StructInstType *aggregateUseType ); 50 virtual void visit( UnionInstType *aggregateUseType ); 51 virtual void visit( EnumInstType *aggregateUseType ); 52 virtual void visit( TypeInstType *aggregateUseType ); 53 virtual void visit( TupleType *tupleType ); 54 virtual void visit( VarArgsType *varArgsType ); 55 virtual void visit( ZeroType *zeroType ); 56 virtual void visit( OneType *oneType ); 57 58 std::string get_mangleName() { return mangleName.str(); } 59 private: 60 std::ostringstream mangleName; ///< Mangled name being constructed 61 typedef std::map< std::string, std::pair< int, int > > VarMapType; 62 VarMapType varNums; ///< Map of type variables to indices 63 int nextVarNum; ///< Next type variable index 64 bool isTopLevel; ///< Is the Mangler at the top level 65 bool mangleOverridable; ///< Specially mangle overridable built-in methods 66 bool typeMode; ///< Produce a unique mangled name for a type 67 bool mangleGenericParams; ///< Include generic parameters in name mangling if true 68 69 Mangler( bool mangleOverridable, bool typeMode, bool mangleGenericParams ); 70 Mangler( const Mangler & ); 71 72 void mangleDecl( DeclarationWithType *declaration ); 73 void mangleRef( ReferenceToType *refType, std::string prefix ); 74 75 void printQualifiers( Type *type ); 76 }; // Mangler 77 78 template< typename SynTreeClass > 79 std::string Mangler::mangle( SynTreeClass *decl, bool mangleOverridable, bool typeMode, bool mangleGenericParams ) { 80 Mangler mangler( mangleOverridable, typeMode, mangleGenericParams ); 81 maybeAccept( decl, mangler ); 82 return mangler.get_mangleName(); 83 } 36 84 } // SymTab 37 85 -
src/SynTree/AggregateDecl.cc
r7416d46a rf792cb8 92 92 } else if ( ConstantExpr * constExpr = dynamic_cast< ConstantExpr * >( expr ) ) { 93 93 return constExpr->intValue(); 94 // can be -1, +1, etc.95 // } else if ( UntypedExpr * untypedExpr = dynamic_cast< UntypedExpr * >( expr ) ) {96 // if ( untypedExpr-> )97 94 } else { 98 95 assertf( false, "Unhandled expression type in getConstValue for enumerators: %s", toString( expr ).c_str() ); -
src/SynTree/CompoundStmt.cc
r7416d46a rf792cb8 64 64 } 65 65 if ( ! declMap.empty() ) { 66 VarExprReplacer::replace( this, declMap ); 66 VarExprReplacer replacer( declMap ); 67 accept( replacer ); 67 68 } 68 69 } -
src/SynTree/Expression.cc
r7416d46a rf792cb8 108 108 // assert( inst->baseEnum ); 109 109 // EnumDecl * decl = inst->baseEnum; 110 // long long int value; 111 // if ( decl->valueOf( var, value ) ) { 112 // type->set_lvalue( false ); 110 // for ( Declaration * member : decl->members ) { 111 // if ( member == _var ) { 112 // type->set_lvalue( false ); 113 // } 113 114 // } 114 115 // } … … 415 416 } else { 416 417 // references have been removed, in which case dereference returns an lvalue of the base type. 417 ret-> result->set_lvalue( true );418 ret->get_result()->set_lvalue( true ); 418 419 } 419 420 } -
src/SynTree/FunctionDecl.cc
r7416d46a rf792cb8 49 49 } 50 50 if ( ! declMap.empty() ) { 51 VarExprReplacer::replace( this, declMap ); 51 VarExprReplacer replacer( declMap ); 52 accept( replacer ); 52 53 } 53 54 } -
src/SynTree/Label.h
r7416d46a rf792cb8 33 33 std::list< Attribute * >& get_attributes() { return attributes; } 34 34 35 operator std::string() const{ return name; }35 operator std::string() { return name; } 36 36 bool empty() { return name.empty(); } 37 37 private: -
src/SynTree/TypeSubstitution.cc
r7416d46a rf792cb8 107 107 108 108 void TypeSubstitution::normalize() { 109 PassVisitor<Substituter> sub( *this, true );110 109 do { 111 sub .pass.subCount = 0;112 sub.pass.freeOnly = true;110 subCount = 0; 111 freeOnly = true; 113 112 for ( TypeEnvType::iterator i = typeEnv.begin(); i != typeEnv.end(); ++i ) { 114 i->second = i->second->acceptMutator( sub);113 i->second = i->second->acceptMutator( *this ); 115 114 } 116 } while ( sub .pass.subCount );117 } 118 119 Type * TypeSubstitution:: Substituter::postmutate( TypeInstType *inst ) {120 BoundVarsType::const_iterator bound = boundVars.find( inst-> name);115 } while ( subCount ); 116 } 117 118 Type * TypeSubstitution::mutate( TypeInstType *inst ) { 119 BoundVarsType::const_iterator bound = boundVars.find( inst->get_name() ); 121 120 if ( bound != boundVars.end() ) return inst; 122 121 123 TypeEnvType::const_iterator i = sub.typeEnv.find( inst->get_name() );124 if ( i == sub.typeEnv.end() ) {122 TypeEnvType::const_iterator i = typeEnv.find( inst->get_name() ); 123 if ( i == typeEnv.end() ) { 125 124 return inst; 126 125 } else { 127 /// std::c err<< "found " << inst->get_name() << ", replacing with ";128 /// i->second->print( std::c err);129 /// std::c err<< std::endl;126 /// std::cout << "found " << inst->get_name() << ", replacing with "; 127 /// i->second->print( std::cout ); 128 /// std::cout << std::endl; 130 129 subCount++; 131 Type * newtype = i->second->clone();130 Type *newtype = i->second->clone(); 132 131 newtype->get_qualifiers() |= inst->get_qualifiers(); 133 132 delete inst; … … 136 135 } 137 136 138 Expression * TypeSubstitution:: Substituter::postmutate( NameExpr *nameExpr ) {139 VarEnvType::const_iterator i = sub.varEnv.find( nameExpr->name);140 if ( i == sub.varEnv.end() ) {137 Expression * TypeSubstitution::mutate( NameExpr *nameExpr ) { 138 VarEnvType::const_iterator i = varEnv.find( nameExpr->get_name() ); 139 if ( i == varEnv.end() ) { 141 140 return nameExpr; 142 141 } else { … … 147 146 } 148 147 149 void TypeSubstitution::Substituter::premutate( Type * type ) { 150 GuardValue( boundVars ); 148 template< typename TypeClass > 149 Type *TypeSubstitution::handleType( TypeClass *type ) { 150 ValueGuard<BoundVarsType> oldBoundVars( boundVars ); 151 151 // bind type variables from forall-qualifiers 152 152 if ( freeOnly ) { 153 for ( Type::ForallList::const_iterator tyvar = type-> forall.begin(); tyvar != type->forall.end(); ++tyvar ) {154 boundVars.insert( (*tyvar )->name);153 for ( Type::ForallList::const_iterator tyvar = type->get_forall().begin(); tyvar != type->get_forall().end(); ++tyvar ) { 154 boundVars.insert( (*tyvar )->get_name() ); 155 155 } // for 156 156 } // if 157 Type *ret = Mutator::mutate( type ); 158 return ret; 157 159 } 158 160 159 161 template< typename TypeClass > 160 void TypeSubstitution::Substituter::handleAggregateType( TypeClass *type ) {161 GuardValue( boundVars );162 Type *TypeSubstitution::handleAggregateType( TypeClass *type ) { 163 ValueGuard<BoundVarsType> oldBoundVars( boundVars ); 162 164 // bind type variables from forall-qualifiers 163 165 if ( freeOnly ) { 164 for ( Type::ForallList::const_iterator tyvar = type-> forall.begin(); tyvar != type->forall.end(); ++tyvar ) {165 boundVars.insert( (*tyvar )->name);166 for ( Type::ForallList::const_iterator tyvar = type->get_forall().begin(); tyvar != type->get_forall().end(); ++tyvar ) { 167 boundVars.insert( (*tyvar )->get_name() ); 166 168 } // for 167 169 // bind type variables from generic type instantiations 168 170 std::list< TypeDecl* > *baseParameters = type->get_baseParameters(); 169 if ( baseParameters && ! type-> parameters.empty() ) {171 if ( baseParameters && ! type->get_parameters().empty() ) { 170 172 for ( std::list< TypeDecl* >::const_iterator tyvar = baseParameters->begin(); tyvar != baseParameters->end(); ++tyvar ) { 171 boundVars.insert( (*tyvar)-> name);173 boundVars.insert( (*tyvar)->get_name() ); 172 174 } // for 173 175 } // if 174 176 } // if 175 } 176 177 void TypeSubstitution::Substituter::premutate( StructInstType * aggregateUseType ) { 178 handleAggregateType( aggregateUseType ); 179 } 180 181 void TypeSubstitution::Substituter::premutate( UnionInstType *aggregateUseType ) { 182 handleAggregateType( aggregateUseType ); 177 Type *ret = Mutator::mutate( type ); 178 return ret; 179 } 180 181 Type * TypeSubstitution::mutate( VoidType *voidType ) { 182 return handleType( voidType ); 183 } 184 185 Type * TypeSubstitution::mutate( BasicType *basicType ) { 186 return handleType( basicType ); 187 } 188 189 Type * TypeSubstitution::mutate( PointerType *pointerType ) { 190 return handleType( pointerType ); 191 } 192 193 Type * TypeSubstitution::mutate( ArrayType *arrayType ) { 194 return handleType( arrayType ); 195 } 196 197 Type * TypeSubstitution::mutate( FunctionType *functionType ) { 198 return handleType( functionType ); 199 } 200 201 Type * TypeSubstitution::mutate( StructInstType *aggregateUseType ) { 202 return handleAggregateType( aggregateUseType ); 203 } 204 205 Type * TypeSubstitution::mutate( UnionInstType *aggregateUseType ) { 206 return handleAggregateType( aggregateUseType ); 207 } 208 209 Type * TypeSubstitution::mutate( EnumInstType *aggregateUseType ) { 210 return handleType( aggregateUseType ); 211 } 212 213 Type * TypeSubstitution::mutate( TraitInstType *aggregateUseType ) { 214 return handleType( aggregateUseType ); 215 } 216 217 Type * TypeSubstitution::mutate( TupleType *tupleType ) { 218 return handleType( tupleType ); 219 } 220 221 Type * TypeSubstitution::mutate( VarArgsType *varArgsType ) { 222 return handleType( varArgsType ); 223 } 224 225 Type * TypeSubstitution::mutate( ZeroType *zeroType ) { 226 return handleType( zeroType ); 227 } 228 229 Type * TypeSubstitution::mutate( OneType *oneType ) { 230 return handleType( oneType ); 183 231 } 184 232 -
src/SynTree/TypeSubstitution.h
r7416d46a rf792cb8 27 27 #include "SynTree/Declaration.h" // for TypeDecl, Declaration (ptr only) 28 28 #include "SynTree/Expression.h" // for Expression (ptr only), NameExpr (p... 29 #include "SynTree/Mutator.h" // for Mutator 29 30 #include "SynTree/Type.h" // for Type, ArrayType (ptr only), BasicT... 30 31 31 class TypeSubstitution { 32 class TypeSubstitution : public Mutator { 33 typedef Mutator Parent; 32 34 public: 33 35 TypeSubstitution(); … … 62 64 TypeSubstitution *clone() const { return new TypeSubstitution( *this ); } 63 65 private: 66 virtual Type* mutate(TypeInstType *aggregateUseType); 67 virtual Expression* mutate(NameExpr *nameExpr); 64 68 65 // Mutator that performs the substitution 66 struct Substituter; 69 /// Records type variable bindings from forall-statements 70 template< typename TypeClass > Type *handleType( TypeClass *type ); 71 /// Records type variable bindings from forall-statements and instantiations of generic types 72 template< typename TypeClass > Type *handleAggregateType( TypeClass *type ); 73 74 virtual Type* mutate(VoidType *basicType); 75 virtual Type* mutate(BasicType *basicType); 76 virtual Type* mutate(PointerType *pointerType); 77 virtual Type* mutate(ArrayType *arrayType); 78 virtual Type* mutate(FunctionType *functionType); 79 virtual Type* mutate(StructInstType *aggregateUseType); 80 virtual Type* mutate(UnionInstType *aggregateUseType); 81 virtual Type* mutate(EnumInstType *aggregateUseType); 82 virtual Type* mutate(TraitInstType *aggregateUseType); 83 virtual Type* mutate(TupleType *tupleType); 84 virtual Type* mutate(VarArgsType *varArgsType); 85 virtual Type* mutate(ZeroType *zeroType); 86 virtual Type* mutate(OneType *oneType); 67 87 68 88 // TODO: worry about traversing into a forall-qualified function type or type decl with assertions … … 77 97 typedef std::map< std::string, Type* > TypeEnvType; 78 98 typedef std::map< std::string, Expression* > VarEnvType; 99 typedef std::set< std::string > BoundVarsType; 79 100 TypeEnvType typeEnv; 80 101 VarEnvType varEnv; 102 BoundVarsType boundVars; 103 int subCount; 104 bool freeOnly; 81 105 }; 82 106 … … 110 134 111 135 template< typename FormalIterator, typename ActualIterator > 112 TypeSubstitution::TypeSubstitution( FormalIterator formalBegin, FormalIterator formalEnd, ActualIterator actualBegin ) { 136 TypeSubstitution::TypeSubstitution( FormalIterator formalBegin, FormalIterator formalEnd, ActualIterator actualBegin ) 137 { 113 138 add( formalBegin, formalEnd, actualBegin ); 114 139 } 115 116 // include needs to happen after TypeSubstitution is defined so that both TypeSubstitution and117 // PassVisitor are defined before PassVisitor implementation accesses TypeSubstitution internals.118 #include "Common/PassVisitor.h"119 120 // definitition must happen after PassVisitor is included so that WithGuards can be used121 struct TypeSubstitution::Substituter : public WithGuards {122 Substituter( TypeSubstitution & sub, bool freeOnly ) : sub( sub ), freeOnly( freeOnly ) {}123 124 Type * postmutate( TypeInstType * aggregateUseType );125 Expression * postmutate( NameExpr * nameExpr );126 127 /// Records type variable bindings from forall-statements128 void premutate( Type * type );129 /// Records type variable bindings from forall-statements and instantiations of generic types130 template< typename TypeClass > void handleAggregateType( TypeClass * type );131 132 void premutate( StructInstType * aggregateUseType );133 void premutate( UnionInstType * aggregateUseType );134 135 TypeSubstitution & sub;136 int subCount = 0;137 bool freeOnly;138 typedef std::set< std::string > BoundVarsType;139 BoundVarsType boundVars;140 };141 140 142 141 template< typename SynTreeClass > 143 142 int TypeSubstitution::apply( SynTreeClass *&input ) { 144 143 assert( input ); 145 PassVisitor<Substituter> sub( *this, false ); 146 input = dynamic_cast< SynTreeClass * >( input->acceptMutator( sub ) ); 144 subCount = 0; 145 freeOnly = false; 146 input = dynamic_cast< SynTreeClass *>( input->acceptMutator( *this ) ); 147 147 assert( input ); 148 /// std::c err<< "substitution result is: ";149 /// newType->print( std::c err);150 /// std::c err<< std::endl;151 return sub .pass.subCount;148 /// std::cout << "substitution result is: "; 149 /// newType->print( std::cout ); 150 /// std::cout << std::endl; 151 return subCount; 152 152 } 153 153 … … 155 155 int TypeSubstitution::applyFree( SynTreeClass *&input ) { 156 156 assert( input ); 157 PassVisitor<Substituter> sub( *this, true ); 158 input = dynamic_cast< SynTreeClass * >( input->acceptMutator( sub ) ); 157 subCount = 0; 158 freeOnly = true; 159 input = dynamic_cast< SynTreeClass *>( input->acceptMutator( *this ) ); 159 160 assert( input ); 160 /// std::c err<< "substitution result is: ";161 /// newType->print( std::c err);162 /// std::c err<< std::endl;163 return sub .pass.subCount;161 /// std::cout << "substitution result is: "; 162 /// newType->print( std::cout ); 163 /// std::cout << std::endl; 164 return subCount; 164 165 } 165 166 -
src/SynTree/VarExprReplacer.cc
r7416d46a rf792cb8 16 16 #include <iostream> // for operator<<, basic_ostream, ostream, basic_o... 17 17 18 #include "Common/PassVisitor.h"19 18 #include "Declaration.h" // for operator<<, DeclarationWithType 20 19 #include "Expression.h" // for VariableExpr 21 20 #include "VarExprReplacer.h" 22 21 23 namespace VarExprReplacer { 24 namespace { 25 /// Visitor that replaces the declarations that VariableExprs refer to, according to the supplied mapping 26 struct VarExprReplacer { 27 private: 28 const DeclMap & declMap; 29 bool debug; 30 public: 31 VarExprReplacer( const DeclMap & declMap, bool debug = false ); 22 VarExprReplacer::VarExprReplacer( const DeclMap & declMap, bool debug ) : declMap( declMap ), debug( debug ) {} 32 23 33 // replace variable with new node from decl map 34 void previsit( VariableExpr * varExpr ); 35 }; 24 // replace variable with new node from decl map 25 void VarExprReplacer::visit( VariableExpr * varExpr ) { 26 // xxx - assertions and parameters aren't accounted for in this... (i.e. they aren't inserted into the map when it's made, only DeclStmts are) 27 if ( declMap.count( varExpr->get_var() ) ) { 28 if ( debug ) { 29 std::cerr << "replacing variable reference: " << (void*)varExpr->get_var() << " " << varExpr->get_var() << " with " << (void*)declMap.at( varExpr->get_var() ) << " " << declMap.at( varExpr->get_var() ) << std::endl; 30 } 31 varExpr->set_var( declMap.at( varExpr->get_var() ) ); 36 32 } 37 38 void replace( BaseSyntaxNode * node, const DeclMap & declMap, bool debug ) { 39 PassVisitor<VarExprReplacer> replacer( declMap, debug ); 40 maybeAccept( node, replacer ); 41 } 42 43 namespace { 44 VarExprReplacer::VarExprReplacer( const DeclMap & declMap, bool debug ) : declMap( declMap ), debug( debug ) {} 45 46 // replace variable with new node from decl map 47 void VarExprReplacer::previsit( VariableExpr * varExpr ) { 48 // xxx - assertions and parameters aren't accounted for in this... (i.e. they aren't inserted into the map when it's made, only DeclStmts are) 49 if ( declMap.count( varExpr->var ) ) { 50 if ( debug ) { 51 std::cerr << "replacing variable reference: " << (void*)varExpr->var << " " << varExpr->var << " with " << (void*)declMap.at( varExpr->var ) << " " << declMap.at( varExpr->var ) << std::endl; 52 } 53 varExpr->var = declMap.at( varExpr->var ); 54 } 55 } 56 } 57 } // namespace VarExprReplacer 58 59 60 61 62 63 64 33 } -
src/SynTree/VarExprReplacer.h
r7416d46a rf792cb8 23 23 class VariableExpr; 24 24 25 namespace VarExprReplacer { 25 /// Visitor that replaces the declarations that VariableExprs refer to, according to the supplied mapping 26 class VarExprReplacer : public Visitor { 27 public: 26 28 typedef std::map< DeclarationWithType *, DeclarationWithType * > DeclMap; 29 private: 30 const DeclMap & declMap; 31 bool debug; 32 public: 33 VarExprReplacer( const DeclMap & declMap, bool debug = false ); 27 34 28 void replace( BaseSyntaxNode * node, const DeclMap & declMap, bool debug = false ); 29 } 35 // replace variable with new node from decl map 36 virtual void visit( VariableExpr * varExpr ); 37 38 static void replace( BaseSyntaxNode * node, const DeclMap & declMap, bool debug = false ) { 39 VarExprReplacer replacer( declMap, debug ); 40 maybeAccept( node, replacer ); 41 } 42 }; 30 43 31 44 // Local Variables: // -
src/Tuples/TupleExpansion.cc
r7416d46a rf792cb8 36 36 namespace Tuples { 37 37 namespace { 38 struct MemberTupleExpander final : public WithShortCircuiting, public WithVisitorRef<MemberTupleExpander> { 39 void premutate( UntypedMemberExpr * ) { visit_children = false; } 40 Expression * postmutate( UntypedMemberExpr * memberExpr ); 38 struct MemberTupleExpander final : public Mutator { 39 typedef Mutator Parent; 40 using Parent::mutate; 41 42 virtual Expression * mutate( UntypedMemberExpr * memberExpr ) override; 41 43 }; 42 44 … … 77 79 78 80 void expandMemberTuples( std::list< Declaration * > & translationUnit ) { 79 PassVisitor<MemberTupleExpander>expander;81 MemberTupleExpander expander; 80 82 mutateAll( translationUnit, expander ); 81 83 } … … 107 109 // construct a new UntypedMemberExpr with the correct structure , and recursively 108 110 // expand that member expression. 109 PassVisitor<MemberTupleExpander>expander;110 UntypedMemberExpr * inner = new UntypedMemberExpr( memberExpr-> aggregate, aggr->clone() );111 UntypedMemberExpr * newMemberExpr = new UntypedMemberExpr( memberExpr-> member, inner );111 MemberTupleExpander expander; 112 UntypedMemberExpr * inner = new UntypedMemberExpr( memberExpr->get_aggregate(), aggr->clone() ); 113 UntypedMemberExpr * newMemberExpr = new UntypedMemberExpr( memberExpr->get_member(), inner ); 112 114 inner->location = newMemberExpr->location = loc; 113 memberExpr-> member = nullptr;114 memberExpr-> aggregate = nullptr;115 memberExpr->set_member(nullptr); 116 memberExpr->set_aggregate(nullptr); 115 117 delete memberExpr; 116 118 return newMemberExpr->acceptMutator( expander ); … … 124 126 } 125 127 126 Expression * MemberTupleExpander:: postmutate( UntypedMemberExpr * memberExpr ) {127 if ( UntypedTupleExpr * tupleExpr = dynamic_cast< UntypedTupleExpr * > ( memberExpr-> member) ) {128 Expression * aggr = memberExpr-> aggregate->clone()->acceptMutator( *visitor);128 Expression * MemberTupleExpander::mutate( UntypedMemberExpr * memberExpr ) { 129 if ( UntypedTupleExpr * tupleExpr = dynamic_cast< UntypedTupleExpr * > ( memberExpr->get_member() ) ) { 130 Expression * aggr = memberExpr->get_aggregate()->clone()->acceptMutator( *this ); 129 131 // aggregate expressions which might be impure must be wrapped in unique expressions 130 132 // xxx - if there's a member-tuple expression nested in the aggregate, this currently generates the wrong code if a UniqueExpr is not used, and it's purely an optimization to remove the UniqueExpr 131 133 // if ( Tuples::maybeImpureIgnoreUnique( memberExpr->get_aggregate() ) ) aggr = new UniqueExpr( aggr ); 132 134 aggr = new UniqueExpr( aggr ); 133 for ( Expression *& expr : tupleExpr-> exprs) {135 for ( Expression *& expr : tupleExpr->get_exprs() ) { 134 136 expr = reconstructMemberExpr( expr, aggr, memberExpr->location ); 135 137 expr->location = memberExpr->location; … … 141 143 // there may be a tuple expr buried in the aggregate 142 144 // xxx - this is a memory leak 143 UntypedMemberExpr * newMemberExpr = new UntypedMemberExpr( memberExpr-> member->clone(), memberExpr->aggregate->acceptMutator( *visitor) );145 UntypedMemberExpr * newMemberExpr = new UntypedMemberExpr( memberExpr->get_member()->clone(), memberExpr->get_aggregate()->acceptMutator( *this ) ); 144 146 newMemberExpr->location = memberExpr->location; 145 147 return newMemberExpr; -
src/benchmark/Makefile.am
r7416d46a rf792cb8 59 59 @echo -e '\t"githash": "'${githash}'",' 60 60 @echo -e '\t"arch": "' ${arch} '",' 61 @echo -e '\t"compile": {'62 @+make compile TIME_FORMAT='%e,' PRINT_FORMAT='\t\t\"%s\" :'63 @echo -e '\t\t"dummy" : {}'64 @echo -e '\t},'65 61 @echo -e '\t"ctxswitch": {' 66 62 @echo -en '\t\t"coroutine":' … … 202 198 203 199 waitfor-cfa1$(EXEEXT): 204 @${CC} schedext/cfa1.c -DBENCH_N=500000 -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}200 ${CC} schedext/cfa1.c -DBENCH_N=500000 -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags} 205 201 206 202 waitfor-cfa2$(EXEEXT): -
src/benchmark/Makefile.in
r7416d46a rf792cb8 473 473 @echo -e '\t"githash": "'${githash}'",' 474 474 @echo -e '\t"arch": "' ${arch} '",' 475 @echo -e '\t"compile": {'476 @+make compile TIME_FORMAT='%e,' PRINT_FORMAT='\t\t\"%s\" :'477 @echo -e '\t\t"dummy" : {}'478 @echo -e '\t},'479 475 @echo -e '\t"ctxswitch": {' 480 476 @echo -en '\t\t"coroutine":' … … 611 607 612 608 waitfor-cfa1$(EXEEXT): 613 @${CC} schedext/cfa1.c -DBENCH_N=500000 -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}609 ${CC} schedext/cfa1.c -DBENCH_N=500000 -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags} 614 610 615 611 waitfor-cfa2$(EXEEXT): -
src/driver/cfa.cc
r7416d46a rf792cb8 277 277 args[nargs] = "--undefined=__cfaabi_dbg_bits_write"; 278 278 nargs += 1; 279 args[nargs] = "-Xlinker";280 nargs += 1;281 args[nargs] = "--undefined=__cfaabi_interpose_startup";282 nargs += 1;283 279 284 280 } // if -
src/libcfa/bits/locks.h
r7416d46a rf792cb8 9 9 // Author : Thierry Delisle 10 10 // Created On : Tue Oct 31 15:14:38 2017 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Fri Dec 8 16:02:22 201713 // Update Count : 111 // Last Modified By : -- 12 // Last Modified On : -- 13 // Update Count : 0 14 14 // 15 15 … … 24 24 #elif defined( __i386 ) || defined( __x86_64 ) 25 25 #define Pause() __asm__ __volatile__ ( "pause" : : : ) 26 #elif defined( __ARM_ARCH )27 #define Pause() __asm__ __volatile__ ( "nop" : : : )28 26 #else 29 27 #error unsupported architecture 30 28 #endif 31 29 32 #if defined( __i386 ) || defined( __x86_64 ) || defined( __ARM_ARCH )30 #if defined( __i386 ) || defined( __x86_64 ) 33 31 // Intel recommendation 34 32 #define __ALIGN__ __attribute__(( aligned (128) )) … … 39 37 #endif 40 38 41 #if __SIZEOF_SIZE_T__ == 839 #if defined( __x86_64 ) 42 40 #define __lock_test_and_test_and_set( lock ) (lock) == 0 && __sync_lock_test_and_set_8( &(lock), 1 ) == 0 43 41 #define __lock_release( lock ) __sync_lock_release_8( &(lock) ); 44 #elif __SIZEOF_SIZE_T__ == 442 #elif defined( __i386 ) 45 43 #define __lock_test_and_test_and_set( lock ) (lock) == 0 && __sync_lock_test_and_set_4( &(lock), 1 ) == 0 46 44 #define __lock_release( lock ) __sync_lock_release_4( &(lock) ); … … 50 48 51 49 struct __spinlock_t { 52 __ALIGN__ volatile size_t lock;50 __ALIGN__ volatile uintptr_t lock; 53 51 #ifdef __CFA_DEBUG__ 54 52 const char * prev_name; … … 58 56 59 57 #ifdef __cforall 60 extern "C" {61 extern void disable_interrupts();62 extern void enable_interrupts_noPoll();63 }64 65 58 extern void yield( unsigned int ); 66 59 extern thread_local struct thread_desc * volatile this_thread; 67 extern thread_local struct processor * volatile this_processor;68 60 69 61 static inline void ?{}( __spinlock_t & this ) { … … 74 66 static inline _Bool try_lock ( __spinlock_t & this __cfaabi_dbg_ctx_param2 ) { 75 67 _Bool result = __lock_test_and_test_and_set( this.lock ); 76 if( result ) { 77 disable_interrupts(); 78 __cfaabi_dbg_debug_do( 68 __cfaabi_dbg_debug_do( 69 if( result ) { 79 70 this.prev_name = caller; 80 71 this.prev_thrd = this_thread; 81 )82 }72 } 73 ) 83 74 return result; 84 75 } … … 106 97 #endif 107 98 } 108 disable_interrupts();109 99 __cfaabi_dbg_debug_do( 110 100 this.prev_name = caller; … … 113 103 } 114 104 115 // // Lock the spinlock, yield if already acquired 116 // static inline void lock_yield( __spinlock_t & this __cfaabi_dbg_ctx_param2 ) { 117 // for ( unsigned int i = 1;; i += 1 ) { 118 // if ( __lock_test_and_test_and_set( this.lock ) ) break; 119 // yield( i ); 120 // } 121 // disable_interrupts(); 122 // __cfaabi_dbg_debug_do( 123 // this.prev_name = caller; 124 // this.prev_thrd = this_thread; 125 // ) 126 // } 105 // Lock the spinlock, spin if already acquired 106 static inline void lock_yield( __spinlock_t & this __cfaabi_dbg_ctx_param2 ) { 107 for ( unsigned int i = 1;; i += 1 ) { 108 if ( __lock_test_and_test_and_set( this.lock ) ) break; 109 yield( i ); 110 } 111 __cfaabi_dbg_debug_do( 112 this.prev_name = caller; 113 this.prev_thrd = this_thread; 114 ) 115 } 127 116 128 117 static inline void unlock( __spinlock_t & this ) { 129 enable_interrupts_noPoll();130 118 __lock_release( this.lock ); 131 119 } -
src/libcfa/concurrency/invoke.c
r7416d46a rf792cb8 10 10 // Created On : Tue Jan 17 12:27:26 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jan 23 14:04:56 201813 // Update Count : 212 // Last Modified On : Fri Jul 21 22:28:33 2017 13 // Update Count : 1 14 14 // 15 15 … … 133 133 ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->mxcr = 0x1F80; //Vol. 2A 3-520 134 134 ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->fcw = 0x037F; //Vol. 1 8-7 135 136 #elif defined( __ARM_ARCH )137 138 struct FakeStack {139 float fpRegs[16]; // floating point registers140 void *intRegs[9]; // integer/pointer registers141 void *arg[2]; // placeholder for this pointer142 };143 144 ((struct machine_context_t *)stack->context)->SP = (char *)stack->base - sizeof( struct FakeStack );145 ((struct machine_context_t *)stack->context)->FP = NULL;146 147 struct FakeStack *fs = (struct FakeStack *)((struct machine_context_t *)stack->context)->SP;148 149 fs->intRegs[8] = CtxInvokeStub;150 fs->arg[0] = this;151 fs->arg[1] = invoke;152 135 #else 153 136 #error Only __i386__ and __x86_64__ is supported for threads in cfa -
src/libcfa/concurrency/invoke.h
r7416d46a rf792cb8 10 10 // Created On : Tue Jan 17 12:27:26 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jan 23 14:55:46 201813 // Update Count : 312 // Last Modified On : Fri Jul 21 22:28:56 2017 13 // Update Count : 1 14 14 // 15 15 … … 134 134 // instrusive link field for threads 135 135 struct thread_desc * next; 136 137 __cfaabi_dbg_debug_do(138 // instrusive link field for debugging139 struct thread_desc * dbg_next;140 struct thread_desc * dbg_prev;141 )142 136 }; 143 137 … … 209 203 "movl %%ebp,%1\n" \ 210 204 : "=rm" (ctx.SP), "=rm" (ctx.FP) ) 211 #elif defined( __ARM_ARCH )212 #define CtxGet( ctx ) __asm__ ( \213 "mov %0,%%sp\n" \214 "mov %1,%%r11\n" \215 : "=rm" (ctx.SP), "=rm" (ctx.FP) )216 205 #endif 217 206 -
src/libcfa/concurrency/kernel.c
r7416d46a rf792cb8 10 10 // Created On : Tue Jan 17 12:27:26 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Dec 8 16:23:33201713 // Update Count : 312 // Last Modified On : Fri Jul 21 22:33:18 2017 13 // Update Count : 2 14 14 // 15 15 16 16 //C Includes 17 17 #include <stddef.h> 18 #define ftype `ftype`19 18 extern "C" { 20 19 #include <stdio.h> … … 24 23 #include <unistd.h> 25 24 } 26 #undef ftype27 25 28 26 //CFA Includes … … 242 240 void finishRunning(processor * this) with( this->finish ) { 243 241 if( action_code == Release ) { 244 verify( disable_preempt_count > 1 );245 242 unlock( *lock ); 246 243 } … … 249 246 } 250 247 else if( action_code == Release_Schedule ) { 251 verify( disable_preempt_count > 1 );252 248 unlock( *lock ); 253 249 ScheduleThread( thrd ); 254 250 } 255 251 else if( action_code == Release_Multi ) { 256 verify( disable_preempt_count > lock_count );257 252 for(int i = 0; i < lock_count; i++) { 258 253 unlock( *locks[i] ); … … 368 363 this_processor->finish.lock = lock; 369 364 370 verify( disable_preempt_count > 1);365 verify( disable_preempt_count > 0 ); 371 366 suspend(); 372 367 verify( disable_preempt_count > 0 ); … … 394 389 this_processor->finish.thrd = thrd; 395 390 396 verify( disable_preempt_count > 1);391 verify( disable_preempt_count > 0 ); 397 392 suspend(); 398 393 verify( disable_preempt_count > 0 ); … … 518 513 __cfaabi_dbg_print_safe("Kernel : Shutdown complete\n"); 519 514 } 520 521 //=============================================================================================522 // Unexpected Terminating logic523 //=============================================================================================524 525 515 526 516 static __spinlock_t kernel_abort_lock; … … 619 609 } 620 610 621 //-----------------------------------------------------------------------------622 // Debug623 __cfaabi_dbg_debug_do(624 struct {625 thread_desc * tail;626 } __cfaabi_dbg_thread_list = { NULL };627 628 void __cfaabi_dbg_thread_register( thread_desc * thrd ) {629 if( !__cfaabi_dbg_thread_list.tail ) {630 __cfaabi_dbg_thread_list.tail = thrd;631 return;632 }633 __cfaabi_dbg_thread_list.tail->dbg_next = thrd;634 thrd->dbg_prev = __cfaabi_dbg_thread_list.tail;635 __cfaabi_dbg_thread_list.tail = thrd;636 }637 638 void __cfaabi_dbg_thread_unregister( thread_desc * thrd ) {639 thread_desc * prev = thrd->dbg_prev;640 thread_desc * next = thrd->dbg_next;641 642 if( next ) { next->dbg_prev = prev; }643 else {644 assert( __cfaabi_dbg_thread_list.tail == thrd );645 __cfaabi_dbg_thread_list.tail = prev;646 }647 648 if( prev ) { prev->dbg_next = next; }649 650 thrd->dbg_prev = NULL;651 thrd->dbg_next = NULL;652 }653 )654 611 // Local Variables: // 655 612 // mode: c // -
src/libcfa/concurrency/kernel_private.h
r7416d46a rf792cb8 85 85 extern void ThreadCtxSwitch(coroutine_desc * src, coroutine_desc * dst); 86 86 87 __cfaabi_dbg_debug_do(88 extern void __cfaabi_dbg_thread_register ( thread_desc * thrd );89 extern void __cfaabi_dbg_thread_unregister( thread_desc * thrd );90 )91 92 87 //----------------------------------------------------------------------------- 93 88 // Utils -
src/libcfa/concurrency/monitor.c
r7416d46a rf792cb8 53 53 static inline __lock_size_t aggregate ( monitor_desc * storage [], const __waitfor_mask_t & mask ); 54 54 55 #ifndef __CFA_LOCK_NO_YIELD 56 #define DO_LOCK lock_yield 57 #else 58 #define DO_LOCK lock 59 #endif 60 55 61 //----------------------------------------------------------------------------- 56 62 // Useful defines … … 84 90 static void __enter_monitor_desc( monitor_desc * this, const __monitor_group_t & group ) { 85 91 // Lock the monitor spinlock 86 lock( this->lock __cfaabi_dbg_ctx2 );92 DO_LOCK( this->lock __cfaabi_dbg_ctx2 ); 87 93 thread_desc * thrd = this_thread; 88 89 verify( disable_preempt_count > 0 );90 94 91 95 __cfaabi_dbg_print_safe("Kernel : %10p Entering mon %p (%p)\n", thrd, this, this->owner); … … 117 121 // Some one else has the monitor, wait in line for it 118 122 append( this->entry_queue, thrd ); 119 120 verify( disable_preempt_count > 0 );121 122 123 BlockInternal( &this->lock ); 123 124 … … 137 138 static void __enter_monitor_dtor( monitor_desc * this, fptr_t func ) { 138 139 // Lock the monitor spinlock 139 lock( this->lock __cfaabi_dbg_ctx2 );140 DO_LOCK( this->lock __cfaabi_dbg_ctx2 ); 140 141 thread_desc * thrd = this_thread; 141 142 … … 200 201 // Leave single monitor 201 202 void __leave_monitor_desc( monitor_desc * this ) { 202 // Lock the monitor spinlock 203 lock( this->lock __cfaabi_dbg_ctx2 );203 // Lock the monitor spinlock, DO_LOCK to reduce contention 204 DO_LOCK( this->lock __cfaabi_dbg_ctx2 ); 204 205 205 206 __cfaabi_dbg_print_safe("Kernel : %10p Leaving mon %p (%p)\n", this_thread, this, this->owner); … … 247 248 248 249 // Lock the monitor now 249 lock( this->lock __cfaabi_dbg_ctx2 );250 DO_LOCK( this->lock __cfaabi_dbg_ctx2 ); 250 251 251 252 disable_interrupts(); … … 396 397 append( this.blocked, &waiter ); 397 398 398 verify( disable_preempt_count == 0 );399 400 399 // Lock all monitors (aggregates the locks as well) 401 400 lock_all( monitors, locks, count ); 402 403 // verifyf( disable_preempt_count == count, "Got %d, expected %d\n", disable_preempt_count, count );404 if(disable_preempt_count != count) { __cfaabi_dbg_print_buffer_decl("----------Gonna crash\n"); }405 401 406 402 // Find the next thread(s) to run … … 477 473 monitor_ctx( this.monitors, this.monitor_count ); 478 474 479 verify( disable_preempt_count == 0 );480 481 475 // Lock all monitors (aggregates the locks them as well) 482 476 lock_all( monitors, locks, count ); 483 484 // verify( disable_preempt_count == count );485 if(disable_preempt_count != count) { __cfaabi_dbg_print_buffer_decl("----------Gonna crash\n"); }486 487 477 488 478 // Create the node specific to this wait operation … … 747 737 static inline void lock_all( __spinlock_t * locks [], __lock_size_t count ) { 748 738 for( __lock_size_t i = 0; i < count; i++ ) { 749 lock( *locks[i] __cfaabi_dbg_ctx2 );739 DO_LOCK( *locks[i] __cfaabi_dbg_ctx2 ); 750 740 } 751 741 } … … 754 744 for( __lock_size_t i = 0; i < count; i++ ) { 755 745 __spinlock_t * l = &source[i]->lock; 756 lock( *l __cfaabi_dbg_ctx2 );746 DO_LOCK( *l __cfaabi_dbg_ctx2 ); 757 747 if(locks) locks[i] = l; 758 748 } -
src/libcfa/concurrency/preemption.c
r7416d46a rf792cb8 10 10 // Created On : Mon Jun 5 14:20:42 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jan 23 17:59:30 201813 // Update Count : 712 // Last Modified On : Fri Jul 21 22:36:05 2017 13 // Update Count : 2 14 14 // 15 15 16 16 #include "preemption.h" 17 17 18 #define ftype `ftype`19 18 extern "C" { 20 19 #include <errno.h> 20 #include <execinfo.h> 21 #define __USE_GNU 22 #include <signal.h> 23 #undef __USE_GNU 21 24 #include <stdio.h> 22 25 #include <string.h> 23 26 #include <unistd.h> 24 27 } 25 #undef ftype 26 27 #include "bits/signal.h" 28 29 30 #ifdef __USE_STREAM__ 31 #include "fstream" 32 #endif 28 33 29 34 //TODO move to defaults … … 34 39 return __CFA_DEFAULT_PREEMPTION__; 35 40 } 41 42 // Short hands for signal context information 43 #define __CFA_SIGCXT__ ucontext_t * 44 #define __CFA_SIGPARMS__ __attribute__((unused)) int sig, __attribute__((unused)) siginfo_t *sfp, __attribute__((unused)) __CFA_SIGCXT__ cxt 36 45 37 46 // FwdDeclarations : timeout handlers … … 44 53 void sigHandler_abort ( __CFA_SIGPARMS__ ); 45 54 55 // FwdDeclarations : sigaction wrapper 56 static void __kernel_sigaction( int sig, void (*handler)(__CFA_SIGPARMS__), int flags ); 57 46 58 // FwdDeclarations : alarm thread main 47 59 void * alarm_loop( __attribute__((unused)) void * args ); 48 60 49 61 // Machine specific register name 50 #if defined(__x86_64__)62 #ifdef __x86_64__ 51 63 #define CFA_REG_IP REG_RIP 52 #el if defined(__i386__)64 #else 53 65 #define CFA_REG_IP REG_EIP 54 #elif defined(__ARM_ARCH__)55 #define CFA_REG_IP REG_R1556 66 #endif 57 67 … … 169 179 void enable_interrupts_noPoll() { 170 180 __attribute__((unused)) unsigned short prev = __atomic_fetch_add_2( &disable_preempt_count, -1, __ATOMIC_SEQ_CST ); 171 verify f( prev != 0u, "Incremented from %u\n", prev); // If this triggers someone is enabled already enabled interrupts181 verify( prev != 0u ); // If this triggers someone is enabled already enabled interrupts 172 182 } 173 183 } … … 233 243 // Setup proper signal handlers 234 244 __kernel_sigaction( SIGUSR1, sigHandler_ctxSwitch, SA_SIGINFO | SA_RESTART ); // CtxSwitch handler 245 // __kernel_sigaction( SIGSEGV, sigHandler_segv , SA_SIGINFO ); // Failure handler 246 // __kernel_sigaction( SIGBUS , sigHandler_segv , SA_SIGINFO ); // Failure handler 235 247 236 248 signal_block( SIGALRM ); … … 284 296 // Receives SIGUSR1 signal and causes the current thread to yield 285 297 void sigHandler_ctxSwitch( __CFA_SIGPARMS__ ) { 286 #if defined( __ARM_ARCH )287 __cfaabi_dbg_debug_do( last_interrupt = (void *)(cxt->uc_mcontext.arm_pc); )288 #else289 298 __cfaabi_dbg_debug_do( last_interrupt = (void *)(cxt->uc_mcontext.gregs[CFA_REG_IP]); ) 290 #endif 291 292 // Check if it is safe to preempt here 299 300 // Check if it is safe to preempt here 293 301 if( !preemption_ready() ) { return; } 294 295 __cfaabi_dbg_print_buffer_decl(" KERNEL: preempting core %p (%p).\n", this_processor, this_thread);296 302 297 303 preemption_in_progress = true; // Sync flag : prevent recursive calls to the signal handler … … 365 371 } 366 372 373 // Sigaction wrapper : register an signal handler 374 static void __kernel_sigaction( int sig, void (*handler)(__CFA_SIGPARMS__), int flags ) { 375 struct sigaction act; 376 377 act.sa_sigaction = (void (*)(int, siginfo_t *, void *))handler; 378 act.sa_flags = flags; 379 380 if ( sigaction( sig, &act, NULL ) == -1 ) { 381 __cfaabi_dbg_print_buffer_decl( 382 " __kernel_sigaction( sig:%d, handler:%p, flags:%d ), problem installing signal handler, error(%d) %s.\n", 383 sig, handler, flags, errno, strerror( errno ) 384 ); 385 _exit( EXIT_FAILURE ); 386 } 387 } 388 389 // Sigaction wrapper : restore default handler 390 static void __kernel_sigdefault( int sig ) { 391 struct sigaction act; 392 393 act.sa_handler = SIG_DFL; 394 act.sa_flags = 0; 395 sigemptyset( &act.sa_mask ); 396 397 if ( sigaction( sig, &act, NULL ) == -1 ) { 398 __cfaabi_dbg_print_buffer_decl( 399 " __kernel_sigdefault( sig:%d ), problem reseting signal handler, error(%d) %s.\n", 400 sig, errno, strerror( errno ) 401 ); 402 _exit( EXIT_FAILURE ); 403 } 404 } 405 406 //============================================================================================= 407 // Terminating Signals logic 408 //============================================================================================= 409 410 __cfaabi_dbg_debug_do( 411 static void __kernel_backtrace( int start ) { 412 // skip first N stack frames 413 414 enum { Frames = 50 }; 415 void * array[Frames]; 416 int size = backtrace( array, Frames ); 417 char ** messages = backtrace_symbols( array, size ); 418 419 // find executable name 420 *index( messages[0], '(' ) = '\0'; 421 #ifdef __USE_STREAM__ 422 serr | "Stack back trace for:" | messages[0] | endl; 423 #else 424 fprintf( stderr, "Stack back trace for: %s\n", messages[0]); 425 #endif 426 427 // skip last 2 stack frames after main 428 for ( int i = start; i < size && messages != NULL; i += 1 ) { 429 char * name = NULL; 430 char * offset_begin = NULL; 431 char * offset_end = NULL; 432 433 for ( char *p = messages[i]; *p; ++p ) { 434 // find parantheses and +offset 435 if ( *p == '(' ) { 436 name = p; 437 } 438 else if ( *p == '+' ) { 439 offset_begin = p; 440 } 441 else if ( *p == ')' ) { 442 offset_end = p; 443 break; 444 } 445 } 446 447 // if line contains symbol print it 448 int frameNo = i - start; 449 if ( name && offset_begin && offset_end && name < offset_begin ) { 450 // delimit strings 451 *name++ = '\0'; 452 *offset_begin++ = '\0'; 453 *offset_end++ = '\0'; 454 455 #ifdef __USE_STREAM__ 456 serr | "(" | frameNo | ")" | messages[i] | ":" 457 | name | "+" | offset_begin | offset_end | endl; 458 #else 459 fprintf( stderr, "(%i) %s : %s + %s %s\n", frameNo, messages[i], name, offset_begin, offset_end); 460 #endif 461 } 462 // otherwise, print the whole line 463 else { 464 #ifdef __USE_STREAM__ 465 serr | "(" | frameNo | ")" | messages[i] | endl; 466 #else 467 fprintf( stderr, "(%i) %s\n", frameNo, messages[i] ); 468 #endif 469 } 470 } 471 472 free( messages ); 473 } 474 ) 475 476 // void sigHandler_segv( __CFA_SIGPARMS__ ) { 477 // __cfaabi_dbg_debug_do( 478 // #ifdef __USE_STREAM__ 479 // serr | "*CFA runtime error* program cfa-cpp terminated with" 480 // | (sig == SIGSEGV ? "segment fault." : "bus error.") 481 // | endl; 482 // #else 483 // fprintf( stderr, "*CFA runtime error* program cfa-cpp terminated with %s\n", sig == SIGSEGV ? "segment fault." : "bus error." ); 484 // #endif 485 486 // // skip first 2 stack frames 487 // __kernel_backtrace( 1 ); 488 // ) 489 // exit( EXIT_FAILURE ); 490 // } 491 492 // void sigHandler_abort( __CFA_SIGPARMS__ ) { 493 // // skip first 6 stack frames 494 // __cfaabi_dbg_debug_do( __kernel_backtrace( 6 ); ) 495 496 // // reset default signal handler 497 // __kernel_sigdefault( SIGABRT ); 498 499 // raise( SIGABRT ); 500 // } 501 367 502 // Local Variables: // 368 503 // mode: c // -
src/libcfa/concurrency/thread.c
r7416d46a rf792cb8 38 38 self_mon_p = &self_mon; 39 39 next = NULL; 40 __cfaabi_dbg_debug_do(41 dbg_next = NULL;42 dbg_prev = NULL;43 __cfaabi_dbg_thread_register(&this);44 )45 40 46 41 monitors{ &self_mon_p, 1, (fptr_t)0 }; -
src/libcfa/interpose.c
r7416d46a rf792cb8 22 22 #include <dlfcn.h> 23 23 #include <unistd.h> 24 #define __USE_GNU25 #include <signal.h>26 #undef __USE_GNU27 #include <execinfo.h>28 24 } 29 25 30 26 #include "bits/debug.h" 31 27 #include "bits/defs.h" 32 #include "bits/signal.h"33 28 #include "startup.h" 34 29 35 void __cfaabi_interpose_startup(void) __attribute__(( constructor( STARTUP_PRIORITY_CORE ) ));30 void interpose_startup(void) __attribute__(( constructor( STARTUP_PRIORITY_CORE ) )); 36 31 37 32 typedef void (*generic_fptr_t)(void); … … 89 84 #define INIT_REALRTN( x, ver ) assign_ptr( (void**)&libc_##x, #x, ver) 90 85 91 void sigHandler_segv ( __CFA_SIGPARMS__ ); 92 void sigHandler_abort( __CFA_SIGPARMS__ ); 93 94 void __cfaabi_interpose_startup() { 86 void interpose_startup() { 95 87 const char *version = NULL; 96 88 97 89 INIT_REALRTN( abort, version ); 98 90 INIT_REALRTN( exit, version ); 99 100 __kernel_sigaction( SIGSEGV, sigHandler_segv , SA_SIGINFO ); // Failure handler101 __kernel_sigaction( SIGBUS , sigHandler_segv , SA_SIGINFO ); // Failure handler102 __kernel_sigaction( SIGABRT, sigHandler_abort, SA_SIGINFO ); // Failure handler103 91 } 104 105 //=============================================================================================106 // Terminating Signals logic107 //=============================================================================================108 92 109 93 extern "C" { … … 155 139 } 156 140 157 // skip first 6 stack frames by default158 static void __kernel_backtrace() {159 // skip first N stack frames160 int start = 6;161 162 enum { Frames = 50 };163 void * array[Frames];164 int size = backtrace( array, Frames );165 char ** messages = backtrace_symbols( array, size );166 167 // find executable name168 *index( messages[0], '(' ) = '\0';169 __cfaabi_dbg_bits_print_nolock( "Stack back trace for: %s\n", messages[0]);170 171 // skip last 2 stack frames after main172 for ( int i = start; i < size && messages != NULL; i += 1 ) {173 char * name = NULL;174 char * offset_begin = NULL;175 char * offset_end = NULL;176 177 for ( char *p = messages[i]; *p; ++p ) {178 // find parantheses and +offset179 if ( *p == '(' ) {180 name = p;181 }182 else if ( *p == '+' ) {183 offset_begin = p;184 }185 else if ( *p == ')' ) {186 offset_end = p;187 break;188 }189 }190 191 // if line contains symbol print it192 int frameNo = i - start;193 if ( name && offset_begin && offset_end && name < offset_begin ) {194 // delimit strings195 *name++ = '\0';196 *offset_begin++ = '\0';197 *offset_end++ = '\0';198 199 __cfaabi_dbg_bits_print_nolock( "(%i) %s : %s + %s %s\n", frameNo, messages[i], name, offset_begin, offset_end);200 }201 // otherwise, print the whole line202 else {203 __cfaabi_dbg_bits_print_nolock( "(%i) %s\n", frameNo, messages[i] );204 }205 }206 207 free( messages );208 }209 210 void sigHandler_segv( __CFA_SIGPARMS__ ) {211 // skip first only 1 stack frames in case of segfault.212 abortf( "*CFA runtime error* program cfa-cpp terminated with %s\n", sig == SIGSEGV ? "segment fault." : "bus error." );213 }214 215 void sigHandler_abort( __CFA_SIGPARMS__ ) {216 __kernel_backtrace();217 218 // reset default signal handler219 __kernel_sigdefault( SIGABRT );220 221 raise( SIGABRT );222 }223 224 141 // Local Variables: // 225 142 // mode: c // -
src/libcfa/iostream
r7416d46a rf792cb8 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jan 25 13:08:39 201813 // Update Count : 14 912 // Last Modified On : Thu Dec 21 13:55:41 2017 13 // Update Count : 145 14 14 // 15 15 … … 124 124 }; // readable 125 125 126 forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, _Bool & );127 128 126 forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, char & ); 129 127 forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, signed char & ); … … 147 145 forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, long double _Complex & ); 148 146 149 // manipulators150 forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, istype & (*)( istype & ) );151 forall( dtype istype | istream( istype ) ) istype & endl( istype & is );152 153 147 struct _Istream_cstrUC { char * s; }; 154 148 _Istream_cstrUC cstr( char * ); -
src/libcfa/iostream.c
r7416d46a rf792cb8 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jan 25 13:09:28 201813 // Update Count : 4 6712 // Last Modified On : Thu Dec 21 13:55:09 2017 13 // Update Count : 427 14 14 // 15 15 … … 19 19 #include <stdio.h> 20 20 #include <stdbool.h> // true/false 21 //#include <string.h> // strlen, strcmp 22 extern int strcmp (const char *__s1, const char *__s2) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 23 extern size_t strlen (const char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 21 #include <string.h> // strlen 24 22 #include <float.h> // DBL_DIG, LDBL_DIG 25 23 #include <complex.h> // creal, cimag … … 303 301 304 302 forall( dtype istype | istream( istype ) ) 305 istype & ?|?( istype & is, _Bool & b ) {306 char val[6];307 fmt( is, "%5s", val );308 if ( strcmp( val, "true" ) == 0 ) b = true;309 else if ( strcmp( val, "false" ) == 0 ) b = false;310 else {311 fprintf( stderr, "invalid _Bool constant\n" );312 abort();313 } // if314 return is;315 } // ?|?316 317 forall( dtype istype | istream( istype ) )318 303 istype & ?|?( istype & is, char & c ) { 319 304 fmt( is, "%c", &c ); // must pass pointer through varg to fmt … … 425 410 } // ?|? 426 411 427 forall( dtype istype | istream( istype ) )428 istype & ?|?( istype & is, istype & (* manip)( istype & ) ) {429 return manip( is );430 } // ?|?431 432 forall( dtype istype | istream( istype ) )433 istype & endl( istype & is ) {434 fmt( is, "%*[ \t\f\n\r\v]" ); // ignore whitespace435 return is;436 } // endl437 438 412 _Istream_cstrUC cstr( char * str ) { return (_Istream_cstrUC){ str }; } 439 413 forall( dtype istype | istream( istype ) ) -
src/libcfa/stdlib.c
r7416d46a rf792cb8 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // stdlib.c --7 // algorithm.c -- 8 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Thu Jan 28 17:10:29 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jan 3 08:29:29201813 // Update Count : 44 412 // Last Modified On : Tue Jan 2 12:20:32 2018 13 // Update Count : 441 14 14 // 15 15 … … 24 24 #include <complex.h> // _Complex_I 25 25 #include <assert.h> 26 27 //---------------------------------------28 26 29 27 // resize, non-array types … … 259 257 //--------------------------------------- 260 258 261 extern "C" { void srandom( unsigned int seed ) { srand48( (long int)seed ); } } // override C version259 extern "C" { void srandom( unsigned int seed ) { srand48( seed ); } } // override C version 262 260 char random( void ) { return (unsigned long int)random(); } 263 261 char random( char u ) { return random( (unsigned long int)u ); } -
src/prelude/prelude.cf
r7416d46a rf792cb8 39 39 // ------------------------------------------------------------ 40 40 41 _Bool ?++( _Bool & ), ?++( volatile _Bool & ); 42 _Bool ?--( _Bool & ), ?--( volatile _Bool & ); 41 43 signed short ?++( signed short & ), ?++( volatile signed short & ); 42 44 signed short ?--( signed short & ), ?--( volatile signed short & ); … … 92 94 // ------------------------------------------------------------ 93 95 96 _Bool ++?( _Bool & ), --?( _Bool & ); 94 97 signed short ++?( signed short & ), --?( signed short & ); 95 98 signed int ++?( signed int & ), --?( signed int & ); … … 122 125 forall( ftype FT ) FT & *?( FT * ); 123 126 124 _Bool +?( _Bool ), -?( _Bool ) ;127 _Bool +?( _Bool ), -?( _Bool ), ~?( _Bool ); 125 128 signed int +?( signed int ), -?( signed int ), ~?( signed int ); 126 129 unsigned int +?( unsigned int ), -?( unsigned int ), ~?( unsigned int ); … … 154 157 // ------------------------------------------------------------ 155 158 159 _Bool ?*?( _Bool, _Bool ), ?/?( _Bool, _Bool ), ?%?( _Bool, _Bool ); 156 160 signed int ?*?( signed int, signed int ), ?/?( signed int, signed int ), ?%?( signed int, signed int ); 157 161 unsigned int ?*?( unsigned int, unsigned int ), ?/?( unsigned int, unsigned int ), ?%?( unsigned int, unsigned int ); … … 211 215 // ------------------------------------------------------------ 212 216 217 _Bool ?<<?( _Bool, _Bool ), ?>>?( _Bool, _Bool ); 213 218 signed int ?<<?( signed int, signed int ), ?>>?( signed int, signed int ); 214 219 unsigned int ?<<?( unsigned int, unsigned int ), ?>>?( unsigned int, unsigned int ); … … 462 467 463 468 469 _Bool ?*=?( _Bool &, _Bool ), ?*=?( volatile _Bool &, _Bool ); 464 470 char ?*=?( char &, char ), ?*=?( volatile char &, char ); 465 471 char signed ?*=?( char signed &, char signed ), ?*=?( volatile char signed &, char signed ); … … 528 534 unsigned long long int ?-=?( unsigned long long int &, unsigned long long int ), ?-=?( volatile unsigned long long int &, unsigned long long int ); 529 535 536 _Bool ?<<=?( _Bool &, _Bool ), ?<<=?( volatile _Bool &, _Bool ); 530 537 char ?<<=?( char &, char ), ?<<=?( volatile char &, char ); 531 538 char signed ?<<=?( char signed &, char signed ), ?<<=?( volatile char signed &, char signed ); … … 540 547 unsigned long long int ?<<=?( unsigned long long int &, unsigned long long int ), ?<<=?( volatile unsigned long long int &, unsigned long long int ); 541 548 549 _Bool ?>>=?( _Bool &, _Bool ), ?>>=?( volatile _Bool &, _Bool ); 542 550 char ?>>=?( char &, char ), ?>>=?( volatile char &, char ); 543 551 char signed ?>>=?( char signed &, char signed ), ?>>=?( volatile char signed &, char signed ); -
src/tests/.expect/alloc-ERROR.txt
r7416d46a rf792cb8 4 4 Name: p 5 5 Applying untyped: 6 Name: realloc6 Name: alloc 7 7 ...to: 8 8 Name: stp … … 24 24 Name: p 25 25 Applying untyped: 26 Name: alloc27 ...to:28 Name: stp29 Applying untyped:30 Name: ?*?31 ...to:32 Name: dim33 Sizeof Expression on: Applying untyped:34 Name: *?35 ...to:36 Name: stp37 38 39 40 41 alloc.c:266:1 error: No reasonable alternatives for expression Applying untyped:42 Name: ?=?43 ...to:44 Name: p45 Applying untyped:46 26 Name: memset 47 27 ...to: … … 50 30 51 31 52 alloc.c:26 7:1 error: No reasonable alternatives for expression Applying untyped:32 alloc.c:266:1 error: No reasonable alternatives for expression Applying untyped: 53 33 Name: ?=? 54 34 ...to: -
src/tests/.expect/alloc.txt
r7416d46a rf792cb8 60 60 pointer arithmetic 0 61 61 CFA deep malloc 0xdeadbeef 62 63 SHOULD FAIL -
src/tests/.expect/io.txt
r7416d46a rf792cb8 27 27 28 28 output basic types 29 false30 29 A 23 93 31 30 1 2 3 4 5 6 7 8 -
src/tests/.expect/literals.x64.txt
r7416d46a rf792cb8 35 35 void __write__A0_3_0_0____operator_assign__PFd1_Rd1d1____constructor__PF_Rd1____constructor__PF_Rd1d1____destructor__PF_Rd1____operator_bitor__PFRd0_Rd0d1___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc____operator_assign__PFd2_Rd2d2____constructor__PF_Rd2____constructor__PF_Rd2d2____destructor__PF_Rd2____operator_preincr__PFd2_Rd2____operator_predecr__PFd2_Rd2____operator_equal__PFi_d2d2____operator_notequal__PFi_d2d2____operator_deref__PFRd1_d2__F_d2d2Rd0__1(__attribute__ ((unused)) void *(*_adapterFP9telt_type_14titerator_type_M_P)(void (*__anonymous_object992)(), void *__anonymous_object993), __attribute__ ((unused)) signed int (*_adapterFi_14titerator_type14titerator_type_M_PP)(void (*__anonymous_object994)(), void *__anonymous_object995, void *__anonymous_object996), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type_P_M)(void (*__anonymous_object997)(), __attribute__ ((unused)) void *___retval__operator_preincr__14titerator_type_1, void *__anonymous_object998), __attribute__ ((unused)) void (*_adapterF_P14titerator_type14titerator_type__MP)(void (*__anonymous_object999)(), void *__anonymous_object1000, void *__anonymous_object1001), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type14titerator_type_P_MP)(void (*__anonymous_object1002)(), __attribute__ ((unused)) void *___retval__operator_assign__14titerator_type_1, void *__anonymous_object1003, void *__anonymous_object1004), __attribute__ ((unused)) void *(*_adapterFP7tostype_P7tostype9telt_type_M_MP)(void (*__anonymous_object1005)(), void *__anonymous_object1006, void *__anonymous_object1007), __attribute__ ((unused)) void (*_adapterF_P9telt_type9telt_type__MP)(void (*__anonymous_object1008)(), void *__anonymous_object1009, void *__anonymous_object1010), __attribute__ ((unused)) void (*_adapterF9telt_type_P9telt_type9telt_type_P_MP)(void (*__anonymous_object1011)(), __attribute__ ((unused)) void *___retval__operator_assign__9telt_type_1, void *__anonymous_object1012, void *__anonymous_object1013), __attribute__ ((unused)) unsigned long int _sizeof_9telt_type, __attribute__ ((unused)) unsigned long int _alignof_9telt_type, __attribute__ ((unused)) unsigned long int _sizeof_14titerator_type, __attribute__ ((unused)) unsigned long int _alignof_14titerator_type, __attribute__ ((unused)) void *(*___operator_assign__PF9telt_type_R9telt_type9telt_type__1)(void *__anonymous_object1014, void *__anonymous_object1015), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type__1)(void *__anonymous_object1016), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type9telt_type__1)(void *__anonymous_object1017, void *__anonymous_object1018), __attribute__ ((unused)) void (*___destructor__PF_R9telt_type__1)(void *__anonymous_object1019), __attribute__ ((unused)) void *(*___operator_bitor__PFR7tostype_R7tostype9telt_type__1)(void *__anonymous_object1020, void *__anonymous_object1021), __attribute__ ((unused)) _Bool (*__sepPrt__PFb_R7tostype__1)(void *__anonymous_object1022), __attribute__ ((unused)) void (*__sepReset__PF_R7tostype__1)(void *__anonymous_object1023), __attribute__ ((unused)) void (*__sepReset__PF_R7tostypeb__1)(void *__anonymous_object1024, _Bool __anonymous_object1025), __attribute__ ((unused)) const char *(*__sepGetCur__PFPCc_R7tostype__1)(void *__anonymous_object1026), __attribute__ ((unused)) void (*__sepSetCur__PF_R7tostypePCc__1)(void *__anonymous_object1027, const char *__anonymous_object1028), __attribute__ ((unused)) _Bool (*__getNL__PFb_R7tostype__1)(void *__anonymous_object1029), __attribute__ ((unused)) void (*__setNL__PF_R7tostypeb__1)(void *__anonymous_object1030, _Bool __anonymous_object1031), __attribute__ ((unused)) void (*__sepOn__PF_R7tostype__1)(void *__anonymous_object1032), __attribute__ ((unused)) void (*__sepOff__PF_R7tostype__1)(void *__anonymous_object1033), __attribute__ ((unused)) _Bool (*__sepDisable__PFb_R7tostype__1)(void *__anonymous_object1034), __attribute__ ((unused)) _Bool (*__sepEnable__PFb_R7tostype__1)(void *__anonymous_object1035), __attribute__ ((unused)) const char *(*__sepGet__PFPCc_R7tostype__1)(void *__anonymous_object1036), __attribute__ ((unused)) void (*__sepSet__PF_R7tostypePCc__1)(void *__anonymous_object1037, const char *__anonymous_object1038), __attribute__ ((unused)) const char *(*__sepGetTuple__PFPCc_R7tostype__1)(void *__anonymous_object1039), __attribute__ ((unused)) void (*__sepSetTuple__PF_R7tostypePCc__1)(void *__anonymous_object1040, const char *__anonymous_object1041), __attribute__ ((unused)) signed int (*__fail__PFi_R7tostype__1)(void *__anonymous_object1042), __attribute__ ((unused)) signed int (*__flush__PFi_R7tostype__1)(void *__anonymous_object1043), __attribute__ ((unused)) void (*__open__PF_R7tostypePCcPCc__1)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tostype__1)(void *__os__R7tostype_1), __attribute__ ((unused)) void *(*__write__PFR7tostype_R7tostypePCcUl__1)(void *__anonymous_object1044, const char *__anonymous_object1045, unsigned long int __anonymous_object1046), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tostypePCc__1)(void *__anonymous_object1047, const char *__fmt__PCc_1, ...), __attribute__ ((unused)) void *(*___operator_assign__PF14titerator_type_R14titerator_type14titerator_type__1)(void *__anonymous_object1048, void *__anonymous_object1049), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type__1)(void *__anonymous_object1050), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type14titerator_type__1)(void *__anonymous_object1051, void *__anonymous_object1052), __attribute__ ((unused)) void (*___destructor__PF_R14titerator_type__1)(void *__anonymous_object1053), __attribute__ ((unused)) void *(*___operator_preincr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object1054), __attribute__ ((unused)) void *(*___operator_predecr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object1055), __attribute__ ((unused)) signed int (*___operator_equal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object1056, void *__anonymous_object1057), __attribute__ ((unused)) signed int (*___operator_notequal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object1058, void *__anonymous_object1059), __attribute__ ((unused)) void *(*___operator_deref__PFR9telt_type_14titerator_type__1)(void *__anonymous_object1060), void *__begin__14titerator_type_1, void *__end__14titerator_type_1, void *__os__R7tostype_1); 36 36 void __write_reverse__A0_3_0_0____operator_assign__PFd1_Rd1d1____constructor__PF_Rd1____constructor__PF_Rd1d1____destructor__PF_Rd1____operator_bitor__PFRd0_Rd0d1___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc____operator_assign__PFd2_Rd2d2____constructor__PF_Rd2____constructor__PF_Rd2d2____destructor__PF_Rd2____operator_preincr__PFd2_Rd2____operator_predecr__PFd2_Rd2____operator_equal__PFi_d2d2____operator_notequal__PFi_d2d2____operator_deref__PFRd1_d2__F_d2d2Rd0__1(__attribute__ ((unused)) void *(*_adapterFP9telt_type_14titerator_type_M_P)(void (*__anonymous_object1061)(), void *__anonymous_object1062), __attribute__ ((unused)) signed int (*_adapterFi_14titerator_type14titerator_type_M_PP)(void (*__anonymous_object1063)(), void *__anonymous_object1064, void *__anonymous_object1065), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type_P_M)(void (*__anonymous_object1066)(), __attribute__ ((unused)) void *___retval__operator_preincr__14titerator_type_1, void *__anonymous_object1067), __attribute__ ((unused)) void (*_adapterF_P14titerator_type14titerator_type__MP)(void (*__anonymous_object1068)(), void *__anonymous_object1069, void *__anonymous_object1070), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type14titerator_type_P_MP)(void (*__anonymous_object1071)(), __attribute__ ((unused)) void *___retval__operator_assign__14titerator_type_1, void *__anonymous_object1072, void *__anonymous_object1073), __attribute__ ((unused)) void *(*_adapterFP7tostype_P7tostype9telt_type_M_MP)(void (*__anonymous_object1074)(), void *__anonymous_object1075, void *__anonymous_object1076), __attribute__ ((unused)) void (*_adapterF_P9telt_type9telt_type__MP)(void (*__anonymous_object1077)(), void *__anonymous_object1078, void *__anonymous_object1079), __attribute__ ((unused)) void (*_adapterF9telt_type_P9telt_type9telt_type_P_MP)(void (*__anonymous_object1080)(), __attribute__ ((unused)) void *___retval__operator_assign__9telt_type_1, void *__anonymous_object1081, void *__anonymous_object1082), __attribute__ ((unused)) unsigned long int _sizeof_9telt_type, __attribute__ ((unused)) unsigned long int _alignof_9telt_type, __attribute__ ((unused)) unsigned long int _sizeof_14titerator_type, __attribute__ ((unused)) unsigned long int _alignof_14titerator_type, __attribute__ ((unused)) void *(*___operator_assign__PF9telt_type_R9telt_type9telt_type__1)(void *__anonymous_object1083, void *__anonymous_object1084), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type__1)(void *__anonymous_object1085), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type9telt_type__1)(void *__anonymous_object1086, void *__anonymous_object1087), __attribute__ ((unused)) void (*___destructor__PF_R9telt_type__1)(void *__anonymous_object1088), __attribute__ ((unused)) void *(*___operator_bitor__PFR7tostype_R7tostype9telt_type__1)(void *__anonymous_object1089, void *__anonymous_object1090), __attribute__ ((unused)) _Bool (*__sepPrt__PFb_R7tostype__1)(void *__anonymous_object1091), __attribute__ ((unused)) void (*__sepReset__PF_R7tostype__1)(void *__anonymous_object1092), __attribute__ ((unused)) void (*__sepReset__PF_R7tostypeb__1)(void *__anonymous_object1093, _Bool __anonymous_object1094), __attribute__ ((unused)) const char *(*__sepGetCur__PFPCc_R7tostype__1)(void *__anonymous_object1095), __attribute__ ((unused)) void (*__sepSetCur__PF_R7tostypePCc__1)(void *__anonymous_object1096, const char *__anonymous_object1097), __attribute__ ((unused)) _Bool (*__getNL__PFb_R7tostype__1)(void *__anonymous_object1098), __attribute__ ((unused)) void (*__setNL__PF_R7tostypeb__1)(void *__anonymous_object1099, _Bool __anonymous_object1100), __attribute__ ((unused)) void (*__sepOn__PF_R7tostype__1)(void *__anonymous_object1101), __attribute__ ((unused)) void (*__sepOff__PF_R7tostype__1)(void *__anonymous_object1102), __attribute__ ((unused)) _Bool (*__sepDisable__PFb_R7tostype__1)(void *__anonymous_object1103), __attribute__ ((unused)) _Bool (*__sepEnable__PFb_R7tostype__1)(void *__anonymous_object1104), __attribute__ ((unused)) const char *(*__sepGet__PFPCc_R7tostype__1)(void *__anonymous_object1105), __attribute__ ((unused)) void (*__sepSet__PF_R7tostypePCc__1)(void *__anonymous_object1106, const char *__anonymous_object1107), __attribute__ ((unused)) const char *(*__sepGetTuple__PFPCc_R7tostype__1)(void *__anonymous_object1108), __attribute__ ((unused)) void (*__sepSetTuple__PF_R7tostypePCc__1)(void *__anonymous_object1109, const char *__anonymous_object1110), __attribute__ ((unused)) signed int (*__fail__PFi_R7tostype__1)(void *__anonymous_object1111), __attribute__ ((unused)) signed int (*__flush__PFi_R7tostype__1)(void *__anonymous_object1112), __attribute__ ((unused)) void (*__open__PF_R7tostypePCcPCc__1)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tostype__1)(void *__os__R7tostype_1), __attribute__ ((unused)) void *(*__write__PFR7tostype_R7tostypePCcUl__1)(void *__anonymous_object1113, const char *__anonymous_object1114, unsigned long int __anonymous_object1115), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tostypePCc__1)(void *__anonymous_object1116, const char *__fmt__PCc_1, ...), __attribute__ ((unused)) void *(*___operator_assign__PF14titerator_type_R14titerator_type14titerator_type__1)(void *__anonymous_object1117, void *__anonymous_object1118), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type__1)(void *__anonymous_object1119), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type14titerator_type__1)(void *__anonymous_object1120, void *__anonymous_object1121), __attribute__ ((unused)) void (*___destructor__PF_R14titerator_type__1)(void *__anonymous_object1122), __attribute__ ((unused)) void *(*___operator_preincr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object1123), __attribute__ ((unused)) void *(*___operator_predecr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object1124), __attribute__ ((unused)) signed int (*___operator_equal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object1125, void *__anonymous_object1126), __attribute__ ((unused)) signed int (*___operator_notequal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object1127, void *__anonymous_object1128), __attribute__ ((unused)) void *(*___operator_deref__PFR9telt_type_14titerator_type__1)(void *__anonymous_object1129), void *__begin__14titerator_type_1, void *__end__14titerator_type_1, void *__os__R7tostype_1); 37 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rb__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1130), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1131), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1132, char *__anonymous_object1133, unsigned long int __anonymous_object1134), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1135, char __anonymous_object1136), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1137, const char *__fmt__PCc_1, ...), void *__anonymous_object1138, _Bool *__anonymous_object1139); 38 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rc__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1140), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1141), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1142, char *__anonymous_object1143, unsigned long int __anonymous_object1144), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1145, char __anonymous_object1146), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1147, const char *__fmt__PCc_1, ...), void *__anonymous_object1148, char *__anonymous_object1149); 39 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RSc__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1150), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1151), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1152, char *__anonymous_object1153, unsigned long int __anonymous_object1154), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1155, char __anonymous_object1156), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1157, const char *__fmt__PCc_1, ...), void *__anonymous_object1158, signed char *__anonymous_object1159); 40 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUc__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1160), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1161), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1162, char *__anonymous_object1163, unsigned long int __anonymous_object1164), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1165, char __anonymous_object1166), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1167, const char *__fmt__PCc_1, ...), void *__anonymous_object1168, unsigned char *__anonymous_object1169); 41 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rs__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1170), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1171), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1172, char *__anonymous_object1173, unsigned long int __anonymous_object1174), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1175, char __anonymous_object1176), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1177, const char *__fmt__PCc_1, ...), void *__anonymous_object1178, signed short int *__anonymous_object1179); 42 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUs__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1180), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1181), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1182, char *__anonymous_object1183, unsigned long int __anonymous_object1184), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1185, char __anonymous_object1186), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1187, const char *__fmt__PCc_1, ...), void *__anonymous_object1188, unsigned short int *__anonymous_object1189); 43 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Ri__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1190), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1191), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1192, char *__anonymous_object1193, unsigned long int __anonymous_object1194), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1195, char __anonymous_object1196), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1197, const char *__fmt__PCc_1, ...), void *__anonymous_object1198, signed int *__anonymous_object1199); 44 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUi__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1200), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1201), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1202, char *__anonymous_object1203, unsigned long int __anonymous_object1204), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1205, char __anonymous_object1206), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1207, const char *__fmt__PCc_1, ...), void *__anonymous_object1208, unsigned int *__anonymous_object1209); 45 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rl__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1210), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1211), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1212, char *__anonymous_object1213, unsigned long int __anonymous_object1214), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1215, char __anonymous_object1216), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1217, const char *__fmt__PCc_1, ...), void *__anonymous_object1218, signed long int *__anonymous_object1219); 46 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rq__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1220), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1221), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1222, char *__anonymous_object1223, unsigned long int __anonymous_object1224), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1225, char __anonymous_object1226), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1227, const char *__fmt__PCc_1, ...), void *__anonymous_object1228, signed long long int *__anonymous_object1229); 47 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUl__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1230), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1231), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1232, char *__anonymous_object1233, unsigned long int __anonymous_object1234), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1235, char __anonymous_object1236), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1237, const char *__fmt__PCc_1, ...), void *__anonymous_object1238, unsigned long int *__anonymous_object1239); 48 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUq__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1240), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1241), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1242, char *__anonymous_object1243, unsigned long int __anonymous_object1244), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1245, char __anonymous_object1246), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1247, const char *__fmt__PCc_1, ...), void *__anonymous_object1248, unsigned long long int *__anonymous_object1249); 49 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rf__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1250), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1251), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1252, char *__anonymous_object1253, unsigned long int __anonymous_object1254), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1255, char __anonymous_object1256), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1257, const char *__fmt__PCc_1, ...), void *__anonymous_object1258, float *__anonymous_object1259); 50 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rd__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1260), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1261), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1262, char *__anonymous_object1263, unsigned long int __anonymous_object1264), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1265, char __anonymous_object1266), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1267, const char *__fmt__PCc_1, ...), void *__anonymous_object1268, double *__anonymous_object1269); 51 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rr__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1270), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1271), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1272, char *__anonymous_object1273, unsigned long int __anonymous_object1274), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1275, char __anonymous_object1276), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1277, const char *__fmt__PCc_1, ...), void *__anonymous_object1278, long double *__anonymous_object1279); 52 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RXf__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1280), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1281), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1282, char *__anonymous_object1283, unsigned long int __anonymous_object1284), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1285, char __anonymous_object1286), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1287, const char *__fmt__PCc_1, ...), void *__anonymous_object1288, float _Complex *__anonymous_object1289); 53 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RXd__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1290), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1291), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1292, char *__anonymous_object1293, unsigned long int __anonymous_object1294), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1295, char __anonymous_object1296), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1297, const char *__fmt__PCc_1, ...), void *__anonymous_object1298, double _Complex *__anonymous_object1299); 54 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RXr__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1300), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1301), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1302, char *__anonymous_object1303, unsigned long int __anonymous_object1304), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1305, char __anonymous_object1306), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1307, const char *__fmt__PCc_1, ...), void *__anonymous_object1308, long double _Complex *__anonymous_object1309); 55 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1310), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1311), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1312, char *__anonymous_object1313, unsigned long int __anonymous_object1314), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1315, char __anonymous_object1316), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1317, const char *__fmt__PCc_1, ...), void *__anonymous_object1318, void *(*__anonymous_object1319)(void *__anonymous_object1320)); 56 void *__endl__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1321), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1322), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1323, char *__anonymous_object1324, unsigned long int __anonymous_object1325), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1326, char __anonymous_object1327), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1328, const char *__fmt__PCc_1, ...), void *__is__R7tistype_1); 37 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rc__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1130), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1131), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1132, char *__anonymous_object1133, unsigned long int __anonymous_object1134), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1135, char __anonymous_object1136), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1137, const char *__fmt__PCc_1, ...), void *__anonymous_object1138, char *__anonymous_object1139); 38 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RSc__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1140), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1141), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1142, char *__anonymous_object1143, unsigned long int __anonymous_object1144), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1145, char __anonymous_object1146), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1147, const char *__fmt__PCc_1, ...), void *__anonymous_object1148, signed char *__anonymous_object1149); 39 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUc__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1150), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1151), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1152, char *__anonymous_object1153, unsigned long int __anonymous_object1154), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1155, char __anonymous_object1156), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1157, const char *__fmt__PCc_1, ...), void *__anonymous_object1158, unsigned char *__anonymous_object1159); 40 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rs__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1160), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1161), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1162, char *__anonymous_object1163, unsigned long int __anonymous_object1164), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1165, char __anonymous_object1166), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1167, const char *__fmt__PCc_1, ...), void *__anonymous_object1168, signed short int *__anonymous_object1169); 41 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUs__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1170), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1171), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1172, char *__anonymous_object1173, unsigned long int __anonymous_object1174), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1175, char __anonymous_object1176), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1177, const char *__fmt__PCc_1, ...), void *__anonymous_object1178, unsigned short int *__anonymous_object1179); 42 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Ri__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1180), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1181), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1182, char *__anonymous_object1183, unsigned long int __anonymous_object1184), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1185, char __anonymous_object1186), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1187, const char *__fmt__PCc_1, ...), void *__anonymous_object1188, signed int *__anonymous_object1189); 43 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUi__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1190), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1191), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1192, char *__anonymous_object1193, unsigned long int __anonymous_object1194), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1195, char __anonymous_object1196), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1197, const char *__fmt__PCc_1, ...), void *__anonymous_object1198, unsigned int *__anonymous_object1199); 44 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rl__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1200), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1201), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1202, char *__anonymous_object1203, unsigned long int __anonymous_object1204), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1205, char __anonymous_object1206), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1207, const char *__fmt__PCc_1, ...), void *__anonymous_object1208, signed long int *__anonymous_object1209); 45 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rq__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1210), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1211), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1212, char *__anonymous_object1213, unsigned long int __anonymous_object1214), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1215, char __anonymous_object1216), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1217, const char *__fmt__PCc_1, ...), void *__anonymous_object1218, signed long long int *__anonymous_object1219); 46 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUl__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1220), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1221), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1222, char *__anonymous_object1223, unsigned long int __anonymous_object1224), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1225, char __anonymous_object1226), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1227, const char *__fmt__PCc_1, ...), void *__anonymous_object1228, unsigned long int *__anonymous_object1229); 47 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUq__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1230), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1231), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1232, char *__anonymous_object1233, unsigned long int __anonymous_object1234), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1235, char __anonymous_object1236), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1237, const char *__fmt__PCc_1, ...), void *__anonymous_object1238, unsigned long long int *__anonymous_object1239); 48 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rf__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1240), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1241), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1242, char *__anonymous_object1243, unsigned long int __anonymous_object1244), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1245, char __anonymous_object1246), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1247, const char *__fmt__PCc_1, ...), void *__anonymous_object1248, float *__anonymous_object1249); 49 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rd__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1250), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1251), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1252, char *__anonymous_object1253, unsigned long int __anonymous_object1254), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1255, char __anonymous_object1256), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1257, const char *__fmt__PCc_1, ...), void *__anonymous_object1258, double *__anonymous_object1259); 50 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rr__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1260), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1261), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1262, char *__anonymous_object1263, unsigned long int __anonymous_object1264), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1265, char __anonymous_object1266), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1267, const char *__fmt__PCc_1, ...), void *__anonymous_object1268, long double *__anonymous_object1269); 51 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RXf__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1270), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1271), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1272, char *__anonymous_object1273, unsigned long int __anonymous_object1274), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1275, char __anonymous_object1276), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1277, const char *__fmt__PCc_1, ...), void *__anonymous_object1278, float _Complex *__anonymous_object1279); 52 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RXd__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1280), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1281), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1282, char *__anonymous_object1283, unsigned long int __anonymous_object1284), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1285, char __anonymous_object1286), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1287, const char *__fmt__PCc_1, ...), void *__anonymous_object1288, double _Complex *__anonymous_object1289); 53 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RXr__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1290), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1291), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1292, char *__anonymous_object1293, unsigned long int __anonymous_object1294), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1295, char __anonymous_object1296), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1297, const char *__fmt__PCc_1, ...), void *__anonymous_object1298, long double _Complex *__anonymous_object1299); 57 54 struct _Istream_cstrUC { 58 55 char *__s__Pc_1; … … 81 78 ((void)((*___dst__R16s_Istream_cstrUC_1).__s__Pc_1=__s__Pc_1) /* ?{} */); 82 79 } 83 struct _Istream_cstrUC __cstr__F16s_Istream_cstrUC_Pc__1(char *__anonymous_object13 29);84 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd016s_Istream_cstrUC__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object13 30), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1331), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1332, char *__anonymous_object1333, unsigned long int __anonymous_object1334), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1335, char __anonymous_object1336), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1337, const char *__fmt__PCc_1, ...), void *__anonymous_object1338, struct _Istream_cstrUC __anonymous_object1339);80 struct _Istream_cstrUC __cstr__F16s_Istream_cstrUC_Pc__1(char *__anonymous_object1300); 81 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd016s_Istream_cstrUC__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1301), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1302), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1303, char *__anonymous_object1304, unsigned long int __anonymous_object1305), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1306, char __anonymous_object1307), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1308, const char *__fmt__PCc_1, ...), void *__anonymous_object1309, struct _Istream_cstrUC __anonymous_object1310); 85 82 struct _Istream_cstrC { 86 83 char *__s__Pc_1; … … 120 117 ((void)((*___dst__R15s_Istream_cstrC_1).__size__i_1=__size__i_1) /* ?{} */); 121 118 } 122 struct _Istream_cstrC __cstr__F15s_Istream_cstrC_Pci__1(char *__anonymous_object13 40, signed int __size__i_1);123 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd015s_Istream_cstrC__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object13 41), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1342), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1343, char *__anonymous_object1344, unsigned long int __anonymous_object1345), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1346, char __anonymous_object1347), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1348, const char *__fmt__PCc_1, ...), void *__anonymous_object1349, struct _Istream_cstrC __anonymous_object1350);119 struct _Istream_cstrC __cstr__F15s_Istream_cstrC_Pci__1(char *__anonymous_object1311, signed int __size__i_1); 120 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd015s_Istream_cstrC__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1312), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1313), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1314, char *__anonymous_object1315, unsigned long int __anonymous_object1316), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1317, char __anonymous_object1318), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1319, const char *__fmt__PCc_1, ...), void *__anonymous_object1320, struct _Istream_cstrC __anonymous_object1321); 124 121 enum __anonymous0 { 125 122 __sepSize__C13e__anonymous0_1 = 16, … … 401 398 402 399 } 403 _Bool __sepPrt__Fb_R9sofstream__1(struct ofstream *__anonymous_object13 51);404 void __sepReset__F_R9sofstream__1(struct ofstream *__anonymous_object13 52);405 void __sepReset__F_R9sofstreamb__1(struct ofstream *__anonymous_object13 53, _Bool __anonymous_object1354);406 const char *__sepGetCur__FPCc_R9sofstream__1(struct ofstream *__anonymous_object13 55);407 void __sepSetCur__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object13 56, const char *__anonymous_object1357);408 _Bool __getNL__Fb_R9sofstream__1(struct ofstream *__anonymous_object13 58);409 void __setNL__F_R9sofstreamb__1(struct ofstream *__anonymous_object13 59, _Bool __anonymous_object1360);410 void __sepOn__F_R9sofstream__1(struct ofstream *__anonymous_object13 61);411 void __sepOff__F_R9sofstream__1(struct ofstream *__anonymous_object13 62);412 _Bool __sepDisable__Fb_R9sofstream__1(struct ofstream *__anonymous_object13 63);413 _Bool __sepEnable__Fb_R9sofstream__1(struct ofstream *__anonymous_object13 64);414 const char *__sepGet__FPCc_R9sofstream__1(struct ofstream *__anonymous_object13 65);415 void __sepSet__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object13 66, const char *__anonymous_object1367);416 const char *__sepGetTuple__FPCc_R9sofstream__1(struct ofstream *__anonymous_object13 68);417 void __sepSetTuple__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object13 69, const char *__anonymous_object1370);418 signed int __fail__Fi_R9sofstream__1(struct ofstream *__anonymous_object13 71);419 signed int __flush__Fi_R9sofstream__1(struct ofstream *__anonymous_object13 72);420 void __open__F_R9sofstreamPCcPCc__1(struct ofstream *__anonymous_object13 73, const char *__name__PCc_1, const char *__mode__PCc_1);421 void __open__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object13 74, const char *__name__PCc_1);422 void __close__F_R9sofstream__1(struct ofstream *__anonymous_object13 75);423 struct ofstream *__write__FR9sofstream_R9sofstreamPCcUl__1(struct ofstream *__anonymous_object13 76, const char *__data__PCc_1, unsigned long int __size__Ul_1);424 signed int __fmt__Fi_R9sofstreamPCc__1(struct ofstream *__anonymous_object13 77, const char *__fmt__PCc_1, ...);400 _Bool __sepPrt__Fb_R9sofstream__1(struct ofstream *__anonymous_object1322); 401 void __sepReset__F_R9sofstream__1(struct ofstream *__anonymous_object1323); 402 void __sepReset__F_R9sofstreamb__1(struct ofstream *__anonymous_object1324, _Bool __anonymous_object1325); 403 const char *__sepGetCur__FPCc_R9sofstream__1(struct ofstream *__anonymous_object1326); 404 void __sepSetCur__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object1327, const char *__anonymous_object1328); 405 _Bool __getNL__Fb_R9sofstream__1(struct ofstream *__anonymous_object1329); 406 void __setNL__F_R9sofstreamb__1(struct ofstream *__anonymous_object1330, _Bool __anonymous_object1331); 407 void __sepOn__F_R9sofstream__1(struct ofstream *__anonymous_object1332); 408 void __sepOff__F_R9sofstream__1(struct ofstream *__anonymous_object1333); 409 _Bool __sepDisable__Fb_R9sofstream__1(struct ofstream *__anonymous_object1334); 410 _Bool __sepEnable__Fb_R9sofstream__1(struct ofstream *__anonymous_object1335); 411 const char *__sepGet__FPCc_R9sofstream__1(struct ofstream *__anonymous_object1336); 412 void __sepSet__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object1337, const char *__anonymous_object1338); 413 const char *__sepGetTuple__FPCc_R9sofstream__1(struct ofstream *__anonymous_object1339); 414 void __sepSetTuple__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object1340, const char *__anonymous_object1341); 415 signed int __fail__Fi_R9sofstream__1(struct ofstream *__anonymous_object1342); 416 signed int __flush__Fi_R9sofstream__1(struct ofstream *__anonymous_object1343); 417 void __open__F_R9sofstreamPCcPCc__1(struct ofstream *__anonymous_object1344, const char *__name__PCc_1, const char *__mode__PCc_1); 418 void __open__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object1345, const char *__name__PCc_1); 419 void __close__F_R9sofstream__1(struct ofstream *__anonymous_object1346); 420 struct ofstream *__write__FR9sofstream_R9sofstreamPCcUl__1(struct ofstream *__anonymous_object1347, const char *__data__PCc_1, unsigned long int __size__Ul_1); 421 signed int __fmt__Fi_R9sofstreamPCc__1(struct ofstream *__anonymous_object1348, const char *__fmt__PCc_1, ...); 425 422 void ___constructor__F_R9sofstream__1(struct ofstream *__os__R9sofstream_1); 426 423 void ___constructor__F_R9sofstreamPCcPCc__1(struct ofstream *__os__R9sofstream_1, const char *__name__PCc_1, const char *__mode__PCc_1); … … 461 458 struct ifstream *__read__FR9sifstream_R9sifstreamPcUl__1(struct ifstream *__is__R9sifstream_1, char *__data__Pc_1, unsigned long int __size__Ul_1); 462 459 struct ifstream *__ungetc__FR9sifstream_R9sifstreamc__1(struct ifstream *__is__R9sifstream_1, char __c__c_1); 463 signed int __fmt__Fi_R9sifstreamPCc__1(struct ifstream *__anonymous_object13 78, const char *__fmt__PCc_1, ...);460 signed int __fmt__Fi_R9sifstreamPCc__1(struct ifstream *__anonymous_object1349, const char *__fmt__PCc_1, ...); 464 461 void ___constructor__F_R9sifstream__1(struct ifstream *__is__R9sifstream_1); 465 462 void ___constructor__F_R9sifstreamPCcPCc__1(struct ifstream *__is__R9sifstream_1, const char *__name__PCc_1, const char *__mode__PCc_1); … … 471 468 struct ofstream *_tmp_cp_ret2; 472 469 __attribute__ ((unused)) struct ofstream *_thunk0(struct ofstream *_p0){ 473 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object13 79))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1380))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1381, _Bool __anonymous_object1382))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1383))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1384, const char *__anonymous_object1385))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1386))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1387, _Bool __anonymous_object1388))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1389))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1390))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1391))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1392))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1393))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1394, const char *__anonymous_object1395))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1396))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1397, const char *__anonymous_object1398))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1399))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1400))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1401, const char *__anonymous_object1402, unsigned long int __anonymous_object1403))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1404, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));474 } 475 ((void)(((void)(_tmp_cp_ret2=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1 405))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1406))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1407, _Bool __anonymous_object1408))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1409))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1410, const char *__anonymous_object1411))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1412))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1413, _Bool __anonymous_object1414))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1415))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1416))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1417))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1418))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1419))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1420, const char *__anonymous_object1421))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1422))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1423, const char *__anonymous_object1424))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1425))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1426))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1427, const char *__anonymous_object1428, unsigned long int __anonymous_object1429))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1430, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret1=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0c__1(((_Bool (*)(void *__anonymous_object1431))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1432))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1433, _Bool __anonymous_object1434))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1435))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1436, const char *__anonymous_object1437))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1438))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1439, _Bool __anonymous_object1440))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1441))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1442))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1443))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1444))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1445))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1446, const char *__anonymous_object1447))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1448))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1449, const char *__anonymous_object1450))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1451))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1452))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1453, const char *__anonymous_object1454, unsigned long int __anonymous_object1455))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1456, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret0=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1457))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1458))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1459, _Bool __anonymous_object1460))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1461))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1462, const char *__anonymous_object1463))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1464))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1465, _Bool __anonymous_object1466))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1467))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1468))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1469))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1470))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1471))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1472, const char *__anonymous_object1473))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1474))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1475, const char *__anonymous_object1476))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1477))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1478))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1479, const char *__anonymous_object1480, unsigned long int __anonymous_object1481))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1482, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "char ")))) , _tmp_cp_ret0)), __v__c_1)))) , _tmp_cp_ret1)), ((void *(*)(void *__anonymous_object1483))(&_thunk0)))))) , _tmp_cp_ret2));470 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1350))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1351))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1352, _Bool __anonymous_object1353))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1354))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1355, const char *__anonymous_object1356))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1357))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1358, _Bool __anonymous_object1359))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1360))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1361))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1362))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1363))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1364))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1365, const char *__anonymous_object1366))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1367))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1368, const char *__anonymous_object1369))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1370))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1371))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1372, const char *__anonymous_object1373, unsigned long int __anonymous_object1374))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1375, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0)); 471 } 472 ((void)(((void)(_tmp_cp_ret2=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1376))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1377))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1378, _Bool __anonymous_object1379))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1380))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1381, const char *__anonymous_object1382))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1383))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1384, _Bool __anonymous_object1385))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1386))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1387))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1388))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1389))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1390))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1391, const char *__anonymous_object1392))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1393))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1394, const char *__anonymous_object1395))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1396))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1397))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1398, const char *__anonymous_object1399, unsigned long int __anonymous_object1400))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1401, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret1=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0c__1(((_Bool (*)(void *__anonymous_object1402))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1403))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1404, _Bool __anonymous_object1405))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1406))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1407, const char *__anonymous_object1408))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1409))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1410, _Bool __anonymous_object1411))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1412))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1413))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1414))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1415))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1416))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1417, const char *__anonymous_object1418))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1419))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1420, const char *__anonymous_object1421))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1422))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1423))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1424, const char *__anonymous_object1425, unsigned long int __anonymous_object1426))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1427, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret0=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1428))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1429))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1430, _Bool __anonymous_object1431))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1432))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1433, const char *__anonymous_object1434))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1435))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1436, _Bool __anonymous_object1437))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1438))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1439))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1440))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1441))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1442))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1443, const char *__anonymous_object1444))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1445))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1446, const char *__anonymous_object1447))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1448))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1449))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1450, const char *__anonymous_object1451, unsigned long int __anonymous_object1452))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1453, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "char ")))) , _tmp_cp_ret0)), __v__c_1)))) , _tmp_cp_ret1)), ((void *(*)(void *__anonymous_object1454))(&_thunk0)))))) , _tmp_cp_ret2)); 476 473 } 477 474 void __f__F_Sc__1(signed char __v__Sc_1){ … … 480 477 struct ofstream *_tmp_cp_ret5; 481 478 __attribute__ ((unused)) struct ofstream *_thunk1(struct ofstream *_p0){ 482 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object14 84))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1485))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1486, _Bool __anonymous_object1487))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1488))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1489, const char *__anonymous_object1490))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1491))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1492, _Bool __anonymous_object1493))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1494))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1495))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1496))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1497))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1498))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1499, const char *__anonymous_object1500))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1501))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1502, const char *__anonymous_object1503))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1504))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1505))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1506, const char *__anonymous_object1507, unsigned long int __anonymous_object1508))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1509, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));483 } 484 ((void)(((void)(_tmp_cp_ret5=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1 510))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1511))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1512, _Bool __anonymous_object1513))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1514))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1515, const char *__anonymous_object1516))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1517))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1518, _Bool __anonymous_object1519))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1520))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1521))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1522))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1523))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1524))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1525, const char *__anonymous_object1526))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1527))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1528, const char *__anonymous_object1529))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1530))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1531))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1532, const char *__anonymous_object1533, unsigned long int __anonymous_object1534))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1535, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret4=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Sc__1(((_Bool (*)(void *__anonymous_object1536))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1537))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1538, _Bool __anonymous_object1539))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1540))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1541, const char *__anonymous_object1542))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1543))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1544, _Bool __anonymous_object1545))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1546))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1547))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1548))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1549))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1550))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1551, const char *__anonymous_object1552))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1553))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1554, const char *__anonymous_object1555))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1556))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1557))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1558, const char *__anonymous_object1559, unsigned long int __anonymous_object1560))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1561, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret3=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1562))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1563))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1564, _Bool __anonymous_object1565))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1566))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1567, const char *__anonymous_object1568))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1569))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1570, _Bool __anonymous_object1571))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1572))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1573))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1574))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1575))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1576))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1577, const char *__anonymous_object1578))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1579))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1580, const char *__anonymous_object1581))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1582))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1583))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1584, const char *__anonymous_object1585, unsigned long int __anonymous_object1586))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1587, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "signed char ")))) , _tmp_cp_ret3)), __v__Sc_1)))) , _tmp_cp_ret4)), ((void *(*)(void *__anonymous_object1588))(&_thunk1)))))) , _tmp_cp_ret5));479 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1455))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1456))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1457, _Bool __anonymous_object1458))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1459))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1460, const char *__anonymous_object1461))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1462))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1463, _Bool __anonymous_object1464))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1465))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1466))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1467))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1468))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1469))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1470, const char *__anonymous_object1471))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1472))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1473, const char *__anonymous_object1474))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1475))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1476))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1477, const char *__anonymous_object1478, unsigned long int __anonymous_object1479))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1480, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0)); 480 } 481 ((void)(((void)(_tmp_cp_ret5=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1481))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1482))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1483, _Bool __anonymous_object1484))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1485))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1486, const char *__anonymous_object1487))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1488))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1489, _Bool __anonymous_object1490))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1491))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1492))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1493))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1494))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1495))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1496, const char *__anonymous_object1497))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1498))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1499, const char *__anonymous_object1500))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1501))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1502))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1503, const char *__anonymous_object1504, unsigned long int __anonymous_object1505))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1506, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret4=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Sc__1(((_Bool (*)(void *__anonymous_object1507))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1508))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1509, _Bool __anonymous_object1510))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1511))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1512, const char *__anonymous_object1513))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1514))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1515, _Bool __anonymous_object1516))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1517))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1518))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1519))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1520))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1521))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1522, const char *__anonymous_object1523))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1524))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1525, const char *__anonymous_object1526))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1527))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1528))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1529, const char *__anonymous_object1530, unsigned long int __anonymous_object1531))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1532, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret3=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1533))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1534))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1535, _Bool __anonymous_object1536))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1537))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1538, const char *__anonymous_object1539))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1540))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1541, _Bool __anonymous_object1542))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1543))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1544))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1545))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1546))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1547))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1548, const char *__anonymous_object1549))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1550))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1551, const char *__anonymous_object1552))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1553))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1554))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1555, const char *__anonymous_object1556, unsigned long int __anonymous_object1557))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1558, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "signed char ")))) , _tmp_cp_ret3)), __v__Sc_1)))) , _tmp_cp_ret4)), ((void *(*)(void *__anonymous_object1559))(&_thunk1)))))) , _tmp_cp_ret5)); 485 482 } 486 483 void __f__F_Uc__1(unsigned char __v__Uc_1){ … … 489 486 struct ofstream *_tmp_cp_ret8; 490 487 __attribute__ ((unused)) struct ofstream *_thunk2(struct ofstream *_p0){ 491 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object15 89))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1590))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1591, _Bool __anonymous_object1592))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1593))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1594, const char *__anonymous_object1595))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1596))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1597, _Bool __anonymous_object1598))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1599))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1600))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1601))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1602))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1603))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1604, const char *__anonymous_object1605))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1606))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1607, const char *__anonymous_object1608))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1609))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1610))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1611, const char *__anonymous_object1612, unsigned long int __anonymous_object1613))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1614, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));492 } 493 ((void)(((void)(_tmp_cp_ret8=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1 615))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1616))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1617, _Bool __anonymous_object1618))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1619))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1620, const char *__anonymous_object1621))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1622))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1623, _Bool __anonymous_object1624))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1625))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1626))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1627))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1628))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1629))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1630, const char *__anonymous_object1631))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1632))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1633, const char *__anonymous_object1634))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1635))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1636))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1637, const char *__anonymous_object1638, unsigned long int __anonymous_object1639))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1640, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret7=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Uc__1(((_Bool (*)(void *__anonymous_object1641))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1642))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1643, _Bool __anonymous_object1644))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1645))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1646, const char *__anonymous_object1647))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1648))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1649, _Bool __anonymous_object1650))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1651))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1652))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1653))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1654))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1655))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1656, const char *__anonymous_object1657))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1658))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1659, const char *__anonymous_object1660))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1661))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1662))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1663, const char *__anonymous_object1664, unsigned long int __anonymous_object1665))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1666, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret6=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1667))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1668))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1669, _Bool __anonymous_object1670))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1671))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1672, const char *__anonymous_object1673))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1674))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1675, _Bool __anonymous_object1676))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1677))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1678))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1679))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1680))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1681))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1682, const char *__anonymous_object1683))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1684))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1685, const char *__anonymous_object1686))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1687))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1688))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1689, const char *__anonymous_object1690, unsigned long int __anonymous_object1691))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1692, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "unsigned char ")))) , _tmp_cp_ret6)), __v__Uc_1)))) , _tmp_cp_ret7)), ((void *(*)(void *__anonymous_object1693))(&_thunk2)))))) , _tmp_cp_ret8));488 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1560))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1561))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1562, _Bool __anonymous_object1563))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1564))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1565, const char *__anonymous_object1566))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1567))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1568, _Bool __anonymous_object1569))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1570))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1571))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1572))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1573))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1574))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1575, const char *__anonymous_object1576))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1577))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1578, const char *__anonymous_object1579))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1580))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1581))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1582, const char *__anonymous_object1583, unsigned long int __anonymous_object1584))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1585, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0)); 489 } 490 ((void)(((void)(_tmp_cp_ret8=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1586))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1587))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1588, _Bool __anonymous_object1589))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1590))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1591, const char *__anonymous_object1592))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1593))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1594, _Bool __anonymous_object1595))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1596))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1597))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1598))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1599))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1600))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1601, const char *__anonymous_object1602))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1603))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1604, const char *__anonymous_object1605))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1606))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1607))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1608, const char *__anonymous_object1609, unsigned long int __anonymous_object1610))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1611, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret7=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Uc__1(((_Bool (*)(void *__anonymous_object1612))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1613))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1614, _Bool __anonymous_object1615))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1616))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1617, const char *__anonymous_object1618))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1619))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1620, _Bool __anonymous_object1621))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1622))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1623))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1624))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1625))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1626))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1627, const char *__anonymous_object1628))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1629))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1630, const char *__anonymous_object1631))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1632))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1633))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1634, const char *__anonymous_object1635, unsigned long int __anonymous_object1636))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1637, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret6=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1638))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1639))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1640, _Bool __anonymous_object1641))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1642))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1643, const char *__anonymous_object1644))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1645))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1646, _Bool __anonymous_object1647))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1648))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1649))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1650))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1651))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1652))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1653, const char *__anonymous_object1654))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1655))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1656, const char *__anonymous_object1657))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1658))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1659))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1660, const char *__anonymous_object1661, unsigned long int __anonymous_object1662))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1663, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "unsigned char ")))) , _tmp_cp_ret6)), __v__Uc_1)))) , _tmp_cp_ret7)), ((void *(*)(void *__anonymous_object1664))(&_thunk2)))))) , _tmp_cp_ret8)); 494 491 } 495 492 void __f__F_s__1(signed short int __v__s_1){ … … 498 495 struct ofstream *_tmp_cp_ret11; 499 496 __attribute__ ((unused)) struct ofstream *_thunk3(struct ofstream *_p0){ 500 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object16 94))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1695))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1696, _Bool __anonymous_object1697))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1698))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1699, const char *__anonymous_object1700))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1701))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1702, _Bool __anonymous_object1703))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1704))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1705))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1706))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1707))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1708))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1709, const char *__anonymous_object1710))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1711))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1712, const char *__anonymous_object1713))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1714))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1715))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1716, const char *__anonymous_object1717, unsigned long int __anonymous_object1718))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1719, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));501 } 502 ((void)(((void)(_tmp_cp_ret11=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1 720))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1721))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1722, _Bool __anonymous_object1723))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1724))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1725, const char *__anonymous_object1726))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1727))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1728, _Bool __anonymous_object1729))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1730))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1731))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1732))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1733))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1734))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1735, const char *__anonymous_object1736))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1737))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1738, const char *__anonymous_object1739))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1740))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1741))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1742, const char *__anonymous_object1743, unsigned long int __anonymous_object1744))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1745, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret10=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0s__1(((_Bool (*)(void *__anonymous_object1746))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1747))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1748, _Bool __anonymous_object1749))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1750))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1751, const char *__anonymous_object1752))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1753))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1754, _Bool __anonymous_object1755))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1756))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1757))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1758))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1759))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1760))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1761, const char *__anonymous_object1762))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1763))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1764, const char *__anonymous_object1765))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1766))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1767))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1768, const char *__anonymous_object1769, unsigned long int __anonymous_object1770))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1771, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret9=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1772))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1773))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1774, _Bool __anonymous_object1775))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1776))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1777, const char *__anonymous_object1778))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1779))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1780, _Bool __anonymous_object1781))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1782))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1783))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1784))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1785))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1786))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1787, const char *__anonymous_object1788))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1789))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1790, const char *__anonymous_object1791))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1792))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1793))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1794, const char *__anonymous_object1795, unsigned long int __anonymous_object1796))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1797, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "signed short int")))) , _tmp_cp_ret9)), __v__s_1)))) , _tmp_cp_ret10)), ((void *(*)(void *__anonymous_object1798))(&_thunk3)))))) , _tmp_cp_ret11));497 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1665))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1666))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1667, _Bool __anonymous_object1668))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1669))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1670, const char *__anonymous_object1671))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1672))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1673, _Bool __anonymous_object1674))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1675))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1676))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1677))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1678))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1679))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1680, const char *__anonymous_object1681))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1682))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1683, const char *__anonymous_object1684))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1685))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1686))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1687, const char *__anonymous_object1688, unsigned long int __anonymous_object1689))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1690, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0)); 498 } 499 ((void)(((void)(_tmp_cp_ret11=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1691))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1692))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1693, _Bool __anonymous_object1694))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1695))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1696, const char *__anonymous_object1697))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1698))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1699, _Bool __anonymous_object1700))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1701))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1702))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1703))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1704))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1705))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1706, const char *__anonymous_object1707))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1708))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1709, const char *__anonymous_object1710))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1711))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1712))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1713, const char *__anonymous_object1714, unsigned long int __anonymous_object1715))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1716, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret10=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0s__1(((_Bool (*)(void *__anonymous_object1717))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1718))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1719, _Bool __anonymous_object1720))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1721))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1722, const char *__anonymous_object1723))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1724))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1725, _Bool __anonymous_object1726))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1727))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1728))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1729))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1730))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1731))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1732, const char *__anonymous_object1733))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1734))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1735, const char *__anonymous_object1736))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1737))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1738))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1739, const char *__anonymous_object1740, unsigned long int __anonymous_object1741))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1742, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret9=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1743))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1744))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1745, _Bool __anonymous_object1746))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1747))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1748, const char *__anonymous_object1749))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1750))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1751, _Bool __anonymous_object1752))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1753))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1754))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1755))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1756))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1757))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1758, const char *__anonymous_object1759))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1760))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1761, const char *__anonymous_object1762))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1763))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1764))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1765, const char *__anonymous_object1766, unsigned long int __anonymous_object1767))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1768, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "signed short int")))) , _tmp_cp_ret9)), __v__s_1)))) , _tmp_cp_ret10)), ((void *(*)(void *__anonymous_object1769))(&_thunk3)))))) , _tmp_cp_ret11)); 503 500 } 504 501 void __f__F_Us__1(unsigned short int __v__Us_1){ … … 507 504 struct ofstream *_tmp_cp_ret14; 508 505 __attribute__ ((unused)) struct ofstream *_thunk4(struct ofstream *_p0){ 509 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object17 99))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1800))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1801, _Bool __anonymous_object1802))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1803))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1804, const char *__anonymous_object1805))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1806))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1807, _Bool __anonymous_object1808))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1809))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1810))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1811))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1812))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1813))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1814, const char *__anonymous_object1815))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1816))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1817, const char *__anonymous_object1818))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1819))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1820))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1821, const char *__anonymous_object1822, unsigned long int __anonymous_object1823))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1824, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));510 } 511 ((void)(((void)(_tmp_cp_ret14=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1 825))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1826))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1827, _Bool __anonymous_object1828))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1829))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1830, const char *__anonymous_object1831))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1832))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1833, _Bool __anonymous_object1834))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1835))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1836))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1837))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1838))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1839))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1840, const char *__anonymous_object1841))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1842))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1843, const char *__anonymous_object1844))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1845))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1846))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1847, const char *__anonymous_object1848, unsigned long int __anonymous_object1849))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1850, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret13=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Us__1(((_Bool (*)(void *__anonymous_object1851))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1852))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1853, _Bool __anonymous_object1854))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1855))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1856, const char *__anonymous_object1857))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1858))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1859, _Bool __anonymous_object1860))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1861))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1862))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1863))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1864))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1865))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1866, const char *__anonymous_object1867))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1868))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1869, const char *__anonymous_object1870))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1871))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1872))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1873, const char *__anonymous_object1874, unsigned long int __anonymous_object1875))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1876, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret12=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1877))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1878))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1879, _Bool __anonymous_object1880))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1881))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1882, const char *__anonymous_object1883))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1884))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1885, _Bool __anonymous_object1886))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1887))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1888))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1889))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1890))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1891))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1892, const char *__anonymous_object1893))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1894))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1895, const char *__anonymous_object1896))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1897))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1898))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1899, const char *__anonymous_object1900, unsigned long int __anonymous_object1901))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1902, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "unsigned short int")))) , _tmp_cp_ret12)), __v__Us_1)))) , _tmp_cp_ret13)), ((void *(*)(void *__anonymous_object1903))(&_thunk4)))))) , _tmp_cp_ret14));506 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1770))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1771))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1772, _Bool __anonymous_object1773))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1774))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1775, const char *__anonymous_object1776))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1777))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1778, _Bool __anonymous_object1779))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1780))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1781))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1782))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1783))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1784))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1785, const char *__anonymous_object1786))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1787))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1788, const char *__anonymous_object1789))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1790))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1791))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1792, const char *__anonymous_object1793, unsigned long int __anonymous_object1794))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1795, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0)); 507 } 508 ((void)(((void)(_tmp_cp_ret14=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1796))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1797))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1798, _Bool __anonymous_object1799))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1800))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1801, const char *__anonymous_object1802))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1803))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1804, _Bool __anonymous_object1805))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1806))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1807))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1808))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1809))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1810))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1811, const char *__anonymous_object1812))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1813))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1814, const char *__anonymous_object1815))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1816))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1817))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1818, const char *__anonymous_object1819, unsigned long int __anonymous_object1820))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1821, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret13=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Us__1(((_Bool (*)(void *__anonymous_object1822))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1823))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1824, _Bool __anonymous_object1825))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1826))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1827, const char *__anonymous_object1828))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1829))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1830, _Bool __anonymous_object1831))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1832))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1833))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1834))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1835))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1836))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1837, const char *__anonymous_object1838))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1839))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1840, const char *__anonymous_object1841))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1842))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1843))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1844, const char *__anonymous_object1845, unsigned long int __anonymous_object1846))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1847, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret12=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1848))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1849))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1850, _Bool __anonymous_object1851))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1852))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1853, const char *__anonymous_object1854))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1855))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1856, _Bool __anonymous_object1857))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1858))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1859))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1860))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1861))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1862))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1863, const char *__anonymous_object1864))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1865))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1866, const char *__anonymous_object1867))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1868))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1869))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1870, const char *__anonymous_object1871, unsigned long int __anonymous_object1872))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1873, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "unsigned short int")))) , _tmp_cp_ret12)), __v__Us_1)))) , _tmp_cp_ret13)), ((void *(*)(void *__anonymous_object1874))(&_thunk4)))))) , _tmp_cp_ret14)); 512 509 } 513 510 void __f__F_Ul__1(unsigned long int __v__Ul_1){ … … 516 513 struct ofstream *_tmp_cp_ret17; 517 514 __attribute__ ((unused)) struct ofstream *_thunk5(struct ofstream *_p0){ 518 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1 904))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1905))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1906, _Bool __anonymous_object1907))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1908))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1909, const char *__anonymous_object1910))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1911))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1912, _Bool __anonymous_object1913))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1914))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1915))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1916))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1917))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1918))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1919, const char *__anonymous_object1920))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1921))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1922, const char *__anonymous_object1923))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1924))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1925))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1926, const char *__anonymous_object1927, unsigned long int __anonymous_object1928))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1929, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));519 } 520 ((void)(((void)(_tmp_cp_ret17=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object19 30))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1931))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1932, _Bool __anonymous_object1933))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1934))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1935, const char *__anonymous_object1936))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1937))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1938, _Bool __anonymous_object1939))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1940))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1941))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1942))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1943))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1944))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1945, const char *__anonymous_object1946))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1947))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1948, const char *__anonymous_object1949))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1950))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1951))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1952, const char *__anonymous_object1953, unsigned long int __anonymous_object1954))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1955, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret16=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Ul__1(((_Bool (*)(void *__anonymous_object1956))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1957))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1958, _Bool __anonymous_object1959))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1960))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1961, const char *__anonymous_object1962))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1963))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1964, _Bool __anonymous_object1965))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1966))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1967))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1968))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1969))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1970))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1971, const char *__anonymous_object1972))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1973))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1974, const char *__anonymous_object1975))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1976))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1977))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1978, const char *__anonymous_object1979, unsigned long int __anonymous_object1980))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1981, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret15=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1982))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1983))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1984, _Bool __anonymous_object1985))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1986))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1987, const char *__anonymous_object1988))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1989))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1990, _Bool __anonymous_object1991))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1992))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1993))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1994))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1995))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1996))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1997, const char *__anonymous_object1998))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1999))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object2000, const char *__anonymous_object2001))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object2002))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object2003))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object2004, const char *__anonymous_object2005, unsigned long int __anonymous_object2006))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object2007, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "size_t")))) , _tmp_cp_ret15)), __v__Ul_1)))) , _tmp_cp_ret16)), ((void *(*)(void *__anonymous_object2008))(&_thunk5)))))) , _tmp_cp_ret17));515 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1875))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1876))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1877, _Bool __anonymous_object1878))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1879))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1880, const char *__anonymous_object1881))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1882))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1883, _Bool __anonymous_object1884))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1885))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1886))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1887))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1888))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1889))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1890, const char *__anonymous_object1891))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1892))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1893, const char *__anonymous_object1894))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1895))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1896))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1897, const char *__anonymous_object1898, unsigned long int __anonymous_object1899))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1900, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0)); 516 } 517 ((void)(((void)(_tmp_cp_ret17=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1901))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1902))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1903, _Bool __anonymous_object1904))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1905))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1906, const char *__anonymous_object1907))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1908))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1909, _Bool __anonymous_object1910))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1911))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1912))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1913))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1914))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1915))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1916, const char *__anonymous_object1917))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1918))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1919, const char *__anonymous_object1920))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1921))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1922))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1923, const char *__anonymous_object1924, unsigned long int __anonymous_object1925))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1926, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret16=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Ul__1(((_Bool (*)(void *__anonymous_object1927))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1928))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1929, _Bool __anonymous_object1930))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1931))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1932, const char *__anonymous_object1933))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1934))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1935, _Bool __anonymous_object1936))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1937))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1938))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1939))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1940))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1941))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1942, const char *__anonymous_object1943))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1944))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1945, const char *__anonymous_object1946))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1947))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1948))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1949, const char *__anonymous_object1950, unsigned long int __anonymous_object1951))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1952, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret15=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1953))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1954))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1955, _Bool __anonymous_object1956))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1957))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1958, const char *__anonymous_object1959))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1960))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1961, _Bool __anonymous_object1962))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1963))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1964))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1965))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1966))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1967))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1968, const char *__anonymous_object1969))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1970))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1971, const char *__anonymous_object1972))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1973))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1974))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1975, const char *__anonymous_object1976, unsigned long int __anonymous_object1977))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1978, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "size_t")))) , _tmp_cp_ret15)), __v__Ul_1)))) , _tmp_cp_ret16)), ((void *(*)(void *__anonymous_object1979))(&_thunk5)))))) , _tmp_cp_ret17)); 521 518 } 522 519 signed int __main__Fi___1(){ -
src/tests/.expect/literals.x86.txt
r7416d46a rf792cb8 35 35 void __write__A0_3_0_0____operator_assign__PFd1_Rd1d1____constructor__PF_Rd1____constructor__PF_Rd1d1____destructor__PF_Rd1____operator_bitor__PFRd0_Rd0d1___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc____operator_assign__PFd2_Rd2d2____constructor__PF_Rd2____constructor__PF_Rd2d2____destructor__PF_Rd2____operator_preincr__PFd2_Rd2____operator_predecr__PFd2_Rd2____operator_equal__PFi_d2d2____operator_notequal__PFi_d2d2____operator_deref__PFRd1_d2__F_d2d2Rd0__1(__attribute__ ((unused)) void *(*_adapterFP9telt_type_14titerator_type_M_P)(void (*__anonymous_object992)(), void *__anonymous_object993), __attribute__ ((unused)) signed int (*_adapterFi_14titerator_type14titerator_type_M_PP)(void (*__anonymous_object994)(), void *__anonymous_object995, void *__anonymous_object996), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type_P_M)(void (*__anonymous_object997)(), __attribute__ ((unused)) void *___retval__operator_preincr__14titerator_type_1, void *__anonymous_object998), __attribute__ ((unused)) void (*_adapterF_P14titerator_type14titerator_type__MP)(void (*__anonymous_object999)(), void *__anonymous_object1000, void *__anonymous_object1001), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type14titerator_type_P_MP)(void (*__anonymous_object1002)(), __attribute__ ((unused)) void *___retval__operator_assign__14titerator_type_1, void *__anonymous_object1003, void *__anonymous_object1004), __attribute__ ((unused)) void *(*_adapterFP7tostype_P7tostype9telt_type_M_MP)(void (*__anonymous_object1005)(), void *__anonymous_object1006, void *__anonymous_object1007), __attribute__ ((unused)) void (*_adapterF_P9telt_type9telt_type__MP)(void (*__anonymous_object1008)(), void *__anonymous_object1009, void *__anonymous_object1010), __attribute__ ((unused)) void (*_adapterF9telt_type_P9telt_type9telt_type_P_MP)(void (*__anonymous_object1011)(), __attribute__ ((unused)) void *___retval__operator_assign__9telt_type_1, void *__anonymous_object1012, void *__anonymous_object1013), __attribute__ ((unused)) unsigned long int _sizeof_9telt_type, __attribute__ ((unused)) unsigned long int _alignof_9telt_type, __attribute__ ((unused)) unsigned long int _sizeof_14titerator_type, __attribute__ ((unused)) unsigned long int _alignof_14titerator_type, __attribute__ ((unused)) void *(*___operator_assign__PF9telt_type_R9telt_type9telt_type__1)(void *__anonymous_object1014, void *__anonymous_object1015), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type__1)(void *__anonymous_object1016), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type9telt_type__1)(void *__anonymous_object1017, void *__anonymous_object1018), __attribute__ ((unused)) void (*___destructor__PF_R9telt_type__1)(void *__anonymous_object1019), __attribute__ ((unused)) void *(*___operator_bitor__PFR7tostype_R7tostype9telt_type__1)(void *__anonymous_object1020, void *__anonymous_object1021), __attribute__ ((unused)) _Bool (*__sepPrt__PFb_R7tostype__1)(void *__anonymous_object1022), __attribute__ ((unused)) void (*__sepReset__PF_R7tostype__1)(void *__anonymous_object1023), __attribute__ ((unused)) void (*__sepReset__PF_R7tostypeb__1)(void *__anonymous_object1024, _Bool __anonymous_object1025), __attribute__ ((unused)) const char *(*__sepGetCur__PFPCc_R7tostype__1)(void *__anonymous_object1026), __attribute__ ((unused)) void (*__sepSetCur__PF_R7tostypePCc__1)(void *__anonymous_object1027, const char *__anonymous_object1028), __attribute__ ((unused)) _Bool (*__getNL__PFb_R7tostype__1)(void *__anonymous_object1029), __attribute__ ((unused)) void (*__setNL__PF_R7tostypeb__1)(void *__anonymous_object1030, _Bool __anonymous_object1031), __attribute__ ((unused)) void (*__sepOn__PF_R7tostype__1)(void *__anonymous_object1032), __attribute__ ((unused)) void (*__sepOff__PF_R7tostype__1)(void *__anonymous_object1033), __attribute__ ((unused)) _Bool (*__sepDisable__PFb_R7tostype__1)(void *__anonymous_object1034), __attribute__ ((unused)) _Bool (*__sepEnable__PFb_R7tostype__1)(void *__anonymous_object1035), __attribute__ ((unused)) const char *(*__sepGet__PFPCc_R7tostype__1)(void *__anonymous_object1036), __attribute__ ((unused)) void (*__sepSet__PF_R7tostypePCc__1)(void *__anonymous_object1037, const char *__anonymous_object1038), __attribute__ ((unused)) const char *(*__sepGetTuple__PFPCc_R7tostype__1)(void *__anonymous_object1039), __attribute__ ((unused)) void (*__sepSetTuple__PF_R7tostypePCc__1)(void *__anonymous_object1040, const char *__anonymous_object1041), __attribute__ ((unused)) signed int (*__fail__PFi_R7tostype__1)(void *__anonymous_object1042), __attribute__ ((unused)) signed int (*__flush__PFi_R7tostype__1)(void *__anonymous_object1043), __attribute__ ((unused)) void (*__open__PF_R7tostypePCcPCc__1)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tostype__1)(void *__os__R7tostype_1), __attribute__ ((unused)) void *(*__write__PFR7tostype_R7tostypePCcUl__1)(void *__anonymous_object1044, const char *__anonymous_object1045, unsigned long int __anonymous_object1046), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tostypePCc__1)(void *__anonymous_object1047, const char *__fmt__PCc_1, ...), __attribute__ ((unused)) void *(*___operator_assign__PF14titerator_type_R14titerator_type14titerator_type__1)(void *__anonymous_object1048, void *__anonymous_object1049), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type__1)(void *__anonymous_object1050), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type14titerator_type__1)(void *__anonymous_object1051, void *__anonymous_object1052), __attribute__ ((unused)) void (*___destructor__PF_R14titerator_type__1)(void *__anonymous_object1053), __attribute__ ((unused)) void *(*___operator_preincr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object1054), __attribute__ ((unused)) void *(*___operator_predecr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object1055), __attribute__ ((unused)) signed int (*___operator_equal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object1056, void *__anonymous_object1057), __attribute__ ((unused)) signed int (*___operator_notequal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object1058, void *__anonymous_object1059), __attribute__ ((unused)) void *(*___operator_deref__PFR9telt_type_14titerator_type__1)(void *__anonymous_object1060), void *__begin__14titerator_type_1, void *__end__14titerator_type_1, void *__os__R7tostype_1); 36 36 void __write_reverse__A0_3_0_0____operator_assign__PFd1_Rd1d1____constructor__PF_Rd1____constructor__PF_Rd1d1____destructor__PF_Rd1____operator_bitor__PFRd0_Rd0d1___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc____operator_assign__PFd2_Rd2d2____constructor__PF_Rd2____constructor__PF_Rd2d2____destructor__PF_Rd2____operator_preincr__PFd2_Rd2____operator_predecr__PFd2_Rd2____operator_equal__PFi_d2d2____operator_notequal__PFi_d2d2____operator_deref__PFRd1_d2__F_d2d2Rd0__1(__attribute__ ((unused)) void *(*_adapterFP9telt_type_14titerator_type_M_P)(void (*__anonymous_object1061)(), void *__anonymous_object1062), __attribute__ ((unused)) signed int (*_adapterFi_14titerator_type14titerator_type_M_PP)(void (*__anonymous_object1063)(), void *__anonymous_object1064, void *__anonymous_object1065), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type_P_M)(void (*__anonymous_object1066)(), __attribute__ ((unused)) void *___retval__operator_preincr__14titerator_type_1, void *__anonymous_object1067), __attribute__ ((unused)) void (*_adapterF_P14titerator_type14titerator_type__MP)(void (*__anonymous_object1068)(), void *__anonymous_object1069, void *__anonymous_object1070), __attribute__ ((unused)) void (*_adapterF14titerator_type_P14titerator_type14titerator_type_P_MP)(void (*__anonymous_object1071)(), __attribute__ ((unused)) void *___retval__operator_assign__14titerator_type_1, void *__anonymous_object1072, void *__anonymous_object1073), __attribute__ ((unused)) void *(*_adapterFP7tostype_P7tostype9telt_type_M_MP)(void (*__anonymous_object1074)(), void *__anonymous_object1075, void *__anonymous_object1076), __attribute__ ((unused)) void (*_adapterF_P9telt_type9telt_type__MP)(void (*__anonymous_object1077)(), void *__anonymous_object1078, void *__anonymous_object1079), __attribute__ ((unused)) void (*_adapterF9telt_type_P9telt_type9telt_type_P_MP)(void (*__anonymous_object1080)(), __attribute__ ((unused)) void *___retval__operator_assign__9telt_type_1, void *__anonymous_object1081, void *__anonymous_object1082), __attribute__ ((unused)) unsigned long int _sizeof_9telt_type, __attribute__ ((unused)) unsigned long int _alignof_9telt_type, __attribute__ ((unused)) unsigned long int _sizeof_14titerator_type, __attribute__ ((unused)) unsigned long int _alignof_14titerator_type, __attribute__ ((unused)) void *(*___operator_assign__PF9telt_type_R9telt_type9telt_type__1)(void *__anonymous_object1083, void *__anonymous_object1084), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type__1)(void *__anonymous_object1085), __attribute__ ((unused)) void (*___constructor__PF_R9telt_type9telt_type__1)(void *__anonymous_object1086, void *__anonymous_object1087), __attribute__ ((unused)) void (*___destructor__PF_R9telt_type__1)(void *__anonymous_object1088), __attribute__ ((unused)) void *(*___operator_bitor__PFR7tostype_R7tostype9telt_type__1)(void *__anonymous_object1089, void *__anonymous_object1090), __attribute__ ((unused)) _Bool (*__sepPrt__PFb_R7tostype__1)(void *__anonymous_object1091), __attribute__ ((unused)) void (*__sepReset__PF_R7tostype__1)(void *__anonymous_object1092), __attribute__ ((unused)) void (*__sepReset__PF_R7tostypeb__1)(void *__anonymous_object1093, _Bool __anonymous_object1094), __attribute__ ((unused)) const char *(*__sepGetCur__PFPCc_R7tostype__1)(void *__anonymous_object1095), __attribute__ ((unused)) void (*__sepSetCur__PF_R7tostypePCc__1)(void *__anonymous_object1096, const char *__anonymous_object1097), __attribute__ ((unused)) _Bool (*__getNL__PFb_R7tostype__1)(void *__anonymous_object1098), __attribute__ ((unused)) void (*__setNL__PF_R7tostypeb__1)(void *__anonymous_object1099, _Bool __anonymous_object1100), __attribute__ ((unused)) void (*__sepOn__PF_R7tostype__1)(void *__anonymous_object1101), __attribute__ ((unused)) void (*__sepOff__PF_R7tostype__1)(void *__anonymous_object1102), __attribute__ ((unused)) _Bool (*__sepDisable__PFb_R7tostype__1)(void *__anonymous_object1103), __attribute__ ((unused)) _Bool (*__sepEnable__PFb_R7tostype__1)(void *__anonymous_object1104), __attribute__ ((unused)) const char *(*__sepGet__PFPCc_R7tostype__1)(void *__anonymous_object1105), __attribute__ ((unused)) void (*__sepSet__PF_R7tostypePCc__1)(void *__anonymous_object1106, const char *__anonymous_object1107), __attribute__ ((unused)) const char *(*__sepGetTuple__PFPCc_R7tostype__1)(void *__anonymous_object1108), __attribute__ ((unused)) void (*__sepSetTuple__PF_R7tostypePCc__1)(void *__anonymous_object1109, const char *__anonymous_object1110), __attribute__ ((unused)) signed int (*__fail__PFi_R7tostype__1)(void *__anonymous_object1111), __attribute__ ((unused)) signed int (*__flush__PFi_R7tostype__1)(void *__anonymous_object1112), __attribute__ ((unused)) void (*__open__PF_R7tostypePCcPCc__1)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tostype__1)(void *__os__R7tostype_1), __attribute__ ((unused)) void *(*__write__PFR7tostype_R7tostypePCcUl__1)(void *__anonymous_object1113, const char *__anonymous_object1114, unsigned long int __anonymous_object1115), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tostypePCc__1)(void *__anonymous_object1116, const char *__fmt__PCc_1, ...), __attribute__ ((unused)) void *(*___operator_assign__PF14titerator_type_R14titerator_type14titerator_type__1)(void *__anonymous_object1117, void *__anonymous_object1118), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type__1)(void *__anonymous_object1119), __attribute__ ((unused)) void (*___constructor__PF_R14titerator_type14titerator_type__1)(void *__anonymous_object1120, void *__anonymous_object1121), __attribute__ ((unused)) void (*___destructor__PF_R14titerator_type__1)(void *__anonymous_object1122), __attribute__ ((unused)) void *(*___operator_preincr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object1123), __attribute__ ((unused)) void *(*___operator_predecr__PF14titerator_type_R14titerator_type__1)(void *__anonymous_object1124), __attribute__ ((unused)) signed int (*___operator_equal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object1125, void *__anonymous_object1126), __attribute__ ((unused)) signed int (*___operator_notequal__PFi_14titerator_type14titerator_type__1)(void *__anonymous_object1127, void *__anonymous_object1128), __attribute__ ((unused)) void *(*___operator_deref__PFR9telt_type_14titerator_type__1)(void *__anonymous_object1129), void *__begin__14titerator_type_1, void *__end__14titerator_type_1, void *__os__R7tostype_1); 37 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rb__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1130), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1131), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1132, char *__anonymous_object1133, unsigned long int __anonymous_object1134), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1135, char __anonymous_object1136), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1137, const char *__fmt__PCc_1, ...), void *__anonymous_object1138, _Bool *__anonymous_object1139); 38 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rc__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1140), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1141), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1142, char *__anonymous_object1143, unsigned long int __anonymous_object1144), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1145, char __anonymous_object1146), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1147, const char *__fmt__PCc_1, ...), void *__anonymous_object1148, char *__anonymous_object1149); 39 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RSc__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1150), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1151), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1152, char *__anonymous_object1153, unsigned long int __anonymous_object1154), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1155, char __anonymous_object1156), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1157, const char *__fmt__PCc_1, ...), void *__anonymous_object1158, signed char *__anonymous_object1159); 40 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUc__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1160), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1161), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1162, char *__anonymous_object1163, unsigned long int __anonymous_object1164), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1165, char __anonymous_object1166), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1167, const char *__fmt__PCc_1, ...), void *__anonymous_object1168, unsigned char *__anonymous_object1169); 41 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rs__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1170), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1171), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1172, char *__anonymous_object1173, unsigned long int __anonymous_object1174), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1175, char __anonymous_object1176), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1177, const char *__fmt__PCc_1, ...), void *__anonymous_object1178, signed short int *__anonymous_object1179); 42 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUs__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1180), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1181), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1182, char *__anonymous_object1183, unsigned long int __anonymous_object1184), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1185, char __anonymous_object1186), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1187, const char *__fmt__PCc_1, ...), void *__anonymous_object1188, unsigned short int *__anonymous_object1189); 43 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Ri__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1190), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1191), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1192, char *__anonymous_object1193, unsigned long int __anonymous_object1194), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1195, char __anonymous_object1196), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1197, const char *__fmt__PCc_1, ...), void *__anonymous_object1198, signed int *__anonymous_object1199); 44 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUi__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1200), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1201), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1202, char *__anonymous_object1203, unsigned long int __anonymous_object1204), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1205, char __anonymous_object1206), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1207, const char *__fmt__PCc_1, ...), void *__anonymous_object1208, unsigned int *__anonymous_object1209); 45 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rl__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1210), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1211), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1212, char *__anonymous_object1213, unsigned long int __anonymous_object1214), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1215, char __anonymous_object1216), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1217, const char *__fmt__PCc_1, ...), void *__anonymous_object1218, signed long int *__anonymous_object1219); 46 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rq__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1220), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1221), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1222, char *__anonymous_object1223, unsigned long int __anonymous_object1224), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1225, char __anonymous_object1226), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1227, const char *__fmt__PCc_1, ...), void *__anonymous_object1228, signed long long int *__anonymous_object1229); 47 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUl__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1230), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1231), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1232, char *__anonymous_object1233, unsigned long int __anonymous_object1234), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1235, char __anonymous_object1236), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1237, const char *__fmt__PCc_1, ...), void *__anonymous_object1238, unsigned long int *__anonymous_object1239); 48 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUq__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1240), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1241), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1242, char *__anonymous_object1243, unsigned long int __anonymous_object1244), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1245, char __anonymous_object1246), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1247, const char *__fmt__PCc_1, ...), void *__anonymous_object1248, unsigned long long int *__anonymous_object1249); 49 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rf__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1250), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1251), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1252, char *__anonymous_object1253, unsigned long int __anonymous_object1254), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1255, char __anonymous_object1256), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1257, const char *__fmt__PCc_1, ...), void *__anonymous_object1258, float *__anonymous_object1259); 50 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rd__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1260), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1261), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1262, char *__anonymous_object1263, unsigned long int __anonymous_object1264), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1265, char __anonymous_object1266), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1267, const char *__fmt__PCc_1, ...), void *__anonymous_object1268, double *__anonymous_object1269); 51 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rr__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1270), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1271), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1272, char *__anonymous_object1273, unsigned long int __anonymous_object1274), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1275, char __anonymous_object1276), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1277, const char *__fmt__PCc_1, ...), void *__anonymous_object1278, long double *__anonymous_object1279); 52 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RXf__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1280), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1281), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1282, char *__anonymous_object1283, unsigned long int __anonymous_object1284), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1285, char __anonymous_object1286), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1287, const char *__fmt__PCc_1, ...), void *__anonymous_object1288, float _Complex *__anonymous_object1289); 53 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RXd__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1290), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1291), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1292, char *__anonymous_object1293, unsigned long int __anonymous_object1294), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1295, char __anonymous_object1296), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1297, const char *__fmt__PCc_1, ...), void *__anonymous_object1298, double _Complex *__anonymous_object1299); 54 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RXr__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1300), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1301), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1302, char *__anonymous_object1303, unsigned long int __anonymous_object1304), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1305, char __anonymous_object1306), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1307, const char *__fmt__PCc_1, ...), void *__anonymous_object1308, long double _Complex *__anonymous_object1309); 55 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1310), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1311), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1312, char *__anonymous_object1313, unsigned long int __anonymous_object1314), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1315, char __anonymous_object1316), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1317, const char *__fmt__PCc_1, ...), void *__anonymous_object1318, void *(*__anonymous_object1319)(void *__anonymous_object1320)); 56 void *__endl__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1321), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1322), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1323, char *__anonymous_object1324, unsigned long int __anonymous_object1325), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1326, char __anonymous_object1327), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1328, const char *__fmt__PCc_1, ...), void *__is__R7tistype_1); 37 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rc__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1130), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1131), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1132, char *__anonymous_object1133, unsigned long int __anonymous_object1134), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1135, char __anonymous_object1136), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1137, const char *__fmt__PCc_1, ...), void *__anonymous_object1138, char *__anonymous_object1139); 38 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RSc__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1140), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1141), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1142, char *__anonymous_object1143, unsigned long int __anonymous_object1144), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1145, char __anonymous_object1146), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1147, const char *__fmt__PCc_1, ...), void *__anonymous_object1148, signed char *__anonymous_object1149); 39 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUc__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1150), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1151), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1152, char *__anonymous_object1153, unsigned long int __anonymous_object1154), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1155, char __anonymous_object1156), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1157, const char *__fmt__PCc_1, ...), void *__anonymous_object1158, unsigned char *__anonymous_object1159); 40 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rs__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1160), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1161), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1162, char *__anonymous_object1163, unsigned long int __anonymous_object1164), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1165, char __anonymous_object1166), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1167, const char *__fmt__PCc_1, ...), void *__anonymous_object1168, signed short int *__anonymous_object1169); 41 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUs__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1170), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1171), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1172, char *__anonymous_object1173, unsigned long int __anonymous_object1174), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1175, char __anonymous_object1176), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1177, const char *__fmt__PCc_1, ...), void *__anonymous_object1178, unsigned short int *__anonymous_object1179); 42 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Ri__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1180), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1181), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1182, char *__anonymous_object1183, unsigned long int __anonymous_object1184), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1185, char __anonymous_object1186), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1187, const char *__fmt__PCc_1, ...), void *__anonymous_object1188, signed int *__anonymous_object1189); 43 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUi__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1190), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1191), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1192, char *__anonymous_object1193, unsigned long int __anonymous_object1194), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1195, char __anonymous_object1196), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1197, const char *__fmt__PCc_1, ...), void *__anonymous_object1198, unsigned int *__anonymous_object1199); 44 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rl__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1200), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1201), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1202, char *__anonymous_object1203, unsigned long int __anonymous_object1204), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1205, char __anonymous_object1206), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1207, const char *__fmt__PCc_1, ...), void *__anonymous_object1208, signed long int *__anonymous_object1209); 45 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rq__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1210), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1211), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1212, char *__anonymous_object1213, unsigned long int __anonymous_object1214), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1215, char __anonymous_object1216), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1217, const char *__fmt__PCc_1, ...), void *__anonymous_object1218, signed long long int *__anonymous_object1219); 46 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUl__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1220), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1221), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1222, char *__anonymous_object1223, unsigned long int __anonymous_object1224), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1225, char __anonymous_object1226), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1227, const char *__fmt__PCc_1, ...), void *__anonymous_object1228, unsigned long int *__anonymous_object1229); 47 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RUq__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1230), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1231), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1232, char *__anonymous_object1233, unsigned long int __anonymous_object1234), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1235, char __anonymous_object1236), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1237, const char *__fmt__PCc_1, ...), void *__anonymous_object1238, unsigned long long int *__anonymous_object1239); 48 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rf__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1240), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1241), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1242, char *__anonymous_object1243, unsigned long int __anonymous_object1244), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1245, char __anonymous_object1246), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1247, const char *__fmt__PCc_1, ...), void *__anonymous_object1248, float *__anonymous_object1249); 49 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rd__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1250), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1251), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1252, char *__anonymous_object1253, unsigned long int __anonymous_object1254), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1255, char __anonymous_object1256), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1257, const char *__fmt__PCc_1, ...), void *__anonymous_object1258, double *__anonymous_object1259); 50 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0Rr__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1260), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1261), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1262, char *__anonymous_object1263, unsigned long int __anonymous_object1264), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1265, char __anonymous_object1266), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1267, const char *__fmt__PCc_1, ...), void *__anonymous_object1268, long double *__anonymous_object1269); 51 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RXf__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1270), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1271), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1272, char *__anonymous_object1273, unsigned long int __anonymous_object1274), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1275, char __anonymous_object1276), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1277, const char *__fmt__PCc_1, ...), void *__anonymous_object1278, float _Complex *__anonymous_object1279); 52 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RXd__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1280), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1281), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1282, char *__anonymous_object1283, unsigned long int __anonymous_object1284), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1285, char __anonymous_object1286), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1287, const char *__fmt__PCc_1, ...), void *__anonymous_object1288, double _Complex *__anonymous_object1289); 53 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd0RXr__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1290), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1291), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1292, char *__anonymous_object1293, unsigned long int __anonymous_object1294), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1295, char __anonymous_object1296), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1297, const char *__fmt__PCc_1, ...), void *__anonymous_object1298, long double _Complex *__anonymous_object1299); 57 54 struct _Istream_cstrUC { 58 55 char *__s__Pc_1; … … 81 78 ((void)((*___dst__R16s_Istream_cstrUC_1).__s__Pc_1=__s__Pc_1) /* ?{} */); 82 79 } 83 struct _Istream_cstrUC __cstr__F16s_Istream_cstrUC_Pc__1(char *__anonymous_object13 29);84 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd016s_Istream_cstrUC__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object13 30), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1331), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1332, char *__anonymous_object1333, unsigned long int __anonymous_object1334), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1335, char __anonymous_object1336), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1337, const char *__fmt__PCc_1, ...), void *__anonymous_object1338, struct _Istream_cstrUC __anonymous_object1339);80 struct _Istream_cstrUC __cstr__F16s_Istream_cstrUC_Pc__1(char *__anonymous_object1300); 81 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd016s_Istream_cstrUC__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1301), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1302), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1303, char *__anonymous_object1304, unsigned long int __anonymous_object1305), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1306, char __anonymous_object1307), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1308, const char *__fmt__PCc_1, ...), void *__anonymous_object1309, struct _Istream_cstrUC __anonymous_object1310); 85 82 struct _Istream_cstrC { 86 83 char *__s__Pc_1; … … 120 117 ((void)((*___dst__R15s_Istream_cstrC_1).__size__i_1=__size__i_1) /* ?{} */); 121 118 } 122 struct _Istream_cstrC __cstr__F15s_Istream_cstrC_Pci__1(char *__anonymous_object13 40, signed int __size__i_1);123 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd015s_Istream_cstrC__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object13 41), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1342), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1343, char *__anonymous_object1344, unsigned long int __anonymous_object1345), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1346, char __anonymous_object1347), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1348, const char *__fmt__PCc_1, ...), void *__anonymous_object1349, struct _Istream_cstrC __anonymous_object1350);119 struct _Istream_cstrC __cstr__F15s_Istream_cstrC_Pci__1(char *__anonymous_object1311, signed int __size__i_1); 120 void *___operator_bitor__A0_1_0_0___fail__PFi_Rd0___eof__PFi_Rd0___open__PF_Rd0PCc___close__PF_Rd0___read__PFRd0_Rd0PcUl___ungetc__PFRd0_Rd0c___fmt__PFi_Rd0PCc__FRd0_Rd015s_Istream_cstrC__1(__attribute__ ((unused)) signed int (*__fail__PFi_R7tistype__1)(void *__anonymous_object1312), __attribute__ ((unused)) signed int (*__eof__PFi_R7tistype__1)(void *__anonymous_object1313), __attribute__ ((unused)) void (*__open__PF_R7tistypePCc__1)(void *__is__R7tistype_1, const char *__name__PCc_1), __attribute__ ((unused)) void (*__close__PF_R7tistype__1)(void *__is__R7tistype_1), __attribute__ ((unused)) void *(*__read__PFR7tistype_R7tistypePcUl__1)(void *__anonymous_object1314, char *__anonymous_object1315, unsigned long int __anonymous_object1316), __attribute__ ((unused)) void *(*__ungetc__PFR7tistype_R7tistypec__1)(void *__anonymous_object1317, char __anonymous_object1318), __attribute__ ((unused)) signed int (*__fmt__PFi_R7tistypePCc__1)(void *__anonymous_object1319, const char *__fmt__PCc_1, ...), void *__anonymous_object1320, struct _Istream_cstrC __anonymous_object1321); 124 121 enum __anonymous0 { 125 122 __sepSize__C13e__anonymous0_1 = 16, … … 401 398 402 399 } 403 _Bool __sepPrt__Fb_R9sofstream__1(struct ofstream *__anonymous_object13 51);404 void __sepReset__F_R9sofstream__1(struct ofstream *__anonymous_object13 52);405 void __sepReset__F_R9sofstreamb__1(struct ofstream *__anonymous_object13 53, _Bool __anonymous_object1354);406 const char *__sepGetCur__FPCc_R9sofstream__1(struct ofstream *__anonymous_object13 55);407 void __sepSetCur__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object13 56, const char *__anonymous_object1357);408 _Bool __getNL__Fb_R9sofstream__1(struct ofstream *__anonymous_object13 58);409 void __setNL__F_R9sofstreamb__1(struct ofstream *__anonymous_object13 59, _Bool __anonymous_object1360);410 void __sepOn__F_R9sofstream__1(struct ofstream *__anonymous_object13 61);411 void __sepOff__F_R9sofstream__1(struct ofstream *__anonymous_object13 62);412 _Bool __sepDisable__Fb_R9sofstream__1(struct ofstream *__anonymous_object13 63);413 _Bool __sepEnable__Fb_R9sofstream__1(struct ofstream *__anonymous_object13 64);414 const char *__sepGet__FPCc_R9sofstream__1(struct ofstream *__anonymous_object13 65);415 void __sepSet__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object13 66, const char *__anonymous_object1367);416 const char *__sepGetTuple__FPCc_R9sofstream__1(struct ofstream *__anonymous_object13 68);417 void __sepSetTuple__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object13 69, const char *__anonymous_object1370);418 signed int __fail__Fi_R9sofstream__1(struct ofstream *__anonymous_object13 71);419 signed int __flush__Fi_R9sofstream__1(struct ofstream *__anonymous_object13 72);420 void __open__F_R9sofstreamPCcPCc__1(struct ofstream *__anonymous_object13 73, const char *__name__PCc_1, const char *__mode__PCc_1);421 void __open__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object13 74, const char *__name__PCc_1);422 void __close__F_R9sofstream__1(struct ofstream *__anonymous_object13 75);423 struct ofstream *__write__FR9sofstream_R9sofstreamPCcUl__1(struct ofstream *__anonymous_object13 76, const char *__data__PCc_1, unsigned long int __size__Ul_1);424 signed int __fmt__Fi_R9sofstreamPCc__1(struct ofstream *__anonymous_object13 77, const char *__fmt__PCc_1, ...);400 _Bool __sepPrt__Fb_R9sofstream__1(struct ofstream *__anonymous_object1322); 401 void __sepReset__F_R9sofstream__1(struct ofstream *__anonymous_object1323); 402 void __sepReset__F_R9sofstreamb__1(struct ofstream *__anonymous_object1324, _Bool __anonymous_object1325); 403 const char *__sepGetCur__FPCc_R9sofstream__1(struct ofstream *__anonymous_object1326); 404 void __sepSetCur__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object1327, const char *__anonymous_object1328); 405 _Bool __getNL__Fb_R9sofstream__1(struct ofstream *__anonymous_object1329); 406 void __setNL__F_R9sofstreamb__1(struct ofstream *__anonymous_object1330, _Bool __anonymous_object1331); 407 void __sepOn__F_R9sofstream__1(struct ofstream *__anonymous_object1332); 408 void __sepOff__F_R9sofstream__1(struct ofstream *__anonymous_object1333); 409 _Bool __sepDisable__Fb_R9sofstream__1(struct ofstream *__anonymous_object1334); 410 _Bool __sepEnable__Fb_R9sofstream__1(struct ofstream *__anonymous_object1335); 411 const char *__sepGet__FPCc_R9sofstream__1(struct ofstream *__anonymous_object1336); 412 void __sepSet__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object1337, const char *__anonymous_object1338); 413 const char *__sepGetTuple__FPCc_R9sofstream__1(struct ofstream *__anonymous_object1339); 414 void __sepSetTuple__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object1340, const char *__anonymous_object1341); 415 signed int __fail__Fi_R9sofstream__1(struct ofstream *__anonymous_object1342); 416 signed int __flush__Fi_R9sofstream__1(struct ofstream *__anonymous_object1343); 417 void __open__F_R9sofstreamPCcPCc__1(struct ofstream *__anonymous_object1344, const char *__name__PCc_1, const char *__mode__PCc_1); 418 void __open__F_R9sofstreamPCc__1(struct ofstream *__anonymous_object1345, const char *__name__PCc_1); 419 void __close__F_R9sofstream__1(struct ofstream *__anonymous_object1346); 420 struct ofstream *__write__FR9sofstream_R9sofstreamPCcUl__1(struct ofstream *__anonymous_object1347, const char *__data__PCc_1, unsigned long int __size__Ul_1); 421 signed int __fmt__Fi_R9sofstreamPCc__1(struct ofstream *__anonymous_object1348, const char *__fmt__PCc_1, ...); 425 422 void ___constructor__F_R9sofstream__1(struct ofstream *__os__R9sofstream_1); 426 423 void ___constructor__F_R9sofstreamPCcPCc__1(struct ofstream *__os__R9sofstream_1, const char *__name__PCc_1, const char *__mode__PCc_1); … … 461 458 struct ifstream *__read__FR9sifstream_R9sifstreamPcUl__1(struct ifstream *__is__R9sifstream_1, char *__data__Pc_1, unsigned long int __size__Ul_1); 462 459 struct ifstream *__ungetc__FR9sifstream_R9sifstreamc__1(struct ifstream *__is__R9sifstream_1, char __c__c_1); 463 signed int __fmt__Fi_R9sifstreamPCc__1(struct ifstream *__anonymous_object13 78, const char *__fmt__PCc_1, ...);460 signed int __fmt__Fi_R9sifstreamPCc__1(struct ifstream *__anonymous_object1349, const char *__fmt__PCc_1, ...); 464 461 void ___constructor__F_R9sifstream__1(struct ifstream *__is__R9sifstream_1); 465 462 void ___constructor__F_R9sifstreamPCcPCc__1(struct ifstream *__is__R9sifstream_1, const char *__name__PCc_1, const char *__mode__PCc_1); … … 471 468 struct ofstream *_tmp_cp_ret2; 472 469 __attribute__ ((unused)) struct ofstream *_thunk0(struct ofstream *_p0){ 473 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object13 79))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1380))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1381, _Bool __anonymous_object1382))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1383))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1384, const char *__anonymous_object1385))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1386))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1387, _Bool __anonymous_object1388))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1389))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1390))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1391))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1392))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1393))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1394, const char *__anonymous_object1395))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1396))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1397, const char *__anonymous_object1398))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1399))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1400))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1401, const char *__anonymous_object1402, unsigned long int __anonymous_object1403))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1404, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));474 } 475 ((void)(((void)(_tmp_cp_ret2=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1 405))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1406))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1407, _Bool __anonymous_object1408))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1409))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1410, const char *__anonymous_object1411))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1412))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1413, _Bool __anonymous_object1414))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1415))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1416))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1417))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1418))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1419))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1420, const char *__anonymous_object1421))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1422))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1423, const char *__anonymous_object1424))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1425))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1426))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1427, const char *__anonymous_object1428, unsigned long int __anonymous_object1429))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1430, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret1=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0c__1(((_Bool (*)(void *__anonymous_object1431))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1432))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1433, _Bool __anonymous_object1434))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1435))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1436, const char *__anonymous_object1437))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1438))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1439, _Bool __anonymous_object1440))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1441))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1442))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1443))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1444))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1445))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1446, const char *__anonymous_object1447))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1448))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1449, const char *__anonymous_object1450))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1451))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1452))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1453, const char *__anonymous_object1454, unsigned long int __anonymous_object1455))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1456, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret0=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1457))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1458))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1459, _Bool __anonymous_object1460))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1461))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1462, const char *__anonymous_object1463))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1464))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1465, _Bool __anonymous_object1466))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1467))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1468))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1469))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1470))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1471))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1472, const char *__anonymous_object1473))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1474))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1475, const char *__anonymous_object1476))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1477))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1478))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1479, const char *__anonymous_object1480, unsigned long int __anonymous_object1481))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1482, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "char ")))) , _tmp_cp_ret0)), __v__c_1)))) , _tmp_cp_ret1)), ((void *(*)(void *__anonymous_object1483))(&_thunk0)))))) , _tmp_cp_ret2));470 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1350))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1351))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1352, _Bool __anonymous_object1353))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1354))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1355, const char *__anonymous_object1356))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1357))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1358, _Bool __anonymous_object1359))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1360))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1361))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1362))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1363))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1364))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1365, const char *__anonymous_object1366))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1367))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1368, const char *__anonymous_object1369))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1370))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1371))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1372, const char *__anonymous_object1373, unsigned long int __anonymous_object1374))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1375, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0)); 471 } 472 ((void)(((void)(_tmp_cp_ret2=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1376))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1377))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1378, _Bool __anonymous_object1379))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1380))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1381, const char *__anonymous_object1382))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1383))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1384, _Bool __anonymous_object1385))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1386))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1387))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1388))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1389))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1390))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1391, const char *__anonymous_object1392))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1393))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1394, const char *__anonymous_object1395))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1396))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1397))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1398, const char *__anonymous_object1399, unsigned long int __anonymous_object1400))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1401, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret1=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0c__1(((_Bool (*)(void *__anonymous_object1402))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1403))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1404, _Bool __anonymous_object1405))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1406))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1407, const char *__anonymous_object1408))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1409))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1410, _Bool __anonymous_object1411))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1412))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1413))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1414))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1415))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1416))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1417, const char *__anonymous_object1418))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1419))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1420, const char *__anonymous_object1421))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1422))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1423))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1424, const char *__anonymous_object1425, unsigned long int __anonymous_object1426))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1427, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret0=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1428))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1429))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1430, _Bool __anonymous_object1431))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1432))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1433, const char *__anonymous_object1434))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1435))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1436, _Bool __anonymous_object1437))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1438))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1439))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1440))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1441))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1442))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1443, const char *__anonymous_object1444))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1445))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1446, const char *__anonymous_object1447))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1448))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1449))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1450, const char *__anonymous_object1451, unsigned long int __anonymous_object1452))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1453, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "char ")))) , _tmp_cp_ret0)), __v__c_1)))) , _tmp_cp_ret1)), ((void *(*)(void *__anonymous_object1454))(&_thunk0)))))) , _tmp_cp_ret2)); 476 473 } 477 474 void __f__F_Sc__1(signed char __v__Sc_1){ … … 480 477 struct ofstream *_tmp_cp_ret5; 481 478 __attribute__ ((unused)) struct ofstream *_thunk1(struct ofstream *_p0){ 482 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object14 84))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1485))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1486, _Bool __anonymous_object1487))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1488))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1489, const char *__anonymous_object1490))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1491))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1492, _Bool __anonymous_object1493))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1494))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1495))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1496))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1497))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1498))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1499, const char *__anonymous_object1500))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1501))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1502, const char *__anonymous_object1503))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1504))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1505))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1506, const char *__anonymous_object1507, unsigned long int __anonymous_object1508))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1509, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));483 } 484 ((void)(((void)(_tmp_cp_ret5=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1 510))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1511))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1512, _Bool __anonymous_object1513))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1514))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1515, const char *__anonymous_object1516))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1517))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1518, _Bool __anonymous_object1519))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1520))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1521))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1522))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1523))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1524))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1525, const char *__anonymous_object1526))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1527))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1528, const char *__anonymous_object1529))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1530))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1531))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1532, const char *__anonymous_object1533, unsigned long int __anonymous_object1534))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1535, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret4=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Sc__1(((_Bool (*)(void *__anonymous_object1536))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1537))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1538, _Bool __anonymous_object1539))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1540))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1541, const char *__anonymous_object1542))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1543))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1544, _Bool __anonymous_object1545))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1546))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1547))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1548))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1549))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1550))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1551, const char *__anonymous_object1552))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1553))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1554, const char *__anonymous_object1555))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1556))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1557))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1558, const char *__anonymous_object1559, unsigned long int __anonymous_object1560))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1561, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret3=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1562))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1563))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1564, _Bool __anonymous_object1565))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1566))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1567, const char *__anonymous_object1568))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1569))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1570, _Bool __anonymous_object1571))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1572))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1573))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1574))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1575))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1576))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1577, const char *__anonymous_object1578))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1579))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1580, const char *__anonymous_object1581))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1582))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1583))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1584, const char *__anonymous_object1585, unsigned long int __anonymous_object1586))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1587, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "signed char ")))) , _tmp_cp_ret3)), __v__Sc_1)))) , _tmp_cp_ret4)), ((void *(*)(void *__anonymous_object1588))(&_thunk1)))))) , _tmp_cp_ret5));479 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1455))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1456))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1457, _Bool __anonymous_object1458))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1459))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1460, const char *__anonymous_object1461))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1462))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1463, _Bool __anonymous_object1464))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1465))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1466))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1467))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1468))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1469))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1470, const char *__anonymous_object1471))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1472))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1473, const char *__anonymous_object1474))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1475))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1476))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1477, const char *__anonymous_object1478, unsigned long int __anonymous_object1479))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1480, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0)); 480 } 481 ((void)(((void)(_tmp_cp_ret5=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1481))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1482))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1483, _Bool __anonymous_object1484))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1485))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1486, const char *__anonymous_object1487))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1488))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1489, _Bool __anonymous_object1490))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1491))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1492))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1493))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1494))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1495))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1496, const char *__anonymous_object1497))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1498))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1499, const char *__anonymous_object1500))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1501))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1502))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1503, const char *__anonymous_object1504, unsigned long int __anonymous_object1505))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1506, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret4=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Sc__1(((_Bool (*)(void *__anonymous_object1507))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1508))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1509, _Bool __anonymous_object1510))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1511))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1512, const char *__anonymous_object1513))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1514))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1515, _Bool __anonymous_object1516))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1517))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1518))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1519))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1520))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1521))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1522, const char *__anonymous_object1523))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1524))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1525, const char *__anonymous_object1526))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1527))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1528))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1529, const char *__anonymous_object1530, unsigned long int __anonymous_object1531))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1532, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret3=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1533))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1534))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1535, _Bool __anonymous_object1536))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1537))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1538, const char *__anonymous_object1539))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1540))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1541, _Bool __anonymous_object1542))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1543))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1544))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1545))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1546))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1547))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1548, const char *__anonymous_object1549))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1550))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1551, const char *__anonymous_object1552))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1553))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1554))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1555, const char *__anonymous_object1556, unsigned long int __anonymous_object1557))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1558, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "signed char ")))) , _tmp_cp_ret3)), __v__Sc_1)))) , _tmp_cp_ret4)), ((void *(*)(void *__anonymous_object1559))(&_thunk1)))))) , _tmp_cp_ret5)); 485 482 } 486 483 void __f__F_Uc__1(unsigned char __v__Uc_1){ … … 489 486 struct ofstream *_tmp_cp_ret8; 490 487 __attribute__ ((unused)) struct ofstream *_thunk2(struct ofstream *_p0){ 491 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object15 89))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1590))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1591, _Bool __anonymous_object1592))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1593))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1594, const char *__anonymous_object1595))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1596))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1597, _Bool __anonymous_object1598))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1599))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1600))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1601))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1602))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1603))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1604, const char *__anonymous_object1605))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1606))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1607, const char *__anonymous_object1608))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1609))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1610))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1611, const char *__anonymous_object1612, unsigned long int __anonymous_object1613))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1614, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));492 } 493 ((void)(((void)(_tmp_cp_ret8=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1 615))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1616))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1617, _Bool __anonymous_object1618))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1619))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1620, const char *__anonymous_object1621))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1622))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1623, _Bool __anonymous_object1624))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1625))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1626))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1627))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1628))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1629))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1630, const char *__anonymous_object1631))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1632))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1633, const char *__anonymous_object1634))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1635))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1636))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1637, const char *__anonymous_object1638, unsigned long int __anonymous_object1639))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1640, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret7=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Uc__1(((_Bool (*)(void *__anonymous_object1641))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1642))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1643, _Bool __anonymous_object1644))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1645))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1646, const char *__anonymous_object1647))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1648))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1649, _Bool __anonymous_object1650))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1651))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1652))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1653))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1654))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1655))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1656, const char *__anonymous_object1657))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1658))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1659, const char *__anonymous_object1660))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1661))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1662))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1663, const char *__anonymous_object1664, unsigned long int __anonymous_object1665))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1666, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret6=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1667))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1668))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1669, _Bool __anonymous_object1670))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1671))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1672, const char *__anonymous_object1673))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1674))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1675, _Bool __anonymous_object1676))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1677))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1678))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1679))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1680))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1681))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1682, const char *__anonymous_object1683))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1684))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1685, const char *__anonymous_object1686))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1687))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1688))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1689, const char *__anonymous_object1690, unsigned long int __anonymous_object1691))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1692, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "unsigned char ")))) , _tmp_cp_ret6)), __v__Uc_1)))) , _tmp_cp_ret7)), ((void *(*)(void *__anonymous_object1693))(&_thunk2)))))) , _tmp_cp_ret8));488 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1560))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1561))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1562, _Bool __anonymous_object1563))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1564))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1565, const char *__anonymous_object1566))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1567))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1568, _Bool __anonymous_object1569))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1570))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1571))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1572))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1573))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1574))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1575, const char *__anonymous_object1576))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1577))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1578, const char *__anonymous_object1579))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1580))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1581))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1582, const char *__anonymous_object1583, unsigned long int __anonymous_object1584))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1585, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0)); 489 } 490 ((void)(((void)(_tmp_cp_ret8=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1586))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1587))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1588, _Bool __anonymous_object1589))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1590))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1591, const char *__anonymous_object1592))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1593))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1594, _Bool __anonymous_object1595))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1596))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1597))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1598))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1599))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1600))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1601, const char *__anonymous_object1602))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1603))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1604, const char *__anonymous_object1605))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1606))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1607))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1608, const char *__anonymous_object1609, unsigned long int __anonymous_object1610))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1611, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret7=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Uc__1(((_Bool (*)(void *__anonymous_object1612))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1613))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1614, _Bool __anonymous_object1615))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1616))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1617, const char *__anonymous_object1618))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1619))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1620, _Bool __anonymous_object1621))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1622))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1623))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1624))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1625))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1626))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1627, const char *__anonymous_object1628))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1629))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1630, const char *__anonymous_object1631))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1632))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1633))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1634, const char *__anonymous_object1635, unsigned long int __anonymous_object1636))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1637, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret6=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1638))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1639))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1640, _Bool __anonymous_object1641))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1642))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1643, const char *__anonymous_object1644))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1645))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1646, _Bool __anonymous_object1647))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1648))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1649))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1650))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1651))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1652))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1653, const char *__anonymous_object1654))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1655))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1656, const char *__anonymous_object1657))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1658))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1659))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1660, const char *__anonymous_object1661, unsigned long int __anonymous_object1662))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1663, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "unsigned char ")))) , _tmp_cp_ret6)), __v__Uc_1)))) , _tmp_cp_ret7)), ((void *(*)(void *__anonymous_object1664))(&_thunk2)))))) , _tmp_cp_ret8)); 494 491 } 495 492 void __f__F_s__1(signed short int __v__s_1){ … … 498 495 struct ofstream *_tmp_cp_ret11; 499 496 __attribute__ ((unused)) struct ofstream *_thunk3(struct ofstream *_p0){ 500 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object16 94))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1695))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1696, _Bool __anonymous_object1697))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1698))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1699, const char *__anonymous_object1700))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1701))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1702, _Bool __anonymous_object1703))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1704))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1705))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1706))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1707))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1708))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1709, const char *__anonymous_object1710))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1711))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1712, const char *__anonymous_object1713))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1714))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1715))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1716, const char *__anonymous_object1717, unsigned long int __anonymous_object1718))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1719, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));501 } 502 ((void)(((void)(_tmp_cp_ret11=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1 720))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1721))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1722, _Bool __anonymous_object1723))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1724))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1725, const char *__anonymous_object1726))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1727))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1728, _Bool __anonymous_object1729))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1730))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1731))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1732))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1733))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1734))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1735, const char *__anonymous_object1736))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1737))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1738, const char *__anonymous_object1739))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1740))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1741))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1742, const char *__anonymous_object1743, unsigned long int __anonymous_object1744))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1745, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret10=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0s__1(((_Bool (*)(void *__anonymous_object1746))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1747))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1748, _Bool __anonymous_object1749))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1750))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1751, const char *__anonymous_object1752))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1753))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1754, _Bool __anonymous_object1755))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1756))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1757))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1758))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1759))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1760))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1761, const char *__anonymous_object1762))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1763))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1764, const char *__anonymous_object1765))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1766))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1767))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1768, const char *__anonymous_object1769, unsigned long int __anonymous_object1770))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1771, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret9=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1772))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1773))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1774, _Bool __anonymous_object1775))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1776))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1777, const char *__anonymous_object1778))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1779))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1780, _Bool __anonymous_object1781))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1782))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1783))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1784))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1785))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1786))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1787, const char *__anonymous_object1788))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1789))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1790, const char *__anonymous_object1791))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1792))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1793))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1794, const char *__anonymous_object1795, unsigned long int __anonymous_object1796))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1797, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "signed short int")))) , _tmp_cp_ret9)), __v__s_1)))) , _tmp_cp_ret10)), ((void *(*)(void *__anonymous_object1798))(&_thunk3)))))) , _tmp_cp_ret11));497 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1665))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1666))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1667, _Bool __anonymous_object1668))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1669))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1670, const char *__anonymous_object1671))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1672))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1673, _Bool __anonymous_object1674))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1675))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1676))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1677))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1678))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1679))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1680, const char *__anonymous_object1681))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1682))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1683, const char *__anonymous_object1684))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1685))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1686))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1687, const char *__anonymous_object1688, unsigned long int __anonymous_object1689))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1690, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0)); 498 } 499 ((void)(((void)(_tmp_cp_ret11=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1691))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1692))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1693, _Bool __anonymous_object1694))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1695))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1696, const char *__anonymous_object1697))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1698))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1699, _Bool __anonymous_object1700))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1701))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1702))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1703))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1704))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1705))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1706, const char *__anonymous_object1707))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1708))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1709, const char *__anonymous_object1710))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1711))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1712))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1713, const char *__anonymous_object1714, unsigned long int __anonymous_object1715))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1716, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret10=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0s__1(((_Bool (*)(void *__anonymous_object1717))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1718))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1719, _Bool __anonymous_object1720))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1721))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1722, const char *__anonymous_object1723))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1724))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1725, _Bool __anonymous_object1726))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1727))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1728))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1729))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1730))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1731))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1732, const char *__anonymous_object1733))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1734))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1735, const char *__anonymous_object1736))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1737))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1738))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1739, const char *__anonymous_object1740, unsigned long int __anonymous_object1741))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1742, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret9=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1743))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1744))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1745, _Bool __anonymous_object1746))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1747))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1748, const char *__anonymous_object1749))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1750))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1751, _Bool __anonymous_object1752))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1753))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1754))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1755))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1756))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1757))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1758, const char *__anonymous_object1759))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1760))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1761, const char *__anonymous_object1762))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1763))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1764))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1765, const char *__anonymous_object1766, unsigned long int __anonymous_object1767))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1768, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "signed short int")))) , _tmp_cp_ret9)), __v__s_1)))) , _tmp_cp_ret10)), ((void *(*)(void *__anonymous_object1769))(&_thunk3)))))) , _tmp_cp_ret11)); 503 500 } 504 501 void __f__F_Us__1(unsigned short int __v__Us_1){ … … 507 504 struct ofstream *_tmp_cp_ret14; 508 505 __attribute__ ((unused)) struct ofstream *_thunk4(struct ofstream *_p0){ 509 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object17 99))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1800))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1801, _Bool __anonymous_object1802))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1803))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1804, const char *__anonymous_object1805))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1806))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1807, _Bool __anonymous_object1808))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1809))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1810))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1811))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1812))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1813))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1814, const char *__anonymous_object1815))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1816))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1817, const char *__anonymous_object1818))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1819))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1820))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1821, const char *__anonymous_object1822, unsigned long int __anonymous_object1823))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1824, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));510 } 511 ((void)(((void)(_tmp_cp_ret14=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1 825))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1826))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1827, _Bool __anonymous_object1828))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1829))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1830, const char *__anonymous_object1831))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1832))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1833, _Bool __anonymous_object1834))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1835))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1836))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1837))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1838))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1839))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1840, const char *__anonymous_object1841))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1842))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1843, const char *__anonymous_object1844))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1845))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1846))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1847, const char *__anonymous_object1848, unsigned long int __anonymous_object1849))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1850, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret13=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Us__1(((_Bool (*)(void *__anonymous_object1851))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1852))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1853, _Bool __anonymous_object1854))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1855))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1856, const char *__anonymous_object1857))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1858))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1859, _Bool __anonymous_object1860))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1861))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1862))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1863))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1864))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1865))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1866, const char *__anonymous_object1867))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1868))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1869, const char *__anonymous_object1870))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1871))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1872))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1873, const char *__anonymous_object1874, unsigned long int __anonymous_object1875))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1876, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret12=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1877))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1878))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1879, _Bool __anonymous_object1880))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1881))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1882, const char *__anonymous_object1883))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1884))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1885, _Bool __anonymous_object1886))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1887))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1888))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1889))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1890))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1891))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1892, const char *__anonymous_object1893))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1894))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1895, const char *__anonymous_object1896))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1897))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1898))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1899, const char *__anonymous_object1900, unsigned long int __anonymous_object1901))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1902, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "unsigned short int")))) , _tmp_cp_ret12)), __v__Us_1)))) , _tmp_cp_ret13)), ((void *(*)(void *__anonymous_object1903))(&_thunk4)))))) , _tmp_cp_ret14));506 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1770))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1771))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1772, _Bool __anonymous_object1773))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1774))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1775, const char *__anonymous_object1776))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1777))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1778, _Bool __anonymous_object1779))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1780))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1781))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1782))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1783))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1784))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1785, const char *__anonymous_object1786))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1787))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1788, const char *__anonymous_object1789))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1790))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1791))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1792, const char *__anonymous_object1793, unsigned long int __anonymous_object1794))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1795, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0)); 507 } 508 ((void)(((void)(_tmp_cp_ret14=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1796))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1797))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1798, _Bool __anonymous_object1799))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1800))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1801, const char *__anonymous_object1802))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1803))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1804, _Bool __anonymous_object1805))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1806))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1807))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1808))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1809))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1810))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1811, const char *__anonymous_object1812))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1813))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1814, const char *__anonymous_object1815))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1816))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1817))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1818, const char *__anonymous_object1819, unsigned long int __anonymous_object1820))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1821, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret13=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Us__1(((_Bool (*)(void *__anonymous_object1822))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1823))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1824, _Bool __anonymous_object1825))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1826))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1827, const char *__anonymous_object1828))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1829))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1830, _Bool __anonymous_object1831))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1832))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1833))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1834))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1835))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1836))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1837, const char *__anonymous_object1838))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1839))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1840, const char *__anonymous_object1841))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1842))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1843))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1844, const char *__anonymous_object1845, unsigned long int __anonymous_object1846))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1847, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret12=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1848))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1849))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1850, _Bool __anonymous_object1851))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1852))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1853, const char *__anonymous_object1854))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1855))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1856, _Bool __anonymous_object1857))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1858))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1859))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1860))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1861))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1862))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1863, const char *__anonymous_object1864))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1865))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1866, const char *__anonymous_object1867))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1868))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1869))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1870, const char *__anonymous_object1871, unsigned long int __anonymous_object1872))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1873, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "unsigned short int")))) , _tmp_cp_ret12)), __v__Us_1)))) , _tmp_cp_ret13)), ((void *(*)(void *__anonymous_object1874))(&_thunk4)))))) , _tmp_cp_ret14)); 512 509 } 513 510 void __f__F_Ui__1(unsigned int __v__Ui_1){ … … 516 513 struct ofstream *_tmp_cp_ret17; 517 514 __attribute__ ((unused)) struct ofstream *_thunk5(struct ofstream *_p0){ 518 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1 904))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1905))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1906, _Bool __anonymous_object1907))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1908))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1909, const char *__anonymous_object1910))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1911))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1912, _Bool __anonymous_object1913))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1914))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1915))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1916))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1917))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1918))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1919, const char *__anonymous_object1920))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1921))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1922, const char *__anonymous_object1923))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1924))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1925))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1926, const char *__anonymous_object1927, unsigned long int __anonymous_object1928))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1929, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0));519 } 520 ((void)(((void)(_tmp_cp_ret17=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object19 30))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1931))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1932, _Bool __anonymous_object1933))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1934))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1935, const char *__anonymous_object1936))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1937))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1938, _Bool __anonymous_object1939))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1940))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1941))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1942))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1943))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1944))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1945, const char *__anonymous_object1946))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1947))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1948, const char *__anonymous_object1949))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1950))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1951))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1952, const char *__anonymous_object1953, unsigned long int __anonymous_object1954))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1955, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret16=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Ui__1(((_Bool (*)(void *__anonymous_object1956))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1957))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1958, _Bool __anonymous_object1959))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1960))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1961, const char *__anonymous_object1962))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1963))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1964, _Bool __anonymous_object1965))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1966))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1967))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1968))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1969))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1970))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1971, const char *__anonymous_object1972))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1973))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1974, const char *__anonymous_object1975))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1976))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1977))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1978, const char *__anonymous_object1979, unsigned long int __anonymous_object1980))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1981, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret15=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1982))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1983))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1984, _Bool __anonymous_object1985))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1986))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1987, const char *__anonymous_object1988))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1989))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1990, _Bool __anonymous_object1991))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1992))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1993))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1994))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1995))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1996))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1997, const char *__anonymous_object1998))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1999))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object2000, const char *__anonymous_object2001))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object2002))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object2003))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object2004, const char *__anonymous_object2005, unsigned long int __anonymous_object2006))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object2007, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "size_t")))) , _tmp_cp_ret15)), __v__Ui_1)))) , _tmp_cp_ret16)), ((void *(*)(void *__anonymous_object2008))(&_thunk5)))))) , _tmp_cp_ret17));515 return __endl__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0__1(((_Bool (*)(void *__anonymous_object1875))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1876))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1877, _Bool __anonymous_object1878))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1879))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1880, const char *__anonymous_object1881))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1882))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1883, _Bool __anonymous_object1884))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1885))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1886))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1887))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1888))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1889))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1890, const char *__anonymous_object1891))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1892))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1893, const char *__anonymous_object1894))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1895))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1896))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1897, const char *__anonymous_object1898, unsigned long int __anonymous_object1899))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1900, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)_p0)); 516 } 517 ((void)(((void)(_tmp_cp_ret17=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PFRd0_Rd0___1(((_Bool (*)(void *__anonymous_object1901))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1902))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1903, _Bool __anonymous_object1904))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1905))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1906, const char *__anonymous_object1907))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1908))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1909, _Bool __anonymous_object1910))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1911))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1912))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1913))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1914))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1915))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1916, const char *__anonymous_object1917))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1918))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1919, const char *__anonymous_object1920))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1921))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1922))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1923, const char *__anonymous_object1924, unsigned long int __anonymous_object1925))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1926, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret16=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0Ui__1(((_Bool (*)(void *__anonymous_object1927))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1928))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1929, _Bool __anonymous_object1930))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1931))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1932, const char *__anonymous_object1933))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1934))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1935, _Bool __anonymous_object1936))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1937))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1938))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1939))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1940))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1941))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1942, const char *__anonymous_object1943))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1944))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1945, const char *__anonymous_object1946))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1947))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1948))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1949, const char *__anonymous_object1950, unsigned long int __anonymous_object1951))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1952, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)(((void)(_tmp_cp_ret15=((struct ofstream *)___operator_bitor__A0_1_0_0___sepPrt__PFb_Rd0___sepReset__PF_Rd0___sepReset__PF_Rd0b___sepGetCur__PFPCc_Rd0___sepSetCur__PF_Rd0PCc___getNL__PFb_Rd0___setNL__PF_Rd0b___sepOn__PF_Rd0___sepOff__PF_Rd0___sepDisable__PFb_Rd0___sepEnable__PFb_Rd0___sepGet__PFPCc_Rd0___sepSet__PF_Rd0PCc___sepGetTuple__PFPCc_Rd0___sepSetTuple__PF_Rd0PCc___fail__PFi_Rd0___flush__PFi_Rd0___open__PF_Rd0PCcPCc___close__PF_Rd0___write__PFRd0_Rd0PCcUl___fmt__PFi_Rd0PCc__FRd0_Rd0PCc__1(((_Bool (*)(void *__anonymous_object1953))__sepPrt__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1954))__sepReset__F_R9sofstream__1), ((void (*)(void *__anonymous_object1955, _Bool __anonymous_object1956))__sepReset__F_R9sofstreamb__1), ((const char *(*)(void *__anonymous_object1957))__sepGetCur__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1958, const char *__anonymous_object1959))__sepSetCur__F_R9sofstreamPCc__1), ((_Bool (*)(void *__anonymous_object1960))__getNL__Fb_R9sofstream__1), ((void (*)(void *__anonymous_object1961, _Bool __anonymous_object1962))__setNL__F_R9sofstreamb__1), ((void (*)(void *__anonymous_object1963))__sepOn__F_R9sofstream__1), ((void (*)(void *__anonymous_object1964))__sepOff__F_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1965))__sepDisable__Fb_R9sofstream__1), ((_Bool (*)(void *__anonymous_object1966))__sepEnable__Fb_R9sofstream__1), ((const char *(*)(void *__anonymous_object1967))__sepGet__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1968, const char *__anonymous_object1969))__sepSet__F_R9sofstreamPCc__1), ((const char *(*)(void *__anonymous_object1970))__sepGetTuple__FPCc_R9sofstream__1), ((void (*)(void *__anonymous_object1971, const char *__anonymous_object1972))__sepSetTuple__F_R9sofstreamPCc__1), ((signed int (*)(void *__anonymous_object1973))__fail__Fi_R9sofstream__1), ((signed int (*)(void *__anonymous_object1974))__flush__Fi_R9sofstream__1), ((void (*)(void *__os__R7tostype_1, const char *__name__PCc_1, const char *__mode__PCc_1))__open__F_R9sofstreamPCcPCc__1), ((void (*)(void *__os__R7tostype_1))__close__F_R9sofstream__1), ((void *(*)(void *__anonymous_object1975, const char *__anonymous_object1976, unsigned long int __anonymous_object1977))__write__FR9sofstream_R9sofstreamPCcUl__1), ((signed int (*)(void *__anonymous_object1978, const char *__fmt__PCc_1, ...))__fmt__Fi_R9sofstreamPCc__1), ((void *)__sout__R9sofstream_1), "size_t")))) , _tmp_cp_ret15)), __v__Ui_1)))) , _tmp_cp_ret16)), ((void *(*)(void *__anonymous_object1979))(&_thunk5)))))) , _tmp_cp_ret17)); 521 518 } 522 519 signed int __main__Fi___1(){ -
src/tests/.expect/sum.txt
r7416d46a rf792cb8 4 4 sum from 0.5 to 1.5 is 9.5, check 9.5 5 5 sum from 5 to 15 is 95 95, check 95 95 6 sum from 5 to 15 is 95, check 95 -
src/tests/Makefile.am
r7416d46a rf792cb8 17 17 debug=yes 18 18 19 quick_test= avl_test operators numericConstants expression enum array typeof cast dtor-early-exit init_once attributes19 quick_test=vector_test avl_test operators numericConstants expression enum array typeof cast dtor-early-exit init_once attributes 20 20 21 21 if BUILD_CONCURRENCY … … 44 44 45 45 .PHONY : list 46 EXTRA_PROGRAMS = fstream_test avl_test # build but do not install46 EXTRA_PROGRAMS = fstream_test vector_test avl_test # build but do not install 47 47 48 48 fstream_test_SOURCES = fstream_test.c 49 49 fstream_test_CFLAGS = $(if $(test), 2>> $(test), ) ${BUILD_FLAGS} 50 51 vector_test_SOURCES = vector/vector_int.c vector/array.c vector/vector_test.c 52 vector_test_CFLAGS = $(if $(test), 2>> $(test), ) ${BUILD_FLAGS} 50 53 51 54 avl_test_SOURCES = avltree/avl_test.c avltree/avl0.c avltree/avl1.c avltree/avl2.c avltree/avl3.c avltree/avl4.c avltree/avl-private.c … … 73 76 % : %.c @CFA_BINDIR@/@CFA_NAME@ 74 77 ${CC} ${AM_CFLAGS} ${CFLAGS} ${<} -o ${@} 78 79 dtor-early-exit-ERR1: dtor-early-exit.c @CFA_BINDIR@/@CFA_NAME@ 80 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@} 81 82 dtor-early-exit-ERR2: dtor-early-exit.c @CFA_BINDIR@/@CFA_NAME@ 83 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR2 ${<} -o ${@} 75 84 76 85 declarationSpecifier: declarationSpecifier.c @CFA_BINDIR@/@CFA_NAME@ … … 101 110 ${CC} ${AM_CFLAGS} ${CFLAGS} -lgmp ${<} -o ${@} 102 111 112 memberCtors-ERR1: memberCtors.c @CFA_BINDIR@/@CFA_NAME@ 113 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@} 114 115 ctor-autogen-ERR1: ctor-autogen.c @CFA_BINDIR@/@CFA_NAME@ 116 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@} 117 103 118 completeTypeError : completeTypeError.c @CFA_BINDIR@/@CFA_NAME@ 104 119 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@} … … 109 124 alloc-ERROR: alloc.c @CFA_BINDIR@/@CFA_NAME@ 110 125 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@} 111 112 # Constructor/destructor tests113 raii/dtor-early-exit-ERR1: raii/dtor-early-exit.c @CFA_BINDIR@/@CFA_NAME@114 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}115 116 raii/dtor-early-exit-ERR2: raii/dtor-early-exit.c @CFA_BINDIR@/@CFA_NAME@117 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR2 ${<} -o ${@}118 119 raii/memberCtors-ERR1: raii/memberCtors.c @CFA_BINDIR@/@CFA_NAME@120 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}121 122 raii/ctor-autogen-ERR1: raii/ctor-autogen.c @CFA_BINDIR@/@CFA_NAME@123 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}124 -
src/tests/Makefile.in
r7416d46a rf792cb8 94 94 @BUILD_DEBUG_TRUE@@BUILD_RELEASE_FALSE@am__append_2 = -debug 95 95 @BUILD_DEBUG_TRUE@@BUILD_RELEASE_TRUE@am__append_3 = ${DEBUG_FLAGS} 96 EXTRA_PROGRAMS = fstream_test$(EXEEXT) avl_test$(EXEEXT) 96 EXTRA_PROGRAMS = fstream_test$(EXEEXT) vector_test$(EXEEXT) \ 97 avl_test$(EXEEXT) 97 98 subdir = src/tests 98 99 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 … … 121 122 fstream_test_LDADD = $(LDADD) 122 123 fstream_test_LINK = $(CCLD) $(fstream_test_CFLAGS) $(CFLAGS) \ 124 $(AM_LDFLAGS) $(LDFLAGS) -o $@ 125 am_vector_test_OBJECTS = vector/vector_test-vector_int.$(OBJEXT) \ 126 vector/vector_test-array.$(OBJEXT) \ 127 vector/vector_test-vector_test.$(OBJEXT) 128 vector_test_OBJECTS = $(am_vector_test_OBJECTS) 129 vector_test_LDADD = $(LDADD) 130 vector_test_LINK = $(CCLD) $(vector_test_CFLAGS) $(CFLAGS) \ 123 131 $(AM_LDFLAGS) $(LDFLAGS) -o $@ 124 132 AM_V_P = $(am__v_P_@AM_V@) … … 154 162 am__v_CCLD_0 = @echo " CCLD " $@; 155 163 am__v_CCLD_1 = 156 SOURCES = $(avl_test_SOURCES) $(fstream_test_SOURCES) 157 DIST_SOURCES = $(avl_test_SOURCES) $(fstream_test_SOURCES) 164 SOURCES = $(avl_test_SOURCES) $(fstream_test_SOURCES) \ 165 $(vector_test_SOURCES) 166 DIST_SOURCES = $(avl_test_SOURCES) $(fstream_test_SOURCES) \ 167 $(vector_test_SOURCES) 158 168 am__can_run_installinfo = \ 159 169 case $$AM_UPDATE_INFO_DIR in \ … … 303 313 top_srcdir = @top_srcdir@ 304 314 debug = yes 305 quick_test = avl_test operators numericConstants expression enum array typeof cast dtor-early-exit init_once attributes315 quick_test = vector_test avl_test operators numericConstants expression enum array typeof cast dtor-early-exit init_once attributes 306 316 @BUILD_CONCURRENCY_FALSE@concurrent = '-Econcurrent' 307 317 @BUILD_CONCURRENCY_TRUE@concurrent = … … 315 325 fstream_test_SOURCES = fstream_test.c 316 326 fstream_test_CFLAGS = $(if $(test), 2>> $(test), ) ${BUILD_FLAGS} 327 vector_test_SOURCES = vector/vector_int.c vector/array.c vector/vector_test.c 328 vector_test_CFLAGS = $(if $(test), 2>> $(test), ) ${BUILD_FLAGS} 317 329 avl_test_SOURCES = avltree/avl_test.c avltree/avl0.c avltree/avl1.c avltree/avl2.c avltree/avl3.c avltree/avl4.c avltree/avl-private.c 318 330 avl_test_CFLAGS = $(if $(test), 2>> $(test), ) ${BUILD_FLAGS} … … 378 390 @rm -f fstream_test$(EXEEXT) 379 391 $(AM_V_CCLD)$(fstream_test_LINK) $(fstream_test_OBJECTS) $(fstream_test_LDADD) $(LIBS) 392 vector/$(am__dirstamp): 393 @$(MKDIR_P) vector 394 @: > vector/$(am__dirstamp) 395 vector/$(DEPDIR)/$(am__dirstamp): 396 @$(MKDIR_P) vector/$(DEPDIR) 397 @: > vector/$(DEPDIR)/$(am__dirstamp) 398 vector/vector_test-vector_int.$(OBJEXT): vector/$(am__dirstamp) \ 399 vector/$(DEPDIR)/$(am__dirstamp) 400 vector/vector_test-array.$(OBJEXT): vector/$(am__dirstamp) \ 401 vector/$(DEPDIR)/$(am__dirstamp) 402 vector/vector_test-vector_test.$(OBJEXT): vector/$(am__dirstamp) \ 403 vector/$(DEPDIR)/$(am__dirstamp) 404 405 vector_test$(EXEEXT): $(vector_test_OBJECTS) $(vector_test_DEPENDENCIES) $(EXTRA_vector_test_DEPENDENCIES) 406 @rm -f vector_test$(EXEEXT) 407 $(AM_V_CCLD)$(vector_test_LINK) $(vector_test_OBJECTS) $(vector_test_LDADD) $(LIBS) 380 408 381 409 mostlyclean-compile: 382 410 -rm -f *.$(OBJEXT) 383 411 -rm -f avltree/*.$(OBJEXT) 412 -rm -f vector/*.$(OBJEXT) 384 413 385 414 distclean-compile: … … 394 423 @AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl_test-avl4.Po@am__quote@ 395 424 @AMDEP_TRUE@@am__include@ @am__quote@avltree/$(DEPDIR)/avl_test-avl_test.Po@am__quote@ 425 @AMDEP_TRUE@@am__include@ @am__quote@vector/$(DEPDIR)/vector_test-array.Po@am__quote@ 426 @AMDEP_TRUE@@am__include@ @am__quote@vector/$(DEPDIR)/vector_test-vector_int.Po@am__quote@ 427 @AMDEP_TRUE@@am__include@ @am__quote@vector/$(DEPDIR)/vector_test-vector_test.Po@am__quote@ 396 428 397 429 .c.o: … … 522 554 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 523 555 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fstream_test_CFLAGS) $(CFLAGS) -c -o fstream_test-fstream_test.obj `if test -f 'fstream_test.c'; then $(CYGPATH_W) 'fstream_test.c'; else $(CYGPATH_W) '$(srcdir)/fstream_test.c'; fi` 556 557 vector/vector_test-vector_int.o: vector/vector_int.c 558 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vector_test_CFLAGS) $(CFLAGS) -MT vector/vector_test-vector_int.o -MD -MP -MF vector/$(DEPDIR)/vector_test-vector_int.Tpo -c -o vector/vector_test-vector_int.o `test -f 'vector/vector_int.c' || echo '$(srcdir)/'`vector/vector_int.c 559 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vector/$(DEPDIR)/vector_test-vector_int.Tpo vector/$(DEPDIR)/vector_test-vector_int.Po 560 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vector/vector_int.c' object='vector/vector_test-vector_int.o' libtool=no @AMDEPBACKSLASH@ 561 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 562 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vector_test_CFLAGS) $(CFLAGS) -c -o vector/vector_test-vector_int.o `test -f 'vector/vector_int.c' || echo '$(srcdir)/'`vector/vector_int.c 563 564 vector/vector_test-vector_int.obj: vector/vector_int.c 565 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vector_test_CFLAGS) $(CFLAGS) -MT vector/vector_test-vector_int.obj -MD -MP -MF vector/$(DEPDIR)/vector_test-vector_int.Tpo -c -o vector/vector_test-vector_int.obj `if test -f 'vector/vector_int.c'; then $(CYGPATH_W) 'vector/vector_int.c'; else $(CYGPATH_W) '$(srcdir)/vector/vector_int.c'; fi` 566 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vector/$(DEPDIR)/vector_test-vector_int.Tpo vector/$(DEPDIR)/vector_test-vector_int.Po 567 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vector/vector_int.c' object='vector/vector_test-vector_int.obj' libtool=no @AMDEPBACKSLASH@ 568 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 569 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vector_test_CFLAGS) $(CFLAGS) -c -o vector/vector_test-vector_int.obj `if test -f 'vector/vector_int.c'; then $(CYGPATH_W) 'vector/vector_int.c'; else $(CYGPATH_W) '$(srcdir)/vector/vector_int.c'; fi` 570 571 vector/vector_test-array.o: vector/array.c 572 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vector_test_CFLAGS) $(CFLAGS) -MT vector/vector_test-array.o -MD -MP -MF vector/$(DEPDIR)/vector_test-array.Tpo -c -o vector/vector_test-array.o `test -f 'vector/array.c' || echo '$(srcdir)/'`vector/array.c 573 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vector/$(DEPDIR)/vector_test-array.Tpo vector/$(DEPDIR)/vector_test-array.Po 574 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vector/array.c' object='vector/vector_test-array.o' libtool=no @AMDEPBACKSLASH@ 575 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 576 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vector_test_CFLAGS) $(CFLAGS) -c -o vector/vector_test-array.o `test -f 'vector/array.c' || echo '$(srcdir)/'`vector/array.c 577 578 vector/vector_test-array.obj: vector/array.c 579 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vector_test_CFLAGS) $(CFLAGS) -MT vector/vector_test-array.obj -MD -MP -MF vector/$(DEPDIR)/vector_test-array.Tpo -c -o vector/vector_test-array.obj `if test -f 'vector/array.c'; then $(CYGPATH_W) 'vector/array.c'; else $(CYGPATH_W) '$(srcdir)/vector/array.c'; fi` 580 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vector/$(DEPDIR)/vector_test-array.Tpo vector/$(DEPDIR)/vector_test-array.Po 581 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vector/array.c' object='vector/vector_test-array.obj' libtool=no @AMDEPBACKSLASH@ 582 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 583 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vector_test_CFLAGS) $(CFLAGS) -c -o vector/vector_test-array.obj `if test -f 'vector/array.c'; then $(CYGPATH_W) 'vector/array.c'; else $(CYGPATH_W) '$(srcdir)/vector/array.c'; fi` 584 585 vector/vector_test-vector_test.o: vector/vector_test.c 586 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vector_test_CFLAGS) $(CFLAGS) -MT vector/vector_test-vector_test.o -MD -MP -MF vector/$(DEPDIR)/vector_test-vector_test.Tpo -c -o vector/vector_test-vector_test.o `test -f 'vector/vector_test.c' || echo '$(srcdir)/'`vector/vector_test.c 587 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vector/$(DEPDIR)/vector_test-vector_test.Tpo vector/$(DEPDIR)/vector_test-vector_test.Po 588 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vector/vector_test.c' object='vector/vector_test-vector_test.o' libtool=no @AMDEPBACKSLASH@ 589 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 590 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vector_test_CFLAGS) $(CFLAGS) -c -o vector/vector_test-vector_test.o `test -f 'vector/vector_test.c' || echo '$(srcdir)/'`vector/vector_test.c 591 592 vector/vector_test-vector_test.obj: vector/vector_test.c 593 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vector_test_CFLAGS) $(CFLAGS) -MT vector/vector_test-vector_test.obj -MD -MP -MF vector/$(DEPDIR)/vector_test-vector_test.Tpo -c -o vector/vector_test-vector_test.obj `if test -f 'vector/vector_test.c'; then $(CYGPATH_W) 'vector/vector_test.c'; else $(CYGPATH_W) '$(srcdir)/vector/vector_test.c'; fi` 594 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) vector/$(DEPDIR)/vector_test-vector_test.Tpo vector/$(DEPDIR)/vector_test-vector_test.Po 595 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vector/vector_test.c' object='vector/vector_test-vector_test.obj' libtool=no @AMDEPBACKSLASH@ 596 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 597 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vector_test_CFLAGS) $(CFLAGS) -c -o vector/vector_test-vector_test.obj `if test -f 'vector/vector_test.c'; then $(CYGPATH_W) 'vector/vector_test.c'; else $(CYGPATH_W) '$(srcdir)/vector/vector_test.c'; fi` 524 598 525 599 ID: $(am__tagged_files) … … 637 711 -rm -f avltree/$(DEPDIR)/$(am__dirstamp) 638 712 -rm -f avltree/$(am__dirstamp) 713 -rm -f vector/$(DEPDIR)/$(am__dirstamp) 714 -rm -f vector/$(am__dirstamp) 639 715 640 716 maintainer-clean-generic: … … 646 722 647 723 distclean: distclean-am 648 -rm -rf ./$(DEPDIR) avltree/$(DEPDIR) 724 -rm -rf ./$(DEPDIR) avltree/$(DEPDIR) vector/$(DEPDIR) 649 725 -rm -f Makefile 650 726 distclean-am: clean-am distclean-compile distclean-generic \ … … 692 768 693 769 maintainer-clean: maintainer-clean-am 694 -rm -rf ./$(DEPDIR) avltree/$(DEPDIR) 770 -rm -rf ./$(DEPDIR) avltree/$(DEPDIR) vector/$(DEPDIR) 695 771 -rm -f Makefile 696 772 maintainer-clean-am: distclean-am maintainer-clean-generic … … 751 827 ${CC} ${AM_CFLAGS} ${CFLAGS} ${<} -o ${@} 752 828 829 dtor-early-exit-ERR1: dtor-early-exit.c @CFA_BINDIR@/@CFA_NAME@ 830 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@} 831 832 dtor-early-exit-ERR2: dtor-early-exit.c @CFA_BINDIR@/@CFA_NAME@ 833 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR2 ${<} -o ${@} 834 753 835 declarationSpecifier: declarationSpecifier.c @CFA_BINDIR@/@CFA_NAME@ 754 836 ${CC} ${AM_CFLAGS} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@} … … 778 860 ${CC} ${AM_CFLAGS} ${CFLAGS} -lgmp ${<} -o ${@} 779 861 862 memberCtors-ERR1: memberCtors.c @CFA_BINDIR@/@CFA_NAME@ 863 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@} 864 865 ctor-autogen-ERR1: ctor-autogen.c @CFA_BINDIR@/@CFA_NAME@ 866 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@} 867 780 868 completeTypeError : completeTypeError.c @CFA_BINDIR@/@CFA_NAME@ 781 869 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@} … … 785 873 786 874 alloc-ERROR: alloc.c @CFA_BINDIR@/@CFA_NAME@ 787 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}788 789 # Constructor/destructor tests790 raii/dtor-early-exit-ERR1: raii/dtor-early-exit.c @CFA_BINDIR@/@CFA_NAME@791 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}792 793 raii/dtor-early-exit-ERR2: raii/dtor-early-exit.c @CFA_BINDIR@/@CFA_NAME@794 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR2 ${<} -o ${@}795 796 raii/memberCtors-ERR1: raii/memberCtors.c @CFA_BINDIR@/@CFA_NAME@797 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@}798 799 raii/ctor-autogen-ERR1: raii/ctor-autogen.c @CFA_BINDIR@/@CFA_NAME@800 875 ${CC} ${AM_CFLAGS} ${CFLAGS} -DERR1 ${<} -o ${@} 801 876 -
src/tests/alloc.c
r7416d46a rf792cb8 10 10 // Created On : Wed Feb 3 07:56:22 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jan 22 21:26:40 201813 // Update Count : 3 2612 // Last Modified On : Fri Nov 24 23:06:42 2017 13 // Update Count : 319 14 14 // 15 15 … … 32 32 // allocation, non-array types 33 33 34 // int & r = malloc();34 // int &r = malloc(); 35 35 // r = 0xdeadbeef; 36 36 // printf( "C malloc %#x\n", r ); 37 37 // free( &r ); 38 38 39 p = (int *) malloc( sizeof(*p) );// C malloc, type unsafe39 p = (int *)(void *)malloc( sizeof(*p) ); // C malloc, type unsafe 40 40 *p = 0xdeadbeef; 41 41 printf( "C malloc %#x\n", *p ); … … 88 88 printf( "\n" ); 89 89 90 p = (int *) realloc( p, dim * sizeof(*p) );// C realloc90 p = (int *)(void *)realloc( p, dim * sizeof(*p) ); // C realloc 91 91 for ( int i = 0; i < dim; i += 1 ) { p[i] = 0xdeadbeef; } 92 92 printf( "C realloc\n" ); … … 259 259 free( p ); 260 260 261 #ifdef ERR1262 261 stp = malloc(); 263 262 printf( "\nSHOULD FAIL\n" ); 264 p = realloc( stp, dim * sizeof( *stp ) ); 265 p = alloc( stp, dim * sizeof( *stp) );263 #ifdef ERR1 264 p = alloc( stp, dim * sizeof(*stp) ); 266 265 p = memset( stp, 10 ); 267 266 p = memcpy( &st1, &st ); -
src/tests/concurrent/examples/quickSort.c
r7416d46a rf792cb8 1 // 1 // 2 2 // The contents of this file are covered under the licence agreement in the 3 3 // file "LICENCE" distributed with Cforall. 4 // 4 // 5 5 // quickSort.c -- In-place concurrent quick-sort: threads are created to partition to a specific depth, then sequential 6 6 // recursive-calls are use to sort each partition. 7 // 7 // 8 8 // Author : Peter A. Buhr 9 9 // Created On : Wed Dec 6 12:15:52 2017 10 10 // Last Modified By : Peter A. Buhr 11 // Last Modified On : Mon Jan 29 08:41:37 201812 // Update Count : 1 5513 // 11 // Last Modified On : Thu Dec 14 11:20:40 2017 12 // Update Count : 142 13 // 14 14 15 15 #include <fstream> … … 19 19 #include <string.h> // strcmp 20 20 21 forall( otype T | { int ?<?( T, T ); } ) 21 22 thread Quicksort { 22 int * values;// communication variables23 T * values; // communication variables 23 24 int low, high, depth; 24 25 }; 25 26 26 void ?{}( Quicksort & qs, int values[], int size, int depth ) { 27 forall( otype T | { int ?<?( T, T ); } ) 28 void ?{}( Quicksort(T) & qs, T values[], int size, int depth ) { 27 29 qs.values = values; qs.low = 0; qs.high = size; qs.depth = depth; 28 30 } // Quicksort 29 31 30 void main( Quicksort & qs ) { // thread starts here 32 forall( otype T | { int ?<?( T, T ); } ) 33 void main( Quicksort(T) & qs ) { 31 34 // nested routines: information hiding 32 35 33 void ?{}( Quicksort & qs, intvalues[], int low, int high, int depth ) {36 void ?{}( Quicksort(T) & qs, T values[], int low, int high, int depth ) { 34 37 qs.values = values; qs.low = low; qs.high = high; qs.depth = depth; 35 38 } // Quicksort 36 39 37 void sort( intvalues[], int low, int high, int depth ) {40 void sort( T values[], int low, int high, int depth ) { 38 41 int left, right; // index to left/right-hand side of the values 39 intpivot; // pivot value of values40 int swap;// temporary42 T pivot; // pivot value of values 43 T swap; // temporary 41 44 42 45 //verify(); // check for stack overflow due to recursion … … 64 67 if ( depth > 0 ) { 65 68 depth -= 1; 66 Quicksort rqs = { values, low, right, depth }; // concurrently sort upper half 69 //sout << &uThisTask() << " " << depth << endl; 70 Quicksort(T) rqs = { values, low, right, depth }; // concurrently sort upper half 67 71 //Quicksort lqs( values, left, high, depth ); // concurrently sort lower half 68 72 sort( values, left, high, depth ); // concurrently sort lower half … … 93 97 94 98 99 #define ELEMTYPE int 100 95 101 int main( int argc, char * argv[] ) { 96 102 ifstream & unsortedfile = sin; … … 100 106 if ( argc != 1 ) { // do not use defaults 101 107 if ( argc < 2 || argc > 4 ) usage( argv ); // wrong number of options 102 // if ( strcmp( argv[1], "-t" ) == 0 ) { // timing ? 103 if ( argv[1][0] == '-' && argv[1][1] == 't' ) { // timing ? 104 &unsortedfile = (ifstream *)0; // no input 108 if ( strcmp( argv[1], "-s" ) == 0 ) { 109 choose ( argc ) { 110 case 4: 111 &sortedfile = new( (const char *)argv[3] ); // open the output file 112 if ( fail( sortedfile ) ) { 113 serr | "Error! Could not open sorted output file \"" | argv[3] | "\"" | endl; 114 usage( argv ); 115 } // if 116 fallthrough; 117 case 3: 118 &unsortedfile = new( (const char *)argv[2] ); // open the input file 119 if ( fail( unsortedfile ) ) { 120 serr | "Error! Could not open unsorted input file \"" | argv[2] | "\"" | endl; 121 usage( argv ); 122 } // if 123 } // choose 124 } else if ( strcmp( argv[1], "-t" ) == 0 ) { 125 unsortedfile = *(ifstream *)0; // no input 105 126 choose ( argc ) { 106 127 case 4: … … 110 131 if ( ! convert( size, argv[2] ) || size < 0 ) usage( argv ); 111 132 } // choose 112 } else { // sort file 113 choose ( argc ) { 114 case 3: 115 &sortedfile = new( (const char *)argv[2] ); // open the output file 116 if ( fail( sortedfile ) ) { 117 serr | "Error! Could not open sorted output file \"" | argv[2] | "\"" | endl; 118 usage( argv ); 119 } // if 120 fallthrough; 121 case 2: 122 &unsortedfile = new( (const char *)argv[1] ); // open the input file 123 if ( fail( unsortedfile ) ) { 124 serr | "Error! Could not open unsorted input file \"" | argv[1] | "\"" | endl; 125 usage( argv ); 126 } // if 127 } // choose 128 } // if 133 } else usage( argv ); // invalid flag 129 134 } // if 130 135 … … 135 140 unsortedfile | size; // read number of elements in the list 136 141 if ( eof( unsortedfile ) ) break; 137 int * values = alloc( size ); // values to be sorted, too large to put on stack 142 // ELEMTYPE * values = anew( size ); // values to be sorted, too large to put on stack 143 ELEMTYPE * values = alloc( size ); // values to be sorted, too large to put on stack 144 // ELEMTYPE * values = (ELEMTYPE *)malloc( sizeof(ELEMTYPE) * size ); 138 145 for ( int counter = 0; counter < size; counter += 1 ) { // read unsorted numbers 139 146 unsortedfile | values[counter]; … … 144 151 sortedfile | endl; 145 152 if ( size > 0 ) { // values to sort ? 146 Quicksort QS = { values, size - 1, 0 }; // sort values153 Quicksort(ELEMTYPE) QS = { values, size - 1, 0 }; // sort values 147 154 } // wait until sort tasks terminate 148 155 for ( int counter = 0; counter < size; counter += 1 ) { // print sorted list … … 160 167 processor processors[ (1 << depth) - 1 ] __attribute__(( unused )); // create 2^depth-1 kernel threads 161 168 162 int * values = alloc( size ); // values to be sorted, too large to put on stack 169 // ELEMTYPE * values = anew( size ); // values to be sorted, too large to put on stack 170 ELEMTYPE * values = alloc( size ); // values to be sorted, too large to put on stack 163 171 for ( int counter = 0; counter < size; counter += 1 ) { // generate unsorted numbers 164 172 values[counter] = size - counter; // descending values 165 173 } // for 166 174 { 167 Quicksort QS = { values, size - 1, depth }; // sort values175 Quicksort(ELEMTYPE) QS = { values, size - 1, depth }; // sort values 168 176 } // wait until sort tasks terminate 169 177 -
src/tests/io.c
r7416d46a rf792cb8 10 10 // Created On : Wed Mar 2 16:56:02 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jan 26 15:19:34 201813 // Update Count : 10012 // Last Modified On : Wed Dec 6 23:15:42 2017 13 // Update Count : 88 14 14 // 15 15 … … 17 17 18 18 int main() { 19 _Bool b; // basic types 20 char c; 19 char c; // basic types 21 20 signed char sc; 22 21 unsigned char usc; … … 91 90 92 91 sout | "input bacis types" | endl; 93 in | b // boolean 94 | c | sc | usc // character 92 in | c | sc | usc // character 95 93 | si | usi | i | ui | li | uli | lli | ulli // integral 96 94 | f | d | ld // floating point … … 100 98 101 99 sout | "output basic types" | endl; 102 sout | b | endl // boolean 103 | c | ' ' | sc | ' ' | usc | endl // character 100 sout | c | ' ' | sc | ' ' | usc | endl // character 104 101 | si | usi | i | ui | li | uli | lli | ulli | endl // integral 105 102 | f | d | ld | endl // floating point -
src/tests/io.data
r7416d46a rf792cb8 1 falseA 23 93 1 2 3 4 5 6 7 8 1.1 1.2 1.3 1.1+2.3 1.1-2.3 1.1-2.3 abc xyz1 A 23 93 1 2 3 4 5 6 7 8 1.1 1.2 1.3 1.1+2.3 1.1-2.3 1.1-2.3 abc xyz -
src/tests/sum.c
r7416d46a rf792cb8 11 11 // Created On : Wed May 27 17:56:53 2015 12 12 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Fri Jan 26 11:31:02 201814 // Update Count : 2 7113 // Last Modified On : Thu Dec 7 09:13:36 2017 14 // Update Count : 261 15 15 // 16 16 17 17 #include <fstream> 18 #include <stdlib>19 18 20 19 void ?{}( int & c, zero_t ) { c = 0; } … … 29 28 30 29 forall( otype T | sumable( T ) ) // use trait 31 T sum( unsigned int size, T a[] ) {32 T total = 0; // instantiate T from 0 by calling constructor33 for ( unsigned int i = 0; i < size; i += 1 )34 total += a[i]; // select appropriate+30 T sum( unsigned int n, T a[] ) { 31 T total = 0; // instantiate T, select 0 32 for ( unsigned int i = 0; i < n; i += 1 ) 33 total += a[i]; // select + 35 34 return total; 36 35 } // sum … … 56 55 } // for 57 56 sout | "sum from" | low | "to" | High | "is" 58 | sum( size, (unsigned char *)a ) | ", check" | (int)s | endl;57 | sum( size, (unsigned char *)a ) | ", check" | (int)s | endl; 59 58 60 59 int s = 0, a[size], v = low; … … 64 63 } // for 65 64 sout | "sum from" | low | "to" | High | "is" 66 | sum( size, (int *)a ) | ", check" | (int)s | endl;65 | sum( size, (int *)a ) | ", check" | (int)s | endl; 67 66 68 67 float s = 0.0f, a[size], v = low / 10.0f; … … 72 71 } // for 73 72 sout | "sum from" | low / 10.0f | "to" | High / 10.0f | "is" 74 | sum( size, (float *)a ) | ", check" | (float)s | endl;73 | sum( size, (float *)a ) | ", check" | (float)s | endl; 75 74 76 75 double s = 0.0, a[size], v = low / 10.0; … … 80 79 } // for 81 80 sout | "sum from" | low / 10.0 | "to" | High / 10.0 | "is" 82 | sum( size, (double *)a ) | ", check" | (double)s | endl;81 | sum( size, (double *)a ) | ", check" | (double)s | endl; 83 82 84 83 struct S { int i, j; }; … … 99 98 } // for 100 99 sout | "sum from" | low | "to" | High | "is" 101 | sum( size, (S *)a ) | ", check" | (S)s | endl; 102 103 forall( otype Impl | sumable( Impl ) ) 104 struct GS { 105 Impl * x, * y; 106 }; 107 GS(int) gs; 108 gs.x = anew( size ); // create array storage for field 109 s = 0; v = low; 110 for ( int i = 0; i < size; i += 1, v += 1 ) { 111 s += (int)v; 112 gs.x[i] = (int)v; // set filed array in generic type 113 } // for 114 sout | "sum from" | low | "to" | High | "is" 115 | sum( size, gs.x ) | ", check" | (int)s | endl; // add filed array in generic type 100 | sum( size, (S *)a ) | ", check" | (S)s | endl; 116 101 } // main 117 102 -
tools/repeat.c
r7416d46a rf792cb8 26 26 if(print_iterations) { 27 27 printf("\r%d / %d", i, repetitions); 28 fflush(stdout);29 28 } 30 29 int retcode = run(); … … 48 47 fprintf(out, "Repeat CMD N times\n\n"); 49 48 fprintf(out, "\t-h,--help\tprint this usage message\n"); 50 fprintf(out, "\t-s\t\tstop on error\n"); 51 fprintf(out, "\t-i\t\toutput iterations instead of CMD stdout\n"); 52 fprintf(out, "\t-x\t\tprint CMD before running it\n"); 53 fprintf(out, "\t-a FILE\t\tredirect output of command to append to FILE\n"); 54 fprintf(out, "\t-r FILE\t\tredirect output of command to FILE\n"); 49 fprintf(out, "\t-s\tstop on error\n"); 50 fprintf(out, "\t-i\toutput iterations instead of CMD stdout\n"); 51 fprintf(out, "\t-x\tprint CMD before running it\n"); 55 52 exit(code); 56 53 } … … 58 55 char ** cmd_to_run = NULL; 59 56 bool print_cmd = false; 60 bool redirect = false;61 bool redirect_append = false;62 char * redirect_to = "/dev/null";63 57 pid_t child_pid = 0; 64 58 … … 79 73 80 74 int c; 81 while ( (c = getopt_long( argc, argv, " ahirsx", long_opts, &long_index)) != -1 ) {75 while ( (c = getopt_long( argc, argv, "hsxi", long_opts, &long_index)) != -1 ) { 82 76 switch ( c ) { 83 77 case Help: … … 93 87 case 'i': 94 88 print_iterations = true; 95 break;96 case 'a':97 if(redirect) { fprintf(stderr, "Cannot have -a and -r\n"); error(); }98 redirect_append = true;99 redirect_to = argv[optind];100 optind++;101 break;102 case 'r':103 if(redirect_append) { fprintf(stderr, "Cannot have -a and -r\n"); error(); }104 redirect = true;105 redirect_to = argv[optind];106 optind++;107 89 break; 108 90 default: … … 160 142 printf("\n"); 161 143 } 162 if(print_iterations || redirect || redirect_append) {144 if(print_iterations) { 163 145 __attribute__((unused)) FILE * ignore = 164 freopen( redirect_to, redirect_append ? "a" : "w", stdout);146 freopen("/dev/null", "w", stdout); 165 147 } 166 148 execvp ( *cmd_to_run, cmd_to_run);
Note:
See TracChangeset
for help on using the changeset viewer.