about summary refs log tree commit diff
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.tar.xz
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