stephentoub [Thu, 11 Feb 2016 21:41:43 +0000 (16:41 -0500)]
Fix access to Task.Id while finishing continuations
Task.Id is lazily-initialized with an interlocked operation and we strive to avoid accessing it anywhere in Task's internals on hot paths, but apparently when some ETW logging was added around continuations, calls were added that access Task.Id even if logging is disabled. This is accounting for ~30% of the cycles consumed in a TCS Task's lifecycle! This commit fixes it by making sure these accesses to Id are guarded.
Matt Mitchell [Thu, 11 Feb 2016 16:27:48 +0000 (08:27 -0800)]
Merge pull request #3119 from ellismg/add-rhel72
Add Red Hat Enterprise Linux 7.2 Runs
Jan Kotas [Thu, 11 Feb 2016 10:48:05 +0000 (02:48 -0800)]
Merge pull request #3126 from jkotas/crossgen
Change crossgen defaults
Eugene Rozenfeld [Thu, 11 Feb 2016 08:00:26 +0000 (00:00 -0800)]
Merge pull request #3120 from erozenfeld/MultToShiftVN1
Small correction for #3067.
Andy Ayers [Thu, 11 Feb 2016 07:29:34 +0000 (23:29 -0800)]
Merge pull request #3127 from AndyAyersMS/FlakyTestDisable
Disable test causing Ubuntu failures
Andy Ayers [Thu, 11 Feb 2016 03:53:53 +0000 (19:53 -0800)]
Disable test causing Ubuntu failures
Fails because of mismatched System.IO versions. See #3117 for some
discussion.
Jan Kotas [Thu, 11 Feb 2016 03:35:01 +0000 (19:35 -0800)]
Change crossgen defaults
Change crossgen to generate R2R images by default
Jan Kotas [Thu, 11 Feb 2016 02:47:45 +0000 (18:47 -0800)]
Merge pull request #3118 from jkotas/buffercopy
Add a fast path for byte[] to Buffer.BlockCopy
Jan Kotas [Wed, 10 Feb 2016 17:18:13 +0000 (09:18 -0800)]
Add a fast path for byte[] to Buffer.BlockCopy
Eugene Rozenfeld [Wed, 10 Feb 2016 23:50:41 +0000 (15:50 -0800)]
Small correction for #3067.
The code to change multiplication to shift shouldn't be
under LEA_AVAILABLE since the code to process multiplication
by power of 2 isn't.
Matt Ellis [Wed, 10 Feb 2016 22:55:34 +0000 (14:55 -0800)]
Add Red Had Enterprise Linux 7.2 Runs
Mike McLaughlin [Wed, 10 Feb 2016 22:37:25 +0000 (14:37 -0800)]
Merge pull request #3112 from mikem8361/sosfix
Fix SOS managed breakpoints when coreclr symbols are stripped.
Mike McLaughlin [Tue, 9 Feb 2016 01:47:31 +0000 (17:47 -0800)]
Fix SOS managed breakpoints when coreclr symbols are stripped.
Added a SOS DAC interface (ISOSDacInterface4::GetClrNotification) to get the exception
notification arguments instead of using the GetLastExceptionInformation function from the lldb
sosplugin that depends on coreclr symbols being present.
On the coreclr side, the clr notification arguments are saved in a global variable that is DAC
accessible. A critical section was added to protect this global variable while the special
exception is raised.
Setting the internal COMPlus_DebugBreakOnAssert environment variable causes 3 or 4 breaks in
the debugger with no reason. It was breaking in the function that was determining whether it
should break. I was using COMPlus_BreakOnEELoad=2 to break after coreclr was loaded and initialized
to set managed breakpoints and on a debug build it generates an assert (on release just a DebugBreak).
William Godbe [Wed, 10 Feb 2016 18:10:15 +0000 (10:10 -0800)]
Merge pull request #3107 from wtgodbe/reenable
Re-enable previously disabled tests that are now passing on non-Windows platforms
Jan Kotas [Wed, 10 Feb 2016 16:43:19 +0000 (08:43 -0800)]
Merge pull request #3095 from krytarowski/netbsd-support-38
Add support for Floating Point registers in ucontext_t on NetBSD
Matt Mitchell [Wed, 10 Feb 2016 16:22:10 +0000 (08:22 -0800)]
Merge pull request #3114 from mmitche/switch-to-auto
Switch to auto images
Matt Mitchell [Wed, 10 Feb 2016 16:21:19 +0000 (08:21 -0800)]
Switch to auto images
Jan Kotas [Wed, 10 Feb 2016 03:06:50 +0000 (19:06 -0800)]
Merge pull request #3110 from jkotas/event-tracing
Make Unix event tracing conditionally enabled
Sivarv [Wed, 10 Feb 2016 01:18:21 +0000 (17:18 -0800)]
Merge pull request #3108 from sivarv/gcstressfix
Fix to gc-stress issue #2921.
Jan Kotas [Wed, 10 Feb 2016 01:15:06 +0000 (17:15 -0800)]
Make Unix event tracing conditionally enabled
Add condition around the expensive event tracing code to enable it conditionally only if the event tracing is enabled
Brian Sullivan [Wed, 10 Feb 2016 00:53:57 +0000 (16:53 -0800)]
Merge pull request #3106 from briansull/issue_3032
ARM64: For methods that have very large stack frames we need extra instructions
Brian Sullivan [Tue, 9 Feb 2016 22:07:39 +0000 (14:07 -0800)]
For methods that have very large stack frames we need an extra instruction
to load the offset when encoding the prolog/epilog instructions for funclets
Fixes Issue #3032
Incorporates code review feedback and provides a method called
genInstrWithConstant to handle the cases where we need extra instructions
Updated arm64\Tests.lst with additional tags:
MISSING_EXE, ISSUE_3104, ISSUE_3105 and NEED_TRIAGE
sivarv [Tue, 9 Feb 2016 22:54:14 +0000 (14:54 -0800)]
Fix to gc-stress issue #2921.
William Godbe [Tue, 9 Feb 2016 22:46:15 +0000 (14:46 -0800)]
Merge pull request #3055 from wtgodbe/serverGC
Re-enable server GC & lengthen timeouts
William Godbe [Tue, 9 Feb 2016 22:45:47 +0000 (14:45 -0800)]
Re-enable previously disabled tests that are now passing on non-Windows platforms
William Godbe [Sat, 6 Feb 2016 00:25:51 +0000 (16:25 -0800)]
Re-enable server GC & lengthen timeouts
Jan Kotas [Tue, 9 Feb 2016 20:24:49 +0000 (12:24 -0800)]
Merge pull request #3100 from AndyAyersMS/FixWarning
Fix const string literal warning
Carol Eidt [Tue, 9 Feb 2016 19:09:52 +0000 (11:09 -0800)]
Merge pull request #3099 from CarolEidt/x86IntArgs
Constant and Popped Args for x86
Matt Mitchell [Tue, 9 Feb 2016 18:59:11 +0000 (10:59 -0800)]
Merge pull request #3102 from mmitche/add-llitchev-to-allowed
Add llitchev to allowed
Matt Mitchell [Tue, 9 Feb 2016 18:27:11 +0000 (10:27 -0800)]
fixup
Matt Mitchell [Tue, 9 Feb 2016 18:24:13 +0000 (10:24 -0800)]
Update arm triggers to be in line with others
Carol Eidt [Tue, 9 Feb 2016 16:26:08 +0000 (08:26 -0800)]
Constant and Popped Args for x86
Add support for constant arguments,
and handle the case where the callee must pop the stack.
Andy Ayers [Tue, 9 Feb 2016 16:46:16 +0000 (08:46 -0800)]
Fix const string literal warning
This came up during an FI from LLVM, testing LLILC, see microsoft/llvm#140 .
Gaurav Khanna [Tue, 9 Feb 2016 06:31:27 +0000 (22:31 -0800)]
Merge pull request #3096 from gkhanna79/MonoCheck
Check for Mono presence until CoreCLR 3090 is fixed.
Gaurav Khanna [Tue, 9 Feb 2016 04:39:51 +0000 (20:39 -0800)]
Check for Mono presence until CoreCLR 3090 is fixed.
Kamil Rytarowski [Tue, 9 Feb 2016 04:33:02 +0000 (05:33 +0100)]
Add support for Floating Point registers in ucontext_t on NetBSD
This code assumes x86_64 platform and modern fxsave style of FP regs.
i386 Floating Point registers ship with different flavors, what will be
handled once the 64-bit code will be finished.
Matt Ellis [Tue, 9 Feb 2016 04:23:23 +0000 (20:23 -0800)]
Merge pull request #3086 from gkhanna79/CIMscorlib
Update CI to no longer request mscorlib build for osx/ubuntu on Windows.
Jan Kotas [Tue, 9 Feb 2016 04:00:54 +0000 (20:00 -0800)]
Merge pull request #3093 from dotnet-bot/from-tfs
Merge changes from TFS
Jan Kotas [Tue, 9 Feb 2016 03:16:50 +0000 (19:16 -0800)]
Merge pull request #3091 from jkotas/revert-workaround
Revert "Add un-prefixed signatures as temporary workaround"
Andy Ayers [Tue, 9 Feb 2016 03:07:30 +0000 (19:07 -0800)]
Merge pull request #3084 from AndyAyersMS/InlineRefactor2b
Inline refactor: revise checks in fgFindJumpTargets
Andy Ayers [Tue, 9 Feb 2016 03:07:12 +0000 (19:07 -0800)]
Merge pull request #2905 from AndyAyersMS/NewILTests
Some tests for caller/callee type mismatches
Andy Ayers [Tue, 9 Feb 2016 01:56:43 +0000 (17:56 -0800)]
Merge pull request #3083 from AndyAyersMS/InlineRefactor2a
Inliner refactoring: inline impAbortInline
Sivarv [Tue, 9 Feb 2016 01:35:59 +0000 (17:35 -0800)]
Merge pull request #3087 from sivarv/master
Fix to SquareRootUInt16 test failure under JitStress=1/2
Eugene Rozenfeld [Mon, 8 Feb 2016 23:37:52 +0000 (15:37 -0800)]
Merge pull request #3067 from erozenfeld/MultToShiftVN
Preserve value numbers when morphing multiplication into shift.
Gaurav Khanna (CLR) [Mon, 8 Feb 2016 20:16:01 +0000 (12:16 -0800)]
Update CI to no longer request mscorlib build for osx/ubuntu on Windows.
Jan Kotas [Mon, 8 Feb 2016 22:32:32 +0000 (14:32 -0800)]
Revert "Add un-prefixed signatures as temporary workaround"
This reverts commit
fb80bad2ed19970472ddefe539520abef42a52d0.
Koundinya Veluri [Mon, 8 Feb 2016 22:13:12 +0000 (14:13 -0800)]
Merge pull request #2981 from kouvel/Fixes
Miscellaneous fixes
Eugene Rozenfeld [Sat, 6 Feb 2016 07:09:43 +0000 (23:09 -0800)]
Preserve value numbers when morphing multiplication into shift.
This change fixes a morpher transformation of multiplication to shift
to preserve the value number of the tree since the new shift expression
will compute the same value as the old multiplication expression.
Without that change we were getting asserts in fgMoveOpsLeft,
which expects to see value numbers on trees it transforms.
Closes #2920.
sivarv [Mon, 8 Feb 2016 21:03:11 +0000 (13:03 -0800)]
Fix to SquareRootUInt16 test failure under JitStress=1/2
JitStress=1/2 is inducing GS check as a result of which the Vector argument
gets shadow copied. But on the shadow copy lcl var SIMD specific state
is not set and as a result of which rationalization doesn't happen
properly leading to silent bad codegen.
Andy Ayers [Mon, 8 Feb 2016 20:23:57 +0000 (12:23 -0800)]
Inline refactor: revise checks in fgFindJumpTargets
In this method, the inliner will check for unsupported opcodes and
similar things. Refactor these checks to directly bail out if an
issue is discovered, rather than going to a common handler snippet.
There are two functionality changes:
First, if an unsupported opcode is found (currently: switch, jmp,
calli, localloc, cpblk, mkrefany, rethrow) mark the inlinee as
never inlinable, rather than just failing the current attempt.
This should not change externally visible behavior but will improve
jit TP marginally if such cases are common.
Second, for NETCF quirk handling, make sure to guard some of the
observations with a check that we're reading the IL for inlining.
Aditya Mandaleeka [Mon, 8 Feb 2016 19:45:39 +0000 (11:45 -0800)]
Merge pull request #2898 from adityamandaleeka/remove_sigprocmask
Use pthread_sigmask to change the mask of blocked signals.
Andy Ayers [Mon, 8 Feb 2016 19:42:42 +0000 (11:42 -0800)]
Inliner refactoring: inline impAbortInline
Inline this helper method at its 3 call sites, and delete it.
Pat Gavlin [Mon, 8 Feb 2016 18:53:02 +0000 (10:53 -0800)]
Fix build breaks in the CTP JIT.
These breaks were due to unguarded usage of constants that are not present in the CTP JIT/EE interface.
[tfs-changeset: 1573367]
Matt Mitchell [Mon, 8 Feb 2016 18:50:27 +0000 (10:50 -0800)]
Merge pull request #3050 from sejongoh/add_more_stress_modes_to_corefx_windows_testing
Add more JIT stress modes to corefx testing
Gaurav Khanna [Mon, 8 Feb 2016 07:17:02 +0000 (23:17 -0800)]
Merge pull request #3043 from gkhanna79/FixNugetPkg
Generate Microsoft.NETCore.Runtime.CoreCLR nuget packages
Gaurav Khanna (CLR) [Fri, 5 Feb 2016 00:22:06 +0000 (16:22 -0800)]
Change to support Microsoft.NetCore.Runtime.CoreCLR nuget package generation.
Jan Kotas [Sun, 7 Feb 2016 21:19:14 +0000 (13:19 -0800)]
Merge pull request #3073 from krytarowski/netbsd-support-36
Make missing libunwind fatal on NetBSD
Kamil Rytarowski [Sun, 7 Feb 2016 17:37:33 +0000 (18:37 +0100)]
Make missing libunwind fatal on NetBSD
Jan Kotas [Sun, 7 Feb 2016 15:54:15 +0000 (07:54 -0800)]
Merge pull request #2973 from krytarowski/netbsd-support-25
Disable FEATURE_HIJACK in NetBSD as unimplemented
Jan Kotas [Sun, 7 Feb 2016 15:40:38 +0000 (07:40 -0800)]
Merge pull request #3072 from krytarowski/netbsd-support-35
Fix build on NetBSD: Support different versions of "struct reg"
Kamil Rytarowski [Sun, 7 Feb 2016 12:32:18 +0000 (13:32 +0100)]
Fix build on NetBSD: Support different versions of "struct reg"
FreeBSD style: ".r_rax"
NetBSD x86_64 style: ".regs[_R_RAX]"
NetBSD i386 style: "._r_eax" will be defined once the amd64 version will be
finished.
Kamil Rytarowski [Tue, 2 Feb 2016 01:37:06 +0000 (02:37 +0100)]
Disable FEATURE_HIJACK in NetBSD as unimplemented
Solution suggested by Jan Kotas (Microsoft).
Jan Kotas [Sun, 7 Feb 2016 05:52:43 +0000 (21:52 -0800)]
Merge pull request #3071 from dotnet/revert-3062-instrumentation
Revert "Temporary instrumentation in native image loading"
Jan Kotas [Sun, 7 Feb 2016 05:52:35 +0000 (21:52 -0800)]
Merge pull request #3070 from jkotas/crossgen-fix
Fix loading of native images on Unix
Jan Kotas [Sun, 7 Feb 2016 03:48:33 +0000 (19:48 -0800)]
Revert "Temporary instrumentation in native image loading"
Jan Kotas [Sun, 7 Feb 2016 03:40:58 +0000 (19:40 -0800)]
Fix loading of native images on Unix
R2R images that were compiled from architecture-specific IL images failed to load with bad image format exception on Unix. The fix is to take IMAGE_FILE_MACHINE_NATIVE_OS_OVERRIDE into account for the platform check.
Jan Kotas [Sun, 7 Feb 2016 00:33:29 +0000 (16:33 -0800)]
Merge pull request #3066 from gkhanna79/Fix3049
Fix for CoreCLR issue 3049
Gaurav Khanna [Sat, 6 Feb 2016 22:10:46 +0000 (14:10 -0800)]
Fix for CoreCLR issue 3049
Jan Kotas [Sat, 6 Feb 2016 21:37:32 +0000 (13:37 -0800)]
Merge pull request #3062 from jkotas/instrumentation
Temporary instrumentation in native image loading
Jan Kotas [Sat, 6 Feb 2016 07:16:30 +0000 (23:16 -0800)]
Temporary instrumentation for PE file loading
Jan Kotas [Sat, 6 Feb 2016 18:14:11 +0000 (10:14 -0800)]
Merge pull request #3059 from jkotas/intrinsics
Improve robustness of intrinsic fallback path
Stephen Toub [Sat, 6 Feb 2016 18:03:11 +0000 (13:03 -0500)]
Merge pull request #3063 from dotnet/revert-3027-remove_security_checks
Revert "Remove useless security checks"
Jan Kotas [Sat, 6 Feb 2016 16:51:57 +0000 (08:51 -0800)]
Merge pull request #3061 from stephentoub/update_index
Tweak Enum.TryParse whitespace skipping slightly
Jan Kotas [Sat, 6 Feb 2016 16:45:25 +0000 (08:45 -0800)]
Revert "Remove useless security checks"
Jan Kotas [Sat, 6 Feb 2016 15:45:09 +0000 (07:45 -0800)]
Merge pull request #3060 from dotnet-bot/from-tfs
Merge changes from TFS
stephentoub [Sat, 6 Feb 2016 15:04:43 +0000 (10:04 -0500)]
Tweak Enum.TryParse whitespace skipping slightly
As a simple addendum to my previous Enum.TryParse change, if the string
begins with whitespace, we already know where the whitespace ends, so we
don't need to retraverse it.
Sejong Oh [Sat, 6 Feb 2016 10:59:01 +0000 (02:59 -0800)]
Merge pull request #3048 from sejongoh/add_unit_test_for_issue_2580
Add unit test for issue 2580
Sejong Oh [Sat, 6 Feb 2016 10:58:17 +0000 (02:58 -0800)]
Add corefx baseline
Sejong Oh [Fri, 5 Feb 2016 21:07:57 +0000 (13:07 -0800)]
Add unit test for issue 2580
- The test checks if code generation for ushort is correct.
Jan Kotas [Sat, 6 Feb 2016 08:10:40 +0000 (00:10 -0800)]
Delete mdil support from coreclr
[tfs-changeset: 1573006]
Jan Kotas [Sat, 6 Feb 2016 07:09:29 +0000 (23:09 -0800)]
Improve robustness of intrinsic fallback path
- The fallback path for intrinsics nodes is assumed to be direct call. Verify this assumption using no_way assert instead of regular assert.
- Make VM to always tell the JIT to use direct calls for intrinsics, even in version resilient code
Sejong Oh [Sat, 6 Feb 2016 05:19:39 +0000 (21:19 -0800)]
Change corefx jit stress scenario names due to git complaining too long
file name
Jan Kotas [Sat, 6 Feb 2016 04:06:47 +0000 (20:06 -0800)]
Merge pull request #3056 from krytarowski/netbsd-support-34
Fix NetBSD build: Define virtual destructors when needed
Kamil Rytarowski [Sat, 6 Feb 2016 02:16:55 +0000 (03:16 +0100)]
Fix NetBSD build: Define virtual destructors when needed
This fixes the following error with recent Clang (3.9.0nb20160205):
In file included from /tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/synchmgr/synchcontrollers.cpp:20:
In file included from /tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/synchmgr/synchmanager.hpp:24:
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/include/pal/synchcache.hpp:146:13: error: destructor called on non-final 'CorUnix::CSynchWaitController' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor]
pobj->~T();
^
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/synchmgr/synchmanager.hpp:724:31: note: in instantiation of member function 'CorUnix::CSynchCache<CorUnix::CSynchWaitController>::Add' requested here
m_cacheWaitCtrlrs.Add(pthrCurrent, pCtrlr);
^
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/include/pal/synchcache.hpp:146:20: note: qualify call to silence this warning
pobj->~T();
^
CorUnix::CSynchWaitController::
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/include/pal/synchcache.hpp:146:13: error: destructor called on non-final 'CorUnix::CSynchStateController' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor]
pobj->~T();
^
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/synchmgr/synchmanager.hpp:741:32: note: in instantiation of member function 'CorUnix::CSynchCache<CorUnix::CSynchStateController>::Add' requested here
m_cacheStateCtrlrs.Add(pthrCurrent, pCtrlr);
^
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/include/pal/synchcache.hpp:146:20: note: qualify call to silence this warning
pobj->~T();
^
CorUnix::CSynchStateController::
2 errors generated.
Pat Gavlin [Sat, 6 Feb 2016 02:25:52 +0000 (18:25 -0800)]
Merge pull request #3044 from pgavlin/CoreRTPInvoke
Generate P/Invoke transitions for CoreRT.
Andy Ayers [Sat, 6 Feb 2016 02:08:23 +0000 (18:08 -0800)]
Merge pull request #3051 from AndyAyersMS/InlineRefactor2
Inliner refactoring: consolidate logging, reporting and dumping
Jan Kotas [Sat, 6 Feb 2016 01:33:52 +0000 (17:33 -0800)]
Merge pull request #3026 from Dmitry-Me/clarifyKeepAliveUsage1
No need to stick to end of method
Sivarv [Sat, 6 Feb 2016 00:38:49 +0000 (16:38 -0800)]
Merge pull request #3052 from sivarv/master
Fix to assert failure 'ret->OperGet() == GT_RETURN' morph.cpp
Jan Kotas [Sat, 6 Feb 2016 00:07:26 +0000 (16:07 -0800)]
Merge pull request #3053 from wtgodbe/serverGC
Disable usage of Server GC for ubuntu PR test builds in CI
Jan Kotas [Fri, 5 Feb 2016 23:59:25 +0000 (15:59 -0800)]
Merge pull request #3046 from adityamandaleeka/env_pal
Remove InternalStrdup from PAL
Andy Ayers [Thu, 4 Feb 2016 07:01:42 +0000 (23:01 -0800)]
Inliner refactoring: consolidate logging, reporting and dumping
With this change the responsibility for dumping, logging, and reporting
inline decisions is moved into the JitInlineResult class instead of being
distributed throughout the code base. This insures all the relevant inline
information is handled in a consistent manner.
The JitInlineResult is updated to hold a compiler instance and now
requires a context string describing the what the jit is doing as it evaluates
an inline candidate. There are 4 distinct contexts in use currently.
Pat Gavlin [Fri, 5 Feb 2016 22:42:31 +0000 (14:42 -0800)]
Fix a few more binary exprs for the CC.
sivarv [Fri, 5 Feb 2016 22:01:43 +0000 (14:01 -0800)]
Corrected typo in second comment line.
Pat Gavlin [Fri, 5 Feb 2016 22:38:34 +0000 (14:38 -0800)]
Address CR feedback.
William Godbe [Fri, 5 Feb 2016 22:09:47 +0000 (14:09 -0800)]
Disable usage of Server GC for ubuntu PR test builds in CI
Sejong Oh [Fri, 5 Feb 2016 21:24:10 +0000 (13:24 -0800)]
Add more JIT stress modes to corefx testing
Jan Kotas [Fri, 5 Feb 2016 21:12:48 +0000 (13:12 -0800)]
Merge pull request #3030 from krytarowski/netbsd-support-32
Fix build on NetBSD: Walkaround compiler strictness regarding const c…
Jan Kotas [Fri, 5 Feb 2016 21:10:07 +0000 (13:10 -0800)]
Merge pull request #3045 from benpye/allow-llvm-unwind
Detect libunwind features allowing LLVMs libunwind to be used
Jan Kotas [Fri, 5 Feb 2016 21:09:39 +0000 (13:09 -0800)]
Merge pull request #2995 from krytarowski/netbsd-support-29
Fix build on NetBSD: Mark destructors of few classes as virtual
Aditya Mandaleeka [Fri, 5 Feb 2016 20:05:21 +0000 (12:05 -0800)]
Remove InternalStrdup