* [PATCH] _gcc: add some clang specific warnings
@ 2020-01-05 18:52 Eitan Adler
2020-01-07 4:16 ` dana
0 siblings, 1 reply; 3+ messages in thread
From: Eitan Adler @ 2020-01-05 18:52 UTC (permalink / raw)
To: zsh-workers; +Cc: Eitan Adler
This adds some missing completions to the _gcc completer for clang.
Sadly clang does not support --help=warnings so it is not complete.
Signed-off-by: Eitan Adler <lists@eitanadler.com>
---
Completion/Unix/Command/_gcc | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/Completion/Unix/Command/_gcc b/Completion/Unix/Command/_gcc
index 0061cfa3b..bbfbc2b9e 100644
--- a/Completion/Unix/Command/_gcc
+++ b/Completion/Unix/Command/_gcc
@@ -350,10 +350,12 @@ if [[ "$service" = clang* ]]; then
"-nostdinc[Do not search standard system directories or compiler builtin directories for include files]"
"-nostdlibinc[Do not search standard system directories for include files]"
"-nobuiltininc[Do not search builtin directory for include files]"
+ "--help[Display this information]"
)
else
args+=(
'-flto=-[Enable link-time optimization]::jobs:'
+ '*--help=-[Display this information]:class:->help'
)
fi
@@ -427,7 +429,6 @@ args+=(
'*-isystem:second include path directory (system):_files -/'
'--sysroot=-[Use <directory> as the root directory for headers and libraries]:directory:_files -/'
'-pass-exit-codes[Exit with highest error code from a phase]'
- '*--help=-[Display this information]:class:->help'
'--target-help[Display target specific command line options]'
'-dumpspecs[Display all of the built in spec strings]'
'-dumpversion[Display the version of the compiler]'
@@ -676,7 +677,6 @@ args+=(
'-Wunderflow[Warn about underflow of numerical constant expressions]'
'-Wuninitialized[Warn about uninitialized automatic variables]'
'-Wunknown-pragmas[Warn about unrecognized pragmas]'
- '-Wunreachable-code[Does nothing. Preserved for backward compatibility]'
'-Wunsafe-loop-optimizations[Warn if the loop cannot be optimized due to nontrivial assumptions]'
'-Wunsuffixed-float-constants[Warn about unsuffixed float constants]'
'-Wunused-but-set-parameter[Warn when a function parameter is only set, otherwise unused]'
@@ -730,6 +730,20 @@ args+=(
'-Werror=-[Treat specified warning as error (or all if none specified)]::warning:->werror'
'-Wfatal-errors[Exit on the first error occurred]'
)
+# clang specific warnings
+if [[ "$service" = clang* ]]; then
+ args+=(
+ '-Wunreachable-code[Warn on code that will not be executed]'
+ '-Wunreachable-code-aggressive[Controls -Wunreachable-code, -Wunreachable-code-break, -Wunreachable-code-return]'
+ '-Wunreachable-code-break[Warn when break will never be executed]'
+ '-Wunreachable-code-loop-increment[Warn when loop will be executed only once]'
+ '-Wunreachable-code-return[Warn when return will not be executed]'
+ )
+else
+ args+=(
+ '-Wunreachable-code[Does nothing. Preserved for backward compatibility]'
+ )
+fi
# optimizers (from --help=optimizers), except for -O
args+=(
# --help=optimizers,^joined
--
2.24.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] _gcc: add some clang specific warnings
2020-01-05 18:52 [PATCH] _gcc: add some clang specific warnings Eitan Adler
@ 2020-01-07 4:16 ` dana
2020-01-08 4:57 ` Eitan Adler
0 siblings, 1 reply; 3+ messages in thread
From: dana @ 2020-01-07 4:16 UTC (permalink / raw)
To: Eitan Adler; +Cc: zsh-workers
On 5 Jan 2020, at 12:52, Eitan Adler <lists@eitanadler.com> wrote:
> This adds some missing completions to the _gcc completer for clang.
> Sadly clang does not support --help=warnings so it is not complete.
Merged. It occurred to me that it won't work quite accurately on macOS,
though, because gcc is actually clang there.
I think this should address it. Or should we go even further and try to be
clever about which options to provide for CFLAGS, &al.? All we could do with
that is guess, i suppose.
dana
diff --git a/Completion/Unix/Command/_gcc b/Completion/Unix/Command/_gcc
index bbfbc2b9e..9ec09200e 100644
--- a/Completion/Unix/Command/_gcc
+++ b/Completion/Unix/Command/_gcc
@@ -13,6 +13,11 @@ if [[ "$service" = -value-* ]]; then
args2=()
fi
else
+ # On some systems (macOS), cc/gcc/g++ are actually clang; treat them accordingly
+ [[ $service != clang* ]] &&
+ _pick_variant clang=clang unix --version &&
+ service=clang-$service
+
args2=( '*:input file:_files -g "*.([cCmisSoak]|cc|cpp|cxx|ii|k[ih])(-.)"' )
fi
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] _gcc: add some clang specific warnings
2020-01-07 4:16 ` dana
@ 2020-01-08 4:57 ` Eitan Adler
0 siblings, 0 replies; 3+ messages in thread
From: Eitan Adler @ 2020-01-08 4:57 UTC (permalink / raw)
To: dana; +Cc: Zsh hackers list
On Mon, 6 Jan 2020 at 20:16, dana <dana@dana.is> wrote:
>
> On 5 Jan 2020, at 12:52, Eitan Adler <lists@eitanadler.com> wrote:
> > This adds some missing completions to the _gcc completer for clang.
> > Sadly clang does not support --help=warnings so it is not complete.
>
> Merged. It occurred to me that it won't work quite accurately on macOS,
> though, because gcc is actually clang there.
I really wish clang would implement --help=<object>. This would
eliminate the need to list all of the options and so forth. I believe
I filed a feature request years ago but can't actually find it right
about now.
> I think this should address it.
This patch seems alright to me.
> Or should we go even further and try to be
> clever about which options to provide for CFLAGS, &al.?
CFLAGS is used in many more odd contexts - including where you don't
know what CC is. In this case I'd complete the union of the two.
> All we could do with
> that is guess, i suppose.
>
--
Eitan Adler
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-01-08 4:58 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-05 18:52 [PATCH] _gcc: add some clang specific warnings Eitan Adler
2020-01-07 4:16 ` dana
2020-01-08 4:57 ` Eitan Adler
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).