# 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 are
# examined to begin with.

#   These files are part of libgcc, or target headers provided by gcc.
config/rs6000/sol-c0.c
config/float-c4x.h
config/float-i128.h
config/float-i32.h
config/float-i386.h
config/float-i64.h
config/float-m68k.h
config/float-sh.h
config/float-sparc.h
config/float-vax.h
crtstuff.c
frame.h
gbl-ctors.h
libgcc1.c
libgcc1-test.c
libgcc2.c
libgcc2.h
limitx.h
limity.h
longlong.h
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.
enquire.c
fix-header.c
gen-protos.c
genattr.c
genattrtab.c
gencheck.c
gencodes.c
genconfig.c
genconstants.c
genemit.c
genextract.c
genflags.c
gengenrtl.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
