summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command/_gcc
diff options
context:
space:
mode:
authorDaniel Shahaf <danielsh@apache.org>2020-01-15 22:49:09 +0000
committerDaniel Shahaf <danielsh@apache.org>2020-01-15 22:49:09 +0000
commite899c21863a69226b4e650940c327a3b460023c0 (patch)
tree58e626a6f5c3c38e88c729d756ad563c10a80787 /Completion/Unix/Command/_gcc
parent22c0fe02a53bedb03f6aef5d0e476bbadc655995 (diff)
parentc7bc62aa0674d3677ce019333f4b8cd95aa8d189 (diff)
downloadzsh-e899c21863a69226b4e650940c327a3b460023c0.tar.gz
zsh-e899c21863a69226b4e650940c327a3b460023c0.zip
Merge remote-tracking branch 'origin/master' into 5.9
Right now, as we're preparing to tag the 5.8 release, the 5.9 branch is maintained as a topic branch off master. * origin/master: 45287: zshexpn: Describe parameter elision and add some introductory prose 45302: bin_umask(): Queue signals around umask(). users/24656: docs: Add an example of setting and querying zstyles users/24659: Cross-ref doc for matchers. 45296: D02glob: Clean up after test from users/24633 45290: New helper script for listing XFail tests. users/24633: Add an xfail test for users/24619. unposted: additional typo fix 45280: _git: add -local variants users/24628 (fixed): More doc for selectw-word-style widgets. 45266: Fix losetup completion, broken in da085b7a20729401c725f91ae930200d0deda64f (41720). unposted: Fix punctuation. use /dev/fd on Cygwin for process substitution unposted: Two additional typo fixes. Fix typos reported by codespell in shell code Fix typos reported by codespell in Src/ 45269: Fix misspellings in completions and elsewhere. 45261: _gcc: Detect clang-as-gcc unposted: internal: Remove Vim modeline that interferes with ztst.vim. unposted: internal: ztst.vim: Use :syn-sync to work around (#x) and "`\\\\\\\\`" confusing the highlighting. unposted: internal: zyodl.vim: Support glob qualifiers in example()'s unposted: internal: zyodl.vim: Support yodl comments. github #44: Allow completion for picocom to list symlinks to character devices 45245: _gcc: add some clang specific warnings 45231: _rsync: When completing remote modules, ignore more of the motd. unposted: _tac: Eliminate superfluous variable 45226: _man: Improve completion of file paths 45184: Clarify documentation of %-sequences understood by compadd -[Xx] 45239: Remove 'appendhistory' from zsh-newuser-install 45218: add more options to swaks completion 45196: fix completion after make -C, allowing for -C being used multiple times unposted (after 45183): Fix yodl error: "contrib.yo:4457: No macro: back(...)". 45181: Fix workers/45164: ${(S)%%} will now consider the empty string as a potential match. 45183: Improve documentation examples unposted: Add some tests for ${(S)}, including a regression test for workers/45164. 45169/0002 (tweaked for trailing newlines): Add an expected-to-fail test for workers/44007. 45169/0001: In the test suite, allow test cases to be marked as expected to fail. users/24582 + users/24583: Add regression tests for the previous commit. 24581: Fix array assignments in shell word splitting and completion. 45160: zshexpn: Expand documentation of (S) 45150 + 45152: zshexpn: Use a more minimal example in the documentation of (#b). unposted: internal: Vim ztst support: Add an ftplugin in addition to the syntax highlighter. 45130: _multi_parts: Always pass -f to compadd if given by caller unposted: zerrmsg(): Fix macro guard missed in previous commit unposted: ChangeLog for last commit internal: Allow %L in zerrmsg() in non-debug builds, too.
Diffstat (limited to 'Completion/Unix/Command/_gcc')
-rw-r--r--Completion/Unix/Command/_gcc23
1 files changed, 21 insertions, 2 deletions
diff --git a/Completion/Unix/Command/_gcc b/Completion/Unix/Command/_gcc
index 0061cfa3b..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
@@ -350,10 +355,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 +434,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 +682,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 +735,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