gcc/gcc
Jeff Law 94e5565f92 Tweak last entry "no output operands" instead of "no operands".
From-SVN: r17678
1998-02-05 16:14:58 -07:00
..
config Undo this change (the problem was actually in reload): 1998-02-04 17:48:38 +00:00
cp search.c (compute_access): Handle protected constructors in derived classes as accessible. 1998-02-05 13:48:20 -05:00
f * config-lang.in: Remove references to runtime/. 1998-02-03 12:13:42 -08:00
ginclude stdarg.h: Undo BeOS changes, they break hpux. 1997-12-16 13:00:15 -07:00
intl Initial revision 1997-08-01 13:06:04 +00:00
objc Make-lang.in (objc.stage1): Depend on stage1-start. 1998-01-25 04:29:50 -07:00
testsuite new 1998-02-03 18:57:24 -05:00
.gdbinit Initial revision 1997-08-11 09:56:58 -06:00
BUGS entered into RCS 1997-04-23 09:34:56 -04:00
COPYING Initial revision 1997-08-11 09:56:58 -06:00
COPYING.LIB Initial revision 1997-08-11 09:56:58 -06:00
ChangeLog Tweak last entry "no output operands" instead of "no operands". 1998-02-05 16:14:58 -07:00
ChangeLog.10 Merge from gcc-2.8 1997-12-06 17:31:01 -07:00
ChangeLog.11 Bring in final gcc-2.8.0 changes. 1998-01-14 13:57:58 -07:00
ChangeLog.lib Initial revision 1998-01-14 20:36:46 -07:00
INSTALL Change lawcs.utah.edu references to law@cygnus.com 1998-02-03 02:46:44 -07:00
LANGUAGES Document change in 3rd argument to DEFTREECODE. 1998-02-05 06:55:13 -07:00
LITERATURE Note location of comp.std.c++ FAQ 1998-02-02 16:03:30 -07:00
Makefile.in Remove rest of bytecode stuff, except for the VMS *.com files. 1998-01-23 07:43:01 -08:00
NEWS Another handful of gcc-2.8 changes (will it ever go out the door?). 1997-12-11 09:26:05 -07:00
PROBLEMS
PROJECTS Tweak. 1998-01-25 10:13:31 -07:00
README release branch changes from 11-27 snapshot to egcs-1.0. 1997-12-05 15:13:17 -07:00
README-bugs Initial revision 1997-08-11 09:56:58 -06:00
README-fixinc
README.ACORN
README.ALTOS
README.APOLLO
README.DWARF
README.FRESCO
README.NS32K
README.RS6000
README.TRAD
README.X11
README.g77 release branch changes from 11-27 snapshot to egcs-1.0. 1997-12-05 15:13:17 -07:00
SERVICE Bring over changes from latest gcc-2.8 pre-release. 1997-12-15 00:05:04 -07:00
TESTS.FLUNK Initial revision 1997-08-11 09:56:58 -06:00
acconfig.h aclocal.m4 (GCC_NEED_DECLARATION): Modify macro to accept a shell variable argument instead of only hard coded... 1998-01-31 17:48:06 -07:00
aclocal.m4 aclocal.m4 (GCC_NEED_DECLARATION): Modify macro to accept a shell variable argument instead of only hard coded... 1998-01-31 17:48:06 -07:00
alias.c alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO... 1998-01-14 15:10:50 -08:00
alloca.c
assert.h
basic-block.h Add EXECUTE_IF_AND_IN_{BITMAP,REG_SET}, and bitmap_print 1997-09-04 15:12:20 +00:00
bitmap.c bitmap.c (bitmap_clear): Ensure `inline' is at the beginning of the declaration. 1997-12-20 04:31:54 -07:00
bitmap.h Merge from gcc-2.8 1997-12-06 17:31:01 -07:00
build-make
c-aux-info.c reformat a little to match GNU coding standards. 1997-05-06 22:59:57 +00:00
c-common.c c-common.c (decl_attributes): Flag unrecognized attribute functions as warnings instead of as errors. 1998-02-05 13:54:49 -07:00
c-convert.c
c-decl.c expr.c (get_inner_reference): Use sbitsizetype for type sizes. 1998-02-01 04:47:59 -07:00
c-gperf.h Initial revision 1997-08-11 09:56:58 -06:00
c-iterate.c
c-lang.c Update mainline egcs to gcc2 snapshot 971021. 1997-11-02 14:19:36 -07:00
c-lex.c rtl.c (read_rtx): Use atol/atoq based upon disposition of HOST_WIDE_INT. 1998-01-28 16:25:15 -07:00
c-lex.h
c-parse.c Update mainline egcs to gcc2 snapshot 971021. 1997-11-02 14:19:36 -07:00
c-parse.gperf
c-parse.h Initial revision 1997-08-11 09:56:58 -06:00
c-parse.in (expr_no_commas): Do not store temporary skip_evaluation increments on yacc value stack... 1997-03-17 13:46:42 -05:00
c-parse.y This commit was generated by cvs2svn to compensate for changes in r16274, 1997-11-02 01:46:26 -07:00
c-pragma.c Opps. Forgot to check it in. 1997-12-22 03:05:04 -07:00
c-pragma.h
c-tree.h (warn_main, flag_hosted): New variables. 1997-01-19 15:05:05 -05:00
c-typeck.c expr.c (get_inner_reference): Use sbitsizetype for type sizes. 1998-02-01 04:47:59 -07:00
caller-save.c alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO... 1998-01-14 15:10:50 -08:00
calls.c calls.c (expand_call): Move #ifdef code out of macro argument lists. 1998-01-16 02:16:10 -07:00
cccp.1 Initial revision 1997-08-11 09:56:58 -06:00
cccp.c * cccp.c (main): Predefine __VMS_VER on VMS. 1998-02-01 05:01:18 -07:00
cexp.c Merge from gcc-2.8 1997-12-06 17:31:01 -07:00
cexp.y cexp.y (warn_undef): New variable. 1997-04-13 12:49:45 -04:00
choose-temp.c
collect2.c bitmap.c (bitmap_clear): Ensure `inline' is at the beginning of the declaration. 1997-12-20 04:31:54 -07:00
combine.c * combine.c (simplify_shift_const): Fix typo in last change. 1998-01-31 19:31:03 -07:00
conditions.h
config.guess Make the gcc config.guess exec the toplevel config.guess. 1997-08-27 16:20:52 -07:00
config.in aclocal.m4 (GCC_NEED_DECLARATION): Modify macro to accept a shell variable argument instead of only hard coded... 1998-01-31 17:48:06 -07:00
config.sub * config.sub: More accurate determine of HP processor types. 1998-01-27 15:15:04 -07:00
configure aclocal.m4 (GCC_NEED_DECLARATION): Modify macro to accept a shell variable argument instead of only hard coded... 1998-01-31 17:48:06 -07:00
configure.bat
configure.frag configure.frag: New arguments xmake_files, tmake_files. 1997-07-22 16:26:03 +00:00
configure.in aclocal.m4 (GCC_NEED_DECLARATION): Modify macro to accept a shell variable argument instead of only hard coded... 1998-01-31 17:48:06 -07:00
configure.lang Merge from gcc-2.8 1997-12-06 17:31:01 -07:00
convert.c
convert.h
cplus-dem.c c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. 1998-01-27 15:11:37 -07:00
cpp.1
cpp.cps Initial revision 1997-12-06 10:18:39 -07:00
cpp.fns Initial revision 1997-12-06 10:18:39 -07:00
cpp.texi Formerly cpp.texi.~30~ 1997-04-13 12:47:14 -04:00
cppalloc.c
cpperror.c
cppexp.c c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. 1998-01-27 15:11:54 -07:00
cpphash.c
cpphash.h
cpplib.c c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. 1998-01-27 15:11:55 -07:00
cpplib.h (struct cpp_options): New member warn_undef. 1997-04-13 12:50:11 -04:00
cppmain.c
cross-make
crtstuff.c crtstuff.c (init_dummy): Keep the epilogue in the init section for non-ELF systems. 1998-01-23 14:47:43 -07:00
cse.c c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. 1998-01-27 15:11:37 -07:00
cstamp-h.in Initial revision 1997-08-11 09:56:58 -06:00
dbxout.c dbxout.c (dbxout_type): For a RECORD_TYPE... 1998-01-28 09:07:23 -08:00
dbxstclass.h
defaults.h dwarf2 EH support 1997-09-10 14:00:28 -04:00
demangle.h * demangle.h (DMGL_JAVA): New option to request Java demangling. 1997-07-30 12:05:31 -07:00
doschk.c entered into RCS 1997-05-06 22:43:11 +00:00
dostage2
dostage3
dwarf.h
dwarf2.h Merge from gcc-2.8 1997-12-06 17:31:01 -07:00
dwarf2out.c dwarf2out.c (dwarf2out_frame_init): Undo last change... 1998-02-02 03:26:33 -07:00
dwarfout.c c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. 1998-01-27 15:11:55 -07:00
emit-rtl.c emit-rtl.c (gen_lowpart_common): Handle more case where converting a CONST_INT into SFmode. 1998-01-26 16:05:08 -07:00
enquire.c (fake_f_rep): Add missing element name in cast. 1997-04-13 15:29:35 -04:00
except.c expr.c (expand_builtin_setjmp): Accept two new arguments for the labels to branch to on first and subsequent... 1998-02-02 11:28:57 -08:00
except.h except.c (call_get_eh_context): Don't take a parm. 1997-12-12 02:35:04 -05:00
explow.c explow.c (optimize_save_area_alloca): New function for targets where SETJMP_VIA_SAVE_AREA is true. 1998-01-17 15:39:10 -07:00
expmed.c alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO... 1998-01-14 15:10:50 -08:00
expr.c expr.c (expand_builtin_setjmp): Accept two new arguments for the labels to branch to on first and subsequent... 1998-02-02 11:28:57 -08:00
expr.h expr.c (expand_builtin_setjmp): Accept two new arguments for the labels to branch to on first and subsequent... 1998-02-02 11:28:57 -08:00
extend.texi Fix mismatched parens. 1998-01-25 02:00:18 -07:00
final.c c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. 1998-01-27 15:11:45 -07:00
fix-header.c c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. 1998-01-27 15:11:54 -07:00
fixcpp
fixinc-nt.sed
fixinc.dgux
fixinc.irix * fixinc.irix: Add declaration of __vfork to unistd.h. 1997-06-05 22:23:14 -04:00
fixinc.math Update mainline egcs to gcc2 snapshot 971021. 1997-11-02 14:19:36 -07:00
fixinc.ptx Fix sed expression which looks for <sys/types.h> in <pwd.h> 1997-02-27 22:56:43 +00:00
fixinc.sco Fix static functions in sys/stat.h for C++ 1997-07-01 20:16:19 +00:00
fixinc.svr4 * fixinc.svr4 (__STDC__): Add another case. 1997-11-09 02:06:14 -07:00
fixinc.winnt
fixinc.wrap Renamed fixinc.math to fixinc.wrap 1997-09-16 03:59:48 +00:00
fixincludes * fixincludes: Tweak fix for struct exception in math.h 1998-01-27 14:16:28 -07:00
fixproto
flags.h regmove.c: Update. 1998-02-05 16:34:02 +00:00
floatlib.c
flow.c alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO... 1998-01-14 15:10:50 -08:00
fold-const.c expr.c (get_inner_reference): Use sbitsizetype for type sizes. 1998-02-01 04:47:59 -07:00
fp-test.c
frame.c * frame.c (find_fde): Correct FDE's upper bound. 1998-01-16 18:56:07 -05:00
frame.h frame.h (__register_frame, [...]): New. 1997-12-15 16:28:44 -07:00
function.c More bytecode stuff disappears. 1998-01-20 03:02:05 -07:00
function.h [multiple changes] 1997-12-11 23:53:20 -05:00
future.options
gansidecl.h aclocal.m4 (GCC_NEED_DECLARATION): Modify macro to accept a shell variable argument instead of only hard coded... 1998-01-31 17:48:06 -07:00
gbl-ctors.h
gcc.1 Minor tweak. 1998-01-03 04:27:57 -07:00
gcc.c flags.h: New flag (optimize_size). 1998-01-26 16:00:04 -07:00
gcc.cps Initial revision 1997-12-06 10:18:39 -07:00
gcc.hlp Initial revision 1997-08-11 09:56:58 -06:00
gcc.texi Bring in final gcc-2.8.0 changes. 1998-01-14 13:57:58 -07:00
gcov-io.h * gcov-io.h: Include sys/types.h to ensure we get size_t. 1998-01-03 04:29:44 -07:00
gcov.c bitmap.c (bitmap_clear): Ensure `inline' is at the beginning of the declaration. 1997-12-20 04:31:54 -07:00
gcov.texi entered into RCS 1997-03-28 22:32:02 +00:00
gen-protos.c
genattr.c
genattrtab.c Forgot to commit these... 1998-01-30 01:04:59 -07:00
gencodes.c
genconfig.c
genemit.c rtl.c (read_rtx): Use atol/atoq based upon disposition of HOST_WIDE_INT. 1998-01-28 16:25:15 -07:00
genextract.c
genflags.c
gengenrtl.c configure.in: Add cpp stringify test. 1998-01-19 02:09:47 -08:00
genmultilib
genopinit.c
genoutput.c (process_template): Place increment expression outside of putchar 1997-07-02 07:47:41 -04:00
genpeep.c rtl.c (read_rtx): Use atol/atoq based upon disposition of HOST_WIDE_INT. 1998-01-28 16:25:15 -07:00
genrecog.c rtl.c (read_rtx): Use atol/atoq based upon disposition of HOST_WIDE_INT. 1998-01-28 16:25:15 -07:00
getopt.c Initial revision 1997-08-11 09:56:58 -06:00
getopt.h Initial revision 1997-08-11 09:56:58 -06:00
getopt1.c Initial revision 1997-08-11 09:56:58 -06:00
getpwd.c
glimits.h glimits.h (SHRT_MIN): Define in a way suitable for 16 bit hosts. 1997-11-12 03:17:41 +00:00
global.c Update mainline egcs to gcc2 snapshot 971021. 1997-11-02 14:19:36 -07:00
gmon.c
gstab.h Initial revision 1997-08-11 09:56:58 -06:00
gsyms.h
gsyslimits.h
gthr-dce.h Makefile.in (GTHREAD_FLAGS): New var. 1997-12-24 16:56:08 -07:00
gthr-posix.h Makefile.in (GTHREAD_FLAGS): New var. 1997-12-24 16:56:08 -07:00
gthr-single.h Makefile.in (GTHREAD_FLAGS): New var. 1997-12-24 16:56:08 -07:00
gthr-solaris.h Makefile.in (GTHREAD_FLAGS): New var. 1997-12-24 16:56:08 -07:00
gthr.h Makefile.in (GTHREAD_FLAGS): New var. 1997-12-24 16:56:08 -07:00
haifa-sched.c alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO... 1998-01-14 15:10:50 -08:00
halfpic.c alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO... 1998-01-14 15:10:50 -08:00
halfpic.h
hard-reg-set.h
hash.c Remove bogus CYGNUS LOCAL markers. 1998-01-10 12:57:29 -07:00
hash.h Remove bogus CYGNUS LOCAL markers. 1998-01-10 12:57:29 -07:00
input.h
install.texi Change lawcs.utah.edu references to law@cygnus.com 1998-02-03 02:46:44 -07:00
install1.texi Initial revision 1997-08-11 09:56:58 -06:00
integrate.c integrate.c (INTEGRATE_THRESHOLD): Inline only small functions when -Os is specified. 1998-02-05 13:49:54 -07:00
integrate.h integrate.c (get_label_from_map): New function. 1997-12-18 15:42:41 -07:00
invoke.texi flags.h: New flag (optimize_size). 1998-01-26 16:00:04 -07:00
jump.c jump.c (jump_optimize): Lose calls to modified_in_p they are not needed anymore due to changes... 1998-02-03 14:19:59 -07:00
just-fixinc Initial revision 1997-08-11 09:56:58 -06:00
libgcc1-test.c
libgcc1.c
libgcc2.c libgcc2.c (__clear_insn_cache): On sysV68 enable the memctl stuff only if MCT_TEXT is #define'd. 1998-01-26 15:54:52 -07:00
limitx.h
limity.h
listing
local-alloc.c regmove.c: Update. 1998-02-05 16:34:02 +00:00
longlong.h m68k.h (TARGET_SWITCHES): -mcpu32 now clears MASK_68881. 1998-01-22 16:10:15 -07:00
loop.c * loop.c (get_condition): Handle sign-extended constants. 1998-02-01 17:37:25 -07:00
loop.h loop.c (loop_number): Delete function. 1997-09-21 21:04:36 -06:00
machmode.def
machmode.h
make-l2.com Updates from gcc-2.8 test tarball to current gcc-2.8 tarball. 1997-12-07 18:42:52 -07:00
makefile.vms makefile.vms: Remove bytecode references. 1998-02-02 02:37:18 -07:00
md.texi Tweak again. 1998-02-02 02:33:14 -07:00
mips-tdump.c reformat a little to match GNU coding standards. 1997-05-06 23:05:54 +00:00
mips-tfile.c configure.in: Find declaration for sbrk. 1998-01-19 01:37:12 -08:00
move-if-change Initial revision 1997-08-11 09:56:58 -06:00
obstack.c Initial revision 1997-08-11 09:56:58 -06:00
obstack.h Merge from gcc-2.8 1997-12-06 17:31:01 -07:00
optabs.c [multiple changes] 1997-11-25 04:30:38 -05:00
output.h Makefile.in: Remove all bytecode support. 1998-01-20 01:55:07 -07:00
pcp.h
pexecute.c c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. 1998-01-27 15:11:54 -07:00
prefix.c prefix.c: Use stdarg.h only ifdef __STDC__. 1997-11-13 20:27:55 -07:00
print-rtl.c c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. 1998-01-27 15:11:54 -07:00
print-tree.c varasm.c (immed_double_const): Add casts to HOST_WIDE_INT where necessary. 1998-01-17 15:50:40 -07:00
profile.c c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. 1998-01-27 15:11:54 -07:00
protoize.c Merge from gcc-2.8 1997-12-06 17:31:01 -07:00
pself.c Initial revision 1997-08-11 09:56:58 -06:00
pself1.c Initial revision 1997-08-11 09:56:58 -06:00
pself2.c Initial revision 1997-08-11 09:56:58 -06:00
pself3.c Initial revision 1997-08-11 09:56:58 -06:00
real.c Update mainline egcs to gcc2 snapshot 971021. 1997-11-02 14:19:36 -07:00
real.h patch from paul eggert to fix -0.0/0.0 confusion that breaks glibc 1997-11-13 16:07:27 -08:00
recog.c recog.c (validate_replace_rtx_1): Only perform substitutions of arguments to commutative and comparison operators... 1998-01-25 14:00:42 -07:00
recog.h
reg-stack.c alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO... 1998-01-14 15:10:50 -08:00
regclass.c c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. 1998-01-27 15:11:45 -07:00
regmove.c regmove.c: Update. 1998-02-05 16:34:02 +00:00
regs.h Widen some short fields to int; Use allocate_reg_info to allocate the reg_renumber array 1997-06-02 22:05:38 +00:00
reload.c reload.c (push_reload): If WORD_REGISTER_OPERATIONS... 1998-01-28 12:09:41 -07:00
reload.h regmove.c: New implementation of regmove pass. 1998-01-10 13:54:37 -07:00
reload1.c Fix powerpc/rs6000 (subreg:SF (mem:SI ...)) reload problem. 1998-01-22 06:48:58 -08:00
reorg.c sparc.c (output_cbranch): Add default case in enumeration switch. 1998-01-25 04:34:22 -07:00
rtl.c Forgot to commit these... 1998-01-30 01:04:59 -07:00
rtl.def * rtl.def (INLINE_HEADER): Fix bug exposed by gen_rtx_FOO changes. 1998-01-15 16:44:54 -07:00
rtl.h regmove.c: Update. 1998-02-05 16:34:02 +00:00
rtl.texi Added some words on FLOAT_WORDS_BIG_ENDIAN. 1997-12-03 23:37:38 +00:00
rtlanal.c rtlanal.c (dead_or_set_regno_p): Ignore REG_DEAD notes after reload completes. 1998-01-28 12:21:54 -07:00
scan-decls.c bitmap.c (bitmap_clear): Ensure `inline' is at the beginning of the declaration. 1997-12-20 04:31:54 -07:00
scan-types.sh
scan.c c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. 1998-01-27 15:11:54 -07:00
scan.h
sched.c c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. 1998-01-27 15:11:55 -07:00
sdbout.c Bring in final gcc-2.8.0 changes. 1998-01-14 13:57:58 -07:00
sort-protos
stab.def Initial revision 1997-08-11 09:56:58 -06:00
stack.h
stmt.c stmt.c (expand_asm_operands): Correctly identify asm statements no operands. 1998-02-05 13:59:44 -07:00
stor-layout.c expr.c (get_inner_reference): Use sbitsizetype for type sizes. 1998-02-01 04:47:59 -07:00
stupid.c alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO... 1998-01-14 15:10:50 -08:00
sys-protos.h
sys-types.h
texinfo.tex Initial revision 1997-08-11 09:56:58 -06:00
tlink.c * tlink.c (scan_linker_output): Call fclose() for opened files. 1998-01-27 02:23:08 -07:00
tm.texi flags.h: New flag (optimize_size). 1998-01-26 16:00:04 -07:00
toplev.c integrate.c (INTEGRATE_THRESHOLD): Inline only small functions when -Os is specified. 1998-02-05 13:49:54 -07:00
tree.c c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. 1998-01-27 15:11:55 -07:00
tree.def Finish last change. I'm no emacs wizard :( 1997-12-12 02:00:19 -07:00
tree.h expr.c (get_inner_reference): Use sbitsizetype for type sizes. 1998-02-01 04:47:59 -07:00
typeclass.h
unprotoize.c * unprotoize.c: Define UNPROTOIZE first, to actually take effect. 1998-01-19 02:12:31 -08:00
unroll.c alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO... 1998-01-14 15:10:50 -08:00
varasm.c Makefile.in: Remove all bytecode support. 1998-01-20 01:55:07 -07:00
version.c Fix lossage after snapshot sed tweak. 1998-02-05 06:45:46 -07:00
vmsconfig.com Remove last of bytecode support. 1998-02-02 05:09:22 -08:00
xcoffout.c
xcoffout.h

README

This directory contains the egcs version 1.0 release of the GNU C
compiler.  It includes all of the support for compiling C++ and
Objective C, including a run-time library for Objective C.

The GNU C compiler is free software.  See the file COPYING for copying
permission.

See the file gcc.texi (together with other files that it includes) for
installation and porting information.  The file INSTALL contains a
copy of the installation information, as plain ASCII.

Installing this package will create various files in subdirectories of
/usr/local/lib, which are passes used by the compiler and a library
named libgcc.a.  It will also create /usr/local/bin/gcc, which is
the user-level command to do a compilation.

See the Bugs chapter of the GCC Manual for how to report bugs
usefully.  An online readable version of the manual is in the files
gcc.info*.

The files pself.c and pself1.c are not part of GCC.
They are programs that print themselves on standard output.
They were written by Dario Dariol and Giovanni Cozzi, and are
included for your hacking pleasure.  Likewise pself2.c
(Who is the author of that?) and pself3.c (by Vlad Taeerov and Rashit
Fakhreyev).