mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-14 16:03:41 +00:00
all: use -Qunused-arguments only for assembly files
The -Qunused-arguments flag disables the warning where some flags are not relevant to a compilation. This commonly happens when compiling assembly files (.s or .S files) because some flags are specific to C and not relevant to assembly. Because practically all baremetal targets need some form of assembly, this flag is added to most CFlags. This creates a lot of noise. And it is also added for compiling C code where it might hide bugs (by hiding the fact a flag is actually unused). This commit adds the flag to all assembly compilations and removes them from all target JSON files.
This commit is contained in:
committed by
Ron Evans
parent
f234df7a50
commit
96b1b76483
@@ -124,6 +124,13 @@ func compileAndCacheCFile(abspath, tmpdir string, cflags []string, config *compi
|
||||
flags := append([]string{}, cflags...) // copy cflags
|
||||
flags = append(flags, "-MD", "-MV", "-MTdeps", "-MF", depTmpFile.Name()) // autogenerate dependencies
|
||||
flags = append(flags, "-c", "-o", objTmpFile.Name(), abspath)
|
||||
if strings.ToLower(filepath.Ext(abspath)) == ".s" {
|
||||
// If this is an assembly file (.s or .S, lowercase or uppercase), then
|
||||
// we'll need to add -Qunused-arguments because many parameters are
|
||||
// relevant to C, not assembly. And with -Werror, having meaningless
|
||||
// flags (for the assembler) is a compiler error.
|
||||
flags = append(flags, "-Qunused-arguments")
|
||||
}
|
||||
if config.Options.PrintCommands {
|
||||
fmt.Printf("%s %s\n", config.Target.Compiler, strings.Join(flags, " "))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user