aboutsummaryrefslogtreecommitdiff
path: root/libcc1/compiler.hh
AgeCommit message (Collapse)AuthorFilesLines
2022-01-03Update copyright years.Jakub Jelinek1-1/+1
2021-05-05libcc1: avoid extra string copiesTom Tromey1-2/+2
PR c/94669 points out that a couple of spots in libcc1 take a std::string where a reference would do. This changes these spots to take a const char *, to reduce the number of copies. libcc1 PR c/94669 * compiler.hh (compiler_driver_filename): Take const char *. (compiler_triplet_regexp): Likewise.
2021-05-05libcc1: unify compiler handlingTom Tromey1-0/+83
Both libcc1 plugins have nearly identical copies of code to find the underlying compiler. This seemed wasteful to me, so this patch unifies the copies. Two minor API changes were needed. First, the old code used a back-link from the compiler object to the plugin object to check the 'verbose' setting. This patch adds a 'verbose' setting directly to the compiler object instead. Second, the 'find' method implicitly knew which compiler base name ("gcc" or "g++") to use. This patch makes this a parameter that is passed in by the plugin. libcc1 * libcp1.cc (compiler, compiler_triplet_regexp) (compiler_driver_filename): Remove. (libcp1::libcp1): Update. (make_regexp, libcp1::compiler::find) (libcp1::compiler_triplet_regexp::find) (libcp1::compiler_driver_filename::find): Remove. (libcp1_set_verbose, libcp1_set_arguments) (libcp1_set_triplet_regexp, libcp1_set_driver_filename): Update. * libcc1.cc (compiler, compiler_triplet_regexp) (compiler_driver_filename): Remove. (libcc1::libcc1): Update. (make_regexp, libcc1::compiler::find) (libcc1::compiler_triplet_regexp::find) (libcc1::compiler_driver_filename::find): Remove. (libcc1_set_verbose, libcc1_set_arguments) (libcc1_set_triplet_regexp, libcc1_set_driver_filename): Update. * compiler.cc: New file. * compiler.hh: New file. * Makefile.in: Rebuild. * Makefile.am (libcc1_la_SOURCES): Add compiler.hh, compiler.cc.