# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
# GCC is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GCC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING3.  If not see
# <http://www.gnu.org/licenses/>.

# 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, .cc, .h, or
# .def are examined to begin with.

#   These files are part of libgcc, or target headers provided by gcc.
gcov-io.h
gcov-iov.c
limitx.h
limity.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.
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
genhooks.c
genmodes.c
genopinit.c
genoutput.c
genpeep.c
genpreds.c
genrecog.c
gensupport.c
gensupport.h
read-md.c

#   These files are part of the front end to D, and have no i18n support.
d/dmd/arrayop.c
d/dmd/attrib.c
d/dmd/blockexit.c
d/dmd/canthrow.c
d/dmd/constfold.c
d/dmd/cppmangle.c
d/dmd/ctfeexpr.c
d/dmd/dcast.c
d/dmd/dclass.c
d/dmd/declaration.c
d/dmd/denum.c
d/dmd/dimport.c
d/dmd/dinterpret.c
d/dmd/dmangle.c
d/dmd/dmodule.c
d/dmd/doc.c
d/dmd/dscope.c
d/dmd/dstruct.c
d/dmd/dsymbol.c
d/dmd/dtemplate.c
d/dmd/dversion.c
d/dmd/expression.c
d/dmd/expressionsem.c
d/dmd/func.c
d/dmd/iasmgcc.c
d/dmd/initsem.c
d/dmd/lexer.c
d/dmd/mtype.c
d/dmd/nogc.c
d/dmd/nspace.c
d/dmd/objc.c
d/dmd/opover.c
d/dmd/optimize.c
d/dmd/parse.c
d/dmd/safe.c
d/dmd/sideeffect.c
d/dmd/statement.c
d/dmd/statementsem.c
d/dmd/staticassert.c
d/dmd/staticcond.c
d/dmd/traits.c
