# This file lists all the sources which should *not* be scanned for
# strings to translate.  Only the first word on each line is used; the
# rest is ignored.  Only files with an extension of .c or .h or .def are
# examined to begin with.

#   These files are part of libgcc, or target headers provided by gcc.
config/darwin-crt2.c
config/fp-bit.c
config/fp-bit.h
config/vxlib.c
crtstuff.c
gbl-ctors.h
gcov-io.h
gcov-iov.c
gthr-aix.h
gthr-dce.h
gthr-gnat.c
gthr-gnat.h
gthr-posix.c
gthr-posix.h
gthr-rtems.h
gthr-single.h
gthr-solaris.h
gthr-vxworks.h
gthr-win32.h
gthr.h
libgcc2.c
libgcc2.h
libgcov.c
limitx.h
limity.h
longlong.h
unwind-c.c
unwind-dw2-fde-darwin.c
unwind-dw2-fde-glibc.c
unwind-dw2-fde.c
unwind-dw2-fde.h
unwind-dw2.c
unwind-pe.h
unwind-sjlj.c
unwind.h

#   These programs are meant to be executed only by GCC maintainers or
#   installers.  Such files do not need to be translated, as these
#   people typically need to be able to read English anyway.
fix-header.c
gen-protos.c
genattr.c
genattrtab.c
genautomata.c
gencheck.c
gencodes.c
genconditions.c
genconfig.c
genconstants.c
genemit.c
genextract.c
genflags.c
gengenrtl.c
gengtype.c
genmodes.c
genopinit.c
genoutput.c
genpeep.c
genpreds.c
genrecog.c
gensupport.c
gensupport.h
scan-decls.c
scan.c
scan.h

#   These files are not yet internationalized, because they contain
#   many strings that require a lot of analysis, and are little-used.
mips-tdump.c
mips-tfile.c
