# Copyright 2016 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

executable("176.gcc") {
  testonly = true

  sources = [
    "src/bc-emit.c",
    "src/bc-optab.c",
    "src/c-aux-info.c",
    "src/c-common.c",
    "src/c-convert.c",
    "src/c-decl.c",
    "src/c-gperf.h",
    "src/c-iterate.c",
    "src/c-lang.c",
    "src/c-lex.c",
    "src/c-parse.c",
    "src/c-pragma.c",
    "src/c-typeck.c",
    "src/caller-save.c",
    "src/calls.c",
    "src/combine.c",
    "src/convert.c",
    "src/cse.c",
    "src/dbxout.c",
    "src/dwarfout.c",
    "src/emit-rtl.c",
    "src/explow.c",
    "src/expmed.c",
    "src/expr.c",
    "src/final.c",
    "src/flow.c",
    "src/fold-const.c",
    "src/function.c",
    "src/getpwd.c",
    "src/global.c",
    "src/insn-attrtab.c",
    "src/insn-emit.c",
    "src/insn-extract.c",
    "src/insn-opinit.c",
    "src/insn-output.c",
    "src/insn-peep.c",
    "src/insn-recog.c",
    "src/integrate.c",
    "src/jump.c",
    "src/local-alloc.c",
    "src/loop.c",
    "src/m88k.c",
    "src/obstack.c",
    "src/optabs.c",
    "src/print-rtl.c",
    "src/print-tree.c",
    "src/real.c",
    "src/recog.c",
    "src/reg-stack.c",
    "src/regclass.c",
    "src/reload.c",
    "src/reload1.c",
    "src/reorg.c",
    "src/rtl.c",
    "src/rtlanal.c",
    "src/sched.c",
    "src/sdbout.c",
    "src/stmt.c",
    "src/stor-layout.c",
    "src/stupid.c",
    "src/toplev.c",
    "src/tree.c",
    "src/unroll.c",
    "src/varasm.c",
    "src/version.c",
    "src/xcoffout.c",
  ]
  defines = [
    "HOST_WORDS_LITTLE_ENDIAN",
    "SPEC_CPU2000_NEED_ALLOCA_H",
  ]
  cflags_c = [
    "-Wno-char-subscripts",
    "-Wno-enum-conversion",
    "-Wno-format",
    "-Wno-format-extra-args",
    "-Wno-format-security",
    "-Wno-implicit-function-declaration",
    "-Wno-implicit-int",
    "-Wno-int-to-pointer-cast",
    "-Wno-missing-braces",
    "-Wno-missing-field-initializers",
    "-Wno-non-literal-null-conversion",
    "-Wno-parentheses",
    "-Wno-return-type",
    "-Wno-shift-negative-value",
    "-Wno-sign-compare",
    "-Wno-sometimes-uninitialized",
    "-Wno-static-in-inline",
    "-Wno-switch",
    "-Wno-tautological-constant-out-of-range-compare",
    "-Wno-unused-function",
    "-Wno-unused-label",
    "-Wno-unused-value",
    "-Wno-unused-variable",
    "-Wno-varargs",
  ]
}
