Age | Commit message (Collapse) | Author |
|
|
|
|
|
sign.targets defaults assume that the strongname signing will be done by the official strongname keys. We do not want that for ILVerification.dll since we have our own local checked in key.
|
|
|
|
method name and added some verbose output (#5416)
* Fix include/exclude pattern matching by using fully qualified method name and added some verbose output
* Added missing file
* fix stringification of FieldDesc, MethodDesc and TypeDesc
* Print progress as it goes
* Handle empty namespace in GetQualifiedMethodName
* Use simple counters for statistics and incorporated additional PR feedback
* Removed ProcessedMethodTracker class and do all counting/printing logic directly in the VerifyAssembly method
|
|
* Convert ILVerify, ILVerification and ILVerification.Tests to old build
system
* Respond to PR Feedback
* Change target frameworks add runtime config
* Change accessor and debugging files
* Mirror ILCompiler debugging in ILVerify
* Case change
* Add runtime options property to ILVerify runtime json
|
|
|
|
|
|
deltas (#5202)
* Added test case for backwards brfalse_s.
* Fixed MarkPredecessorWithLowerOffset using unsigned byte for short deltas.
|
|
|
|
* Implemented tail-ret sequence verification.
* Added test cases for tail-ret sequence.
* Fixed ILImporter not calling EndImportingInstruction when returning from switch.
* Added ReportMethodEndInsideInstruction to ILImporter.
* Changed ReportMethodEndInsideInstruction to be reported inside FindJumpTargets.
* Added additional tail-ret tests.
* Changed tail-ret verification to be done in ImportCall.
* Changed ReportMethodEndInsideInstruction to be reported for all il stream read operations.
|
|
|
|
* Added tests for backward branching.
* Implemented backward branch verification.
* Added test case for backward branch with complex predecessor.
|
|
* Implemented bad jump verification error.
* Added test cases for bad jump verification.
|
|
readonly ByRefs (#5097)
* Fixed leave target validation using target try index instead of src handler index.
* Fixed IsAssignable not checking readonlyness of byrefs.
* Renamed CatchIntoTry test to be more fitting.
|
|
* Added additional tests for delegate assignment/return.
* Added ftn/delegate test cases for byte/int parameters and enums.
|
|
|
|
* Changed branch target verification to report BranchOutOfFinally instead of BranchOutOfHandler for branching out of finally blocks.
* Added specific errors for fallthrough into/out of exception regions.
* Removed outdated PEVerify errors.
|
|
|
|
* Changed friend assembly parsing to use AssemblyName class instead.
|
|
* Fix direction of variance check in delegate assignment
* Add tests
|
|
* Added some missing newobj verifications.
* Renamed Initonly VerifierError to InitOnly.
* Implemented remaining newobj verifications.
* Added missing readonly call verification.
* Added missing field parent constraints check.
* Added missing check for tail call in exception regions.
* Added found type to Endfilter Int expected error.
* Added tests for newly implemented verification rules.
|
|
* Implemented verification of initonly fields.
* Added tests for initonly field verifications.
|
|
* Added missing castclass verifications.
* Added tests for new castclass verifications.
* Added missing box verifications.
* Added tests for new box verifications.
* Implemented valid leave target verification.
* Added tests for leave target verification.
* Added Verifier errors for BadBranch, UnknownOpcode and MethodFallthrough.
* Changed disjoint try block determination algorithm and added additional test cases.
|
|
|
|
|
|
|
|
* Implemented InstantiatedGenericParameter in order to be able to correctly cast constraints with generic parameter instantiations.
* Added test case for casting constrained generic with generic parameter inside constraint.
* Changed InstantiatedGenericParameter to be able to handle complex generic constraints.
* Added GetInstantiatedGenericParameter to TypeSystemContext.
* Changed generic type / method instantation to be created by InstantiatedGenericParameter.
|
|
* WIP: Implemented class and method access verification.
* Changed access verifications to appropriately cast to EcmaType/Method.
* Added test cases for type / method access verifications.
* Implemented method signature access verification.
* Added test cases for method signature access verification.
* Implemented field access verification.
* Added tests for field access verification.
* Added special test case for accessing family field of superclass of containing class. Refactored some AccessTest names.
* Added additional instance parameter to field/method access checks, to check family access.
* Implemented access verification for friend assemblies.
* Added relevant PEVerify code part for security critical code.
* Added try-catch to public key comparison.
|
|
* Implemented verification of delegate creation.
* Added test cases for delegate creation pattern.
* Implemented delegate compatibility check.
* Added tests for delegate compatibility checks.
* Added checks for call to non-final virtual methods.
* Fixed using call on sealed type methods reporting this mismatch.
* Added tests for this mismatch verification.
* Added additional tests for modifying this pointer after base call.
|
|
* Implemented tracking of 'this' state.
* Fixed specific instructions using unsafe pop.
* Added test support for methods with special names.
* Added documentation for test cases of special name methods.
* Added test cases for this state tracking.
* Fixed try / leave not propagating this state. Changed this state tracking to allow field access on uninitialized this.
|
|
instantiation (#4641)
* Added test case for generic instantiation with generic constraint instantiated with generic parameter.
* Implemented instantiation of generic parameter constraints in constraints check.
* Changed GetInstantiatedConstraints to use ArrayBuilder instead of List.
* Added recursive constraint instantiation.
* Added instantiation context to be able to instantiate generic generic constraints.
* Added additional tests for CheckConstraints with InstantiationContext.
|
|
* Implement verification of return instruction. Added PermanentHome flag to StackValue.
* Fixed test cases not returning correctly.
* Reverted load static field changes.
* Added trackObjCtor flag and added relevant references to PEVerify code blocks.
* Added test cases for return instruction.
|
|
(#4636)
* Fixed fallthrough into filter/catch/finally causing assert.
* Fixed catch block of TryIntoFilter test not leaving correctly.
|
|
* Fixed block re-verification after stack merge possibly causing endless loop.
* Refactored BasicBlock.EndOffset to BasicBlock.ImportState.
|
|
(#4576)
* Fixed assigning interface with variance to object generating verification error.
* Added test cases for casting variant interface to object.
* Removed interface check in non variant path of CanCastToClass.
|
|
* Added VerifierError for ldftn/ldvirtftn of constructor.
* Implemented basic ldftn and basic delegate creation functionality.
* Added TestName attribute to TestCases to further shorten display name of tests.
* Implemented basic ldftn functionality and constraint checks. Moved type conversions to helper class.
* Added test cases for ldftn and newobj of constrained generic types.
* Added test cases for ldvirtftn. Fixed display of invalid test errors.
* Changed constraints checks to use ConstraintsHelper class. Added additional test cases for GenericParam as generic parameter with special constraints.
* Added additional constraints check for generic parameters with special constraints.
* Fixed typo in filename of TypeSystemConstraintsHelpers.
* Fixed typo in 'ILDisassember'.
* Slight code refactoring. Added reference to test case assert issue.
|
|
* Added test case for unequal stack merging on fallthrough.
* Added test case for merging stack with constrained generic.
* Added additional tests for stack merging.
* Implemented merging of stack values for import fallthrough.
* Modified stack merge for arrays and block reverification.
* Changed ErrorCount check to be performed in ImportFallthrough.
* Changed IsValidBranchTarget to use ref var.
* Implemented Equals for StackValue.
* Added test for invalid unequal stack merge with generics.
* Fixed test AssignReturnValueFromContrainedProperty not using box instruction.
* Refactored and optimized stack merging.
* Removed uneccessary null check in StackValue == operator. Renamed MergeClasses.
* Fixed stack merging producing false negatives for array constrained generics.
|
|
instruction of try blocks (#4381)
* Changed theory display name and categorised theories with trait attributes.
* Fixed IsValidBranchTarget not allowing to branch to the first instruction of try blocks.
* Added additional tests for branching into/out of protected blocks.
* Removed redundant moduleName info from TestCase toString.
* Added additional test cases for branching into another try block outside of the current one.
* Added method parameters to error output in order to be able to distinguish between overloaded methods.
* Added additional test case for branching into an inner try.
* Added additional valid test case for branching to the start of a double nested try-block.
* Added additional test case for branching into try with predecessor.
* Fixed IsValidBranchTarget not checking for double nested try blocks.
* Fixed jumping to nested try start from outside of try being verified and added a test case for this scenario.
|
|
* Added test case for assigning a string to a ref string.
* Modified store indirect to correctly check types of value and address.
* Added additional test case for assigning string to string ref as object.
* Changed stind.ref to not replace typeToken with Object but address type.
|
|
* Added test case for issue #4359.
* Changed Importer.Verify to use InstantiatedMethod/MethodForInstantiatedType for generic methods.
* Added test cases of #4065.
* Added additional test case for assigning an Int32 to IComparable through boxing.
* Changed order of thisType instantiation and method instantiation.
|
|
* Added testcases for issue 4357 and 4358.
* Fixed ILImporter calling ImportStoreElement with Int32 instead of Int64 for i8.
* Added methods to get verifcation, intermediate and reduced type.
* Fix for issue 4357.
* Fix for issue #4358.
|
|
* Added value pop for switch instruction.
* Added switch instruction tests and todos for jump target verification.
* Added branch target verification with test cases.
* Moved switch test cases into seperate file.
* Refactored switch/branch tests to use meaningful labels and not use locals.
|
|
|
|
|
|
(#3570) (#4291)
* Add additional command line argument to support different system module names (#3570)
* Added shortcut for system-module command.
* Adjusted option help descriptions and changed system-module default value initialization.
|
|
* Use normalized stack value for assignability check in ImportStoreIndirect
* Push actual type onto stack in ImportLoadIndirect
- fixes #3999
* Added object ref check for ldind.ref + test
|
|
|
|
|
|
While the scanner is not trying to be an IL validator, we should at
least not crash.
* Update IL importer to provide hooks for bad IL (this is mostly to
prevent it from crashing with IndexOutOfRangeExceptions).
* Remove exception throwing from the shared ILImporter (while we might
want to throw most of the time, ILVerify probably doesn't want to).
* Do not crash when trying to determine static bases of instance fields.
* Fix constrained method handling.
|