skia2/include/private
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
..
GrAuditTrail.h Converting more debug code to SkJSONWriter 2019-01-28 19:06:06 +00:00
GrCCClipPath.h ccpr: Remove the dangling pointer from GrCCDrawPathsOp 2018-09-14 16:32:58 +00:00
GrCCPerOpListPaths.h include: whitespace changes for clang-format 2018-09-19 14:54:57 +00:00
GrColor.h Enable wide color support in CCPR 2019-01-10 13:53:31 +00:00
GrContext_Base.h Move GrContextOptions to GrContext_Base and make GrContextThreadSafeProxy be derived from GrContext_Base 2019-02-04 18:08:57 +00:00
GrImageContext.h Move GrContextOptions to GrContext_Base and make GrContextThreadSafeProxy be derived from GrContext_Base 2019-02-04 18:08:57 +00:00
GrOpList.h Implement generic draw-as-clear fallback for color and stencil 2019-01-16 17:27:44 +00:00
GrProxyRef.h Reland "Move GrGeometryProcessor's textures out of classes and into" 2018-08-07 14:02:49 +00:00
GrRecordingContext.h Move GrContextOptions to GrContext_Base and make GrContextThreadSafeProxy be derived from GrContext_Base 2019-02-04 18:08:57 +00:00
GrRenderTargetProxy.h Add initial support for creating a vulkan secondary command buffer drawing context. 2019-01-02 20:39:23 +00:00
GrResourceKey.h Revert "Revert "Reuse GrTexture instances when the same GrBackendTexture is used to"" 2019-01-10 17:51:21 +00:00
GrSharedEnums.h sksl enum support 2017-11-13 14:36:40 +00:00
GrSingleOwner.h
GrSkSLFPFactoryCache.h Revert "replace SkNVRefCnt with SkRefCnt" 2018-10-30 15:23:06 +00:00
GrSurfaceProxy.h Actually reuse GrTexture if SkPromiseImageTexture used with multiple 2019-01-25 16:04:49 +00:00
GrTextureProxy.h Move textureType() method from GrSurfaceProxy to GrTextureProxy. 2018-12-13 14:59:50 +00:00
GrTypesPriv.h Replace bool purgeImmediately with enum GrWrapCacheable. 2019-01-24 21:26:24 +00:00
GrVkTypesPriv.h Remove include/gpu/vk from include paths. 2018-05-22 19:59:35 +00:00
SkArenaAlloc.h Add explicit to ctor 2018-11-27 18:11:30 +00:00
SkBitmaskEnum.h use std::underlying_type 2019-02-04 16:27:22 +00:00
SkChecksum.h Move SkNoncopyable to include/private. 2018-07-17 21:39:51 +00:00
SkColorData.h move LCD blits to SkBlitter_ARGB32.cpp 2018-11-09 17:03:06 +00:00
SkDeferredDisplayList.h Test YUV images in DDL 2018-10-01 12:12:29 +00:00
SkEncodedInfo.h Make SkCodec truly default to sRGB 2018-09-27 20:08:06 +00:00
SkFixed.h Revert "SkMath takes some functions from from SkTypes" 2018-09-07 17:32:54 +00:00
SkFloatBits.h include: whitespace changes for clang-format 2018-09-19 14:54:57 +00:00
SkFloatingPoint.h make float divide-by-zero fatal 2018-11-06 21:56:27 +00:00
SkHalf.h remove SK_API from private calls 2019-01-23 16:43:11 +00:00
SkImageInfoPriv.h Remove checks that insist on kOpaque for some color types 2018-10-11 15:30:55 +00:00
SkLeanWindows.h
SkMacros.h SkTypes: more into SkMacros 2018-06-12 20:24:43 +00:00
SkMalloc.h Add 2 fuzz targets for image decoding (oss-fuzz) 2018-02-12 15:25:59 +00:00
SkMessageBus.h ccpr: Use SkMessageBus for thread-safe eviction of cache entries 2018-10-19 00:25:20 +00:00
SkMutex.h Revert "SkMath takes some functions from from SkTypes" 2018-09-07 17:32:54 +00:00
SkNoncopyable.h Move SkNoncopyable to include/private. 2018-07-17 21:39:51 +00:00
SkNx_neon.h minor Sk4px cleanup 2018-12-18 20:46:25 +00:00
SkNx_sse.h minor Sk4px cleanup 2018-12-18 20:46:25 +00:00
SkNx.h add google-build-namespaces to clang-tidy checks 2018-12-12 16:33:59 +00:00
SkOnce.h
SkPathRef.h remove sk_atomic_dec 2018-12-04 17:58:35 +00:00
SkSafe32.h Revert "SkMath takes some functions from from SkTypes" 2018-09-07 17:32:54 +00:00
SkSafe_math.h
SkSemaphore.h Revert "SkMath takes some functions from from SkTypes" 2018-09-07 17:32:54 +00:00
SkShadowFlags.h Remove deprecated drawShadow interfaces 2018-02-28 19:07:29 +00:00
SkSpinlock.h
SkTArray.h SkTArray: behave a little more like std::vector 2018-10-19 16:41:51 +00:00
SkTDArray.h Remove unused methods from SkTDArray 2018-10-19 21:29:08 +00:00
SkTemplates.h Remove SkAutoTCallIProc. 2018-09-20 17:42:02 +00:00
SkTFitsIn.h Add support for MSVC run-time checks (and control flow guard) 2019-02-04 20:55:24 +00:00
SkTHash.h add SkTHashTable::LookupOrNull() 2019-01-09 18:51:22 +00:00
SkThreadID.h
SkTInternalLList.h Move SkNoncopyable to include/private. 2018-07-17 21:39:51 +00:00
SkTLogic.h use std::underlying_type 2019-02-04 16:27:22 +00:00
SkTo.h Revert "Revert "SkTypes: extract SkTo"" 2018-06-14 14:55:17 +00:00
SkTSearch.h Convert NULL and 0 to nullptr. 2017-08-28 17:48:57 +00:00
SkWeakRefCnt.h clean up some odd SkRefCnt features 2018-10-31 20:47:16 +00:00