1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/utils/vscode/llvm
Marco Elver b835b9cf36 [SanitizeCoverage] Add support for NoSanitizeCoverage function attribute
We really ought to support no_sanitize("coverage") in line with other
sanitizers. This came up again in discussions on the Linux-kernel
mailing lists, because we currently do workarounds using objtool to
remove coverage instrumentation. Since that support is only on x86, to
continue support coverage instrumentation on other architectures, we
must support selectively disabling coverage instrumentation via function
attributes.

Unfortunately, for SanitizeCoverage, it has not been implemented as a
sanitizer via fsanitize= and associated options in Sanitizers.def, but
rolls its own option fsanitize-coverage. This meant that we never got
"automatic" no_sanitize attribute support.

Implement no_sanitize attribute support by special-casing the string
"coverage" in the NoSanitizeAttr implementation. To keep the feature as
unintrusive to existing IR generation as possible, define a new negative
function attribute NoSanitizeCoverage to propagate the information
through to the instrumentation pass.

Fixes: https://bugs.llvm.org/show_bug.cgi?id=49035

Reviewed By: vitalybuka, morehouse

Differential Revision: https://reviews.llvm.org/D102772
2021-05-25 12:57:14 +02:00
..
src
syntaxes [SanitizeCoverage] Add support for NoSanitizeCoverage function attribute 2021-05-25 12:57:14 +02:00
.gitignore
.vscodeignore
CHANGELOG.md
language-configuration-tablegen.json
language-configuration.json
package-lock.json
package.json
README.md
tsconfig.json
vsc-extension-quickstart.md

VS Code Extension For LLVM Dev

Features

  • LLVM IR files (.ll) syntax highlighting. (manually translated from llvm/utils/vim/syntax/llvm.vim)
  • TableGen files (.td) syntax highlighting. (translated from llvm/utils/textmate)
  • PatternMatchers for LIT test output. ($llvm-lit, $llvm-filecheck)
  • Tasks to run LIT on current selected file. (Terminal -> Run Task -> llvm-lit)

Installation

sudo apt-get install nodejs-dev node-gyp npm
sudo npm install -g typescript npx vsce

Install From Source

cd <extensions-installation-folder>
cp -r llvm/utils/vscode/llvm .
cd llvm
npm install
npm run vscode:prepublish

<extensions-installation-folder> is OS dependent.

Please refer to https://code.visualstudio.com/docs/editor/extension-gallery#_where-are-extensions-installed

Install From Package (.vsix)

First package the extension according to https://code.visualstudio.com/api/working-with-extensions/publishing-extension#usage.

Then install the package according to https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix.

Setup

Set cmake.buildDirectory to your build directory.

https://code.visualstudio.com/docs/getstarted/settings

https://vector-of-bool.github.io/docs/vscode-cmake-tools/settings.html#cmake-builddirectory