# 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" ]
  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",
  ]
}
