skia2/gn
Brian Osman 50ea3c06b8 Add support for MSVC run-time checks (and control flow guard)
This enables four different options in the compiler, described
below. I also added enough masks to satisfy RTCc when running
all GMs in both 8888 and gl configs.

---

/RTCc - Detects when a value is assigned to a smaller data
type and results in data loss. This happens even when casting.
Masking is required to suppress this.

/RTCs - Various stack-related checks, including uninitialized
data (by initializing locals to a non-zero value), array bounds
checking, and stack pointer corruption that can occur with a
calling convention mismatch.

/RTCu - Reports when a variable is used without having been
initialized. Mostly redundant with compile-time checks.

/guard:cf - This is more of a security option, that computes
all possible targets for indirect calls at compile time, and
verifies that those are the only targets reached at compile
time. Also generates similar logic around switch statements
that turn into jump tables.

Bug: skia:
Change-Id: I7b527af8fd67dec0b6556f38bcd0efc3fd505856
Reviewed-on: https://skia-review.googlesource.com/c/188625
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-02-04 20:55:24 +00:00
..
toolchain Fix PATH and EXE quoting for Windows ARM64 builds 2018-12-10 15:54:18 +00:00
__init__.py Make gn directory importable in python 2017-03-20 17:40:30 +00:00
ar.py GN: quiet alink spam on Mac 2016-11-07 14:19:32 +00:00
bench.gni Benchmark for charToGlyph 2019-02-04 18:03:52 +00:00
BUILD.gn Add support for MSVC run-time checks (and control flow guard) 2019-02-04 20:55:24 +00:00
BUILDCONFIG.gn Add support for MSVC run-time checks (and control flow guard) 2019-02-04 20:55:24 +00:00
call.py Add gn plumbing for mdbviz tool 2017-09-05 13:57:44 +00:00
checkdir.py Bundle resources and skps directories into iOS app. 2017-11-29 17:06:25 +00:00
codesign_ios.py Allow different identities for iOS code signing 2017-12-07 20:42:00 +00:00
compile_processors.py switched to infra version of clang-format for skslc 2017-07-27 20:28:50 +00:00
core.gni move experimental header out of public includes 2019-02-02 18:18:21 +00:00
cp.py GN: get Angle compiling on Windows. 2016-10-17 16:16:16 +00:00
create_sksl_enums.py Create sksl_enums.inc with UNIX line endings (even on Windows) 2018-02-09 15:13:11 +00:00
effects_imagefilters.gni Reland "simplify disabling effect deserialization" 2018-11-08 14:26:52 +00:00
effects.gni Remove all old gpu gradient code 2018-09-14 22:21:56 +00:00
find_headers.py Add 'public' headers support to find_headers.py 2018-05-30 18:00:09 +00:00
find_ios_sysroot.py Add iOS simulator support in GN. 2017-03-13 17:21:43 +00:00
flutter_defines.gni remove SK_SUPPORT_LEGACY_PAINT_FONT_FIELDS for flutter 2019-01-16 02:30:07 +00:00
fuchsia_defines.gni remove legacy hinting-enum guards 2018-11-28 20:15:03 +00:00
gen_plist_ios.py Add create_bundle support for GN 2017-11-28 15:29:07 +00:00
gm.gni Restore ETC1 compressed texture support. 2019-01-15 19:56:28 +00:00
gn_meta_sln.py Decorate project names with their relative path in the meta SLN 2018-06-01 19:22:08 +00:00
gn_to_bp_utils.py Generate Android Framework host-side Skia (linux) 2018-11-19 17:51:32 +00:00
gn_to_bp.py Use ICU in libandroidicu 2019-01-09 14:10:25 +00:00
gn_to_cmake.py Revert "Revert "make third_party() static libraries"" 2019-02-01 21:12:50 +00:00
gpu.gni Add outline of new GrContext hierarchy 2019-01-30 18:36:11 +00:00
highest_version_dir.py Filter Windows SDK and Compiler directories 2017-12-11 20:26:08 +00:00
is_clang.py GN: match shell behavior for cc and cxx in is_clang.py 2016-09-27 09:29:24 -07:00
opts.gni clean up SkBitmapProcState::platformProcs() 2018-12-03 21:24:31 +00:00
pdf.gni SkPDF: unify Canon and Document 2019-01-14 17:56:14 +00:00
push_to_android.py skia_android_serial = "auto" 2017-01-12 16:30:17 +00:00
run_sksllex.py Re-land "converted OverdrawColorFilter to SkSL" 2017-10-26 14:58:27 +00:00
samples.gni Add new thin anti-aliasing demo 2019-01-31 14:55:52 +00:00
shared_sources.gni remove empty skia_for_chromium_defines 2019-01-17 17:37:01 +00:00
sksl.gni fixed Metal matrix constructors 2019-01-25 18:37:34 +00:00
tests.gni remove breakText, and all utf cache accessors 2019-02-01 15:20:23 +00:00
utils.gni add textutils 2018-10-25 17:50:20 +00:00
xps.gni SkDocument: Factories now located in SkPDFDocument.h and SkXPSDocument.h 2018-09-20 18:21:07 +00:00