Age | Commit message (Collapse) | Author |
|
* ILParser.jay: Fix the float32(<long>) case in the previous change.
svn path=/branches/mono-2-6/mcs/; revision=153544
|
|
* ILParser.jay: Fix support for hex float literals on big-endian platforms.
svn path=/branches/mono-2-6/mcs/; revision=153541
|
|
* TypeDef.cs: Add field method_list to preserve definition
order of methods when emiting the PE file.
svn path=/trunk/mcs/; revision=134840
|
|
Fix bug #494221
* MethodDef.cs (BeginLocalsScope): New.
(EndLocalsScope): New.
(AddLocals):
(GetNamedLocal): Support scoping for .locals
In ilasm/parser:
Fix bug #494221.
* ILParser.jay (scope_block_begin): Mark begin .locals scope.
(scope_block): Mark end .locals scope.
svn path=/trunk/mcs/; revision=132111
|
|
In ilasm/codegen:
* MethodDef.cs (GetNamedLocalSlot): Return -1 if local var not found.
In ilasm/parser:
* ILParser.jay (instr): Handle unidentified local var id.
In ilasm/scanner:
* StringHelper.cs (startIdChars): New. Set of chars that can start an
identifier.
(Start): Use startIdChars instead of idchars.
svn path=/trunk/mcs/; revision=131736
|
|
* StringHelper.cs: Handle octal values in strings.
Patch from Stephen Gennard (stephen@gennard.net)
svn path=/trunk/mcs/; revision=131249
|
|
* MethodDef.cs (WriteCode): Emit labels which use offsets as absolute PEAPI
CilLabels.
svn path=/trunk/mcs/; revision=130692
|
|
* ILParser.jay: Fix integer labels in handler blocks.
svn path=/trunk/mcs/; revision=130690
|
|
svn path=/trunk/mcs/; revision=128880
|
|
svn path=/trunk/mcs/; revision=128798
|
|
* Add support for `strict' in .method declaration
svn path=/trunk/mcs/; revision=122973
|
|
* Makefile */Makefile build/profiles/*.make: Rename the 'default'
profile to 'net_1_1'.
svn path=/trunk/mcs/; revision=115166
|
|
Fix bug #405383
* MethodPointerTypeRef (Clone): Add missing null ref check.
Patch from Andrea Carlo Ornstein <andrea.ornstein@st.com>
In ilasm/tests:
* test-method-pointer.il: New.
svn path=/trunk/mcs/; revision=107007
|
|
svn path=/trunk/mcs/; revision=105584
|
|
* DebuggingInfo.cs: Reflect latest symbol writer changes.
svn path=/trunk/mcs/; revision=105225
|
|
In class/PEAPI:
Fix bug #367114.
* Code.cs (TryBlock.ResolveCatchBlocks): New.
(CILInstructions.AddTryBlock): Resolve the catch blocks with the new
method.
(Catch..ctor): Add new .ctor to allow exceptions of any type.
(Catch.ResolveType): New. Add the exception type to the metadata.
In ilasm/codegen:
Fix bug #367114.
* CatchBlock.cs: Allow exception to be of any type (BaseTypeRef) and not
just a class (BaseClassRef).
In ilasm/parser:
Part of fix for bug #367114.
* ILParser.jay (seh_clause): Allow exception to be of any type and not
just class.
svn path=/trunk/mcs/; revision=104636
|
|
Fix bug #364580.
* MethodDef.cs (CreateSignature): Add new @include_optional and
@call_conv param. Make private.
(CreateVarargSignature): Likewise.
(CreateSignature): Add new static method for vararg and other methods.
(GetVarargSig): Add new @full_signature param to uniquely identify
vararg methods.
* CodeGen.cs (ResolveVarargMethod): This now takes two signatures - one
with only the required params and the other with the optional ones, to
correctly resolve global vararg methods.
* BaseTypeRef.cs:
* GenericTypeInst.cs:
* GlobalMethodRef.cs:
* PrimitiveTypeRef.cs:
* TypeDef.cs: Track api changes.
In ilasm/parser:
* ILParser.jay: Track api changes.
svn path=/trunk/mcs/; revision=104628
|
|
* DebuggingInfo.cs: use new DefineMethod API. Remove useless
variable.
* MethodDef.cs: remove useless variable.
svn path=/trunk/mcs/; revision=100319
|
|
* MethodDef.cs: Mono.CompilerServices API has changed in an incompatible way
since Erven's patch. Fixed it to follow the new one.
svn path=/trunk/mcs/; revision=100037
|
|
* Code.cs: Add new method: GetLocalVars() for ilasm support for
emitting local variable names.
2008-04-07 Erven Rohou <erven.rohou@st.com>
* DebugInfo.cs, MethodDef.cs: Add support for emitting variable names
in mdb file.
svn path=/trunk/mcs/; revision=100031
|
|
svn path=/trunk/mcs/; revision=97349
|
|
* ILParser.jay (seh_clause): catch can take generic class refs also.
svn path=/trunk/mcs/; revision=97348
|
|
* Driver.cs: Use Report.Message for emitting messages.
* Report.cs (AssembleFile): Honor 'quiet'.
Patch from Andrea Carlo Ornstein <andrea.ornstein@st.com>
svn path=/trunk/mcs/; revision=96334
|
|
Symbol writer will already add .mdb to it. Fixes bug #359516.
* Driver.cs: Removed crazy logic prevent debug symbol from being
created when /debug is set.
svn path=/trunk/mcs/; revision=95187
|
|
* ExternMethodRef.cs (ResolveVararg): Fix the check for sentinel.
svn path=/trunk/mcs/; revision=95005
|
|
2008-01-03 Rodrigo Kumpera <rkumpera@novell.com>
* EmiteByteInstr.cs: Fixed typo in class name.
In parser:
2008-01-03 Rodrigo Kumpera <rkumpera@novell.com>
* ILParser.jay: Fixed typo in EmitByteInstr class name.
svn path=/trunk/mcs/; revision=92210
|
|
2007-12-31 Rodrigo Kumpera <rkumpera@novell.com>
* test-emitbyte.il: new test for .emitbyte directive
In codegen:
2007-12-31 Rodrigo Kumpera <rkumpera@novell.com>
* EmiteByteInst.cs: added. Implements support
for the .emitbyte directive.
In .:
2007-12-31 Rodrigo Kumpera <rkumpera@novell.com>
* ilasm.exe.sources: added EmiteByteInst.cs.
In parser:
2007-12-31 Rodrigo Kumpera <rkumpera@novell.com>
* ILParser.jay: Implement .emitbyte directive
svn path=/trunk/mcs/; revision=92063
|
|
2007-12-31 Rodrigo Kumpera <rkumpera@novell.com>
* SwitchInstr.cs (Emit): Switch from using strings
to LabelInfo.
In parser:
2007-12-31 Rodrigo Kumpera <rkumpera@novell.com>
* ILParser.jay: Create LabelInfo instances for switch labels,
this allows the code generator to spot invalid labels.
Fixes #350480.
svn path=/trunk/mcs/; revision=92061
|
|
* test-method-pointer-in-signature.il: New. Test for overloads
that use method pointers.
svn path=/trunk/mcs/; revision=87161
|
|
* MethodPointerTypeRef.cs (.ctor): generate
full name of the method pointer. This is required
to alow overloading with method pointers.
svn path=/trunk/mcs/; revision=87160
|
|
* InstrTable.cs: add brzero alias.
svn path=/trunk/mcs/; revision=82144
|
|
* ILParser.jay: Support for variance related generic modifiers <+T> and <-T>
svn path=/trunk/mcs/; revision=78688
|
|
* generics-variance.il: New. Test for variance related generic modifiers <+T> and <-T>
svn path=/trunk/mcs/; revision=78687
|
|
* ILParser.jay: fix BitConverter use on big endian archs
(this was likely the cause of Zoltan's change in r72237
which has been reverted in r74485).
svn path=/trunk/mcs/; revision=74884
|
|
* err-custom-mod-1.il: New. Test for custom mods.
In tests:
* test-custom-mod-1.il: New. Test for custom mods.
svn path=/trunk/mcs/; revision=70798
|
|
* BaseClassRef.cs (Clone): Move to ..
* BaseTypeRef.cs (Clone): .. here.
* Sentinel.cs: Implement abstract Clone method.
* MethodPointerTypeRef.cs: Likewise.
* PrimitiveTypeRef.cs: Likewise.
* ModifiableType (MakeCustomModified): Add to SigMod.
* GenericTypeInst.cs:
* GenericParamRef.cs:
* TypeRef.cs:
* ExternTypeRef.cs: Update.
In ilasm/parser:
* ILParser.jay (GetTypeRef): Use BaseTypeRef.Clone
svn path=/trunk/mcs/; revision=70730
|
|
* PropertyDef.cs: support more than one .other method in properties.
svn path=/trunk/mcs/; revision=69424
|
|
* EventDef.cs: support more than one .other method in events.
svn path=/trunk/mcs/; revision=69422
|
|
In ilasm/codegen:
* CodeGen.cs (CodeGen.BeginAssemblyRef): Add param for attributes.
(SetAssemblyName): Rename to ..
(SetThisAssembly): .. this. Add param for attributes.
* ExternTable (ExternAssembly.ctor): Likewise.
(ExternAssembly.Resolve): Add attributes.
(ExternTable.AddAssembly): Add param for attributes.
(ExternTable): Update to changes.
* Assembly.cs (Assembly.SetAssemblyAttr): New.
(Assembly.Resolve): Add the flags.
In ilasm/scanner:
* ILTables.cs (keywords): Add 'retargetable'.
In ilasm/parser:
* ILParser.jay (K_RETARGETABLE): New.
(asm_attr): Add rule for K_RETARGETABLE.
(assembly_head): Handle attributes.
(assemblyref_head): Add asm_attr.
In class/PEAPI:
* Metadata.cs (AssemAttr.Retargetable): New.
(AssemblyRef.AddAssemblyAttr): New.
svn path=/trunk/mcs/; revision=67582
|
|
* global2.il: New.
* abs_method*.il: New. Tests for abstract methods.
In ilasm/codegen:
* TypeDef.cs (.ctor): If the type is an interface, then make it
abstract.
(TypeDef.AddMethodDef): Set an interface method abstract and virtual if
it lacks either of the attributes.
* MethodDef.cs (MethodDef.FullName): New.
(MethodDef.WriteCode): Make global methods, non-abstract and static.
Interface cannot have a non-static method with a body.
Update error messages to use new FullName property.
In ilasm/errors:
* abs_method4.il:
* abs_method9.il: New. Tests for abstract methods.
svn path=/trunk/mcs/; revision=62814
|
|
svn path=/trunk/mcs/; revision=61525
|
|
* test-no-body.il: New. Test for method with no body.
* test-perm-pass-3.il: Make the class abstract.
In ilasm/codegen:
* TypeDef.cs (TypeDef.IsAbstract): New.
* MethodDef.cs (MethodDef.WriteCode): Parent type must also be abstract
for an abstract method. Abstract methods cannot have a body.
Report errors for body with different implementation attributes like
native/runtime/unmanaged etc.
If the method has no body, then emit a 'ret'.
In ilasm/errors:
* err-native.il:
* err-pinvoke-a.il:
* err-abstract.il:
* err-runtime.il:
* err-internalcall.il: New.
svn path=/trunk/mcs/; revision=61524
|
|
* TypeDef.cs (TypeDef.AddFieldDef):
(TypeDef.Define): Use Report.Warning instead of Console.Error.WriteLine
(TypeDef.AddMethodDef): Likewise. Also, use methoddef.Location .
* ExternTable.cs (ExternTable.GetTypeRef): Likewise.
* MethodDef.cs (MethodDef.StartLocation): New.
In ilasm:
* Report.cs (Report.FilePath): New, static property.
(Report.Error): Remove overload with file_path param.
(Report.Warning): New.
* Driver.cs (DriverMain.Run): Set Report.FilePath .
(DriverMain.ProcessFile): Update use of Report.Error .
In ilasm/parser:
* ILParser.jay : Update to use Report.Warning instead of
Console.Error.WriteLine
svn path=/trunk/mcs/; revision=61521
|
|
* MethodDef.cs (GetNamedParamPos): Return -1 if param_list is null.
In ilasm/errors:
* err-ldarg.il: New.
In ilasm/parser:
* ILParser.jay (instr | INSTR_PARAM ..): Report error if the param is not
found.
svn path=/trunk/mcs/; revision=61360
|
|
* test-cattr-1.il: New. Test for custom attributes on return type of
a method.
In ilasm/codegen:
* MethodDef.cs (MethodDef): Use a ParamDef for return type, instead of a
BaseTypeRef.
(MethodDef.ctor): Update.
(MethodDef.AddParamDefaultValue): Remove.
(MethodDef.GetParam): Likewise.
(MethodDef.Resolve): Update to use ret_param instead of ret_type.
In ilasm/errors:
* err-cattr.il: New.
In ilasm/parser:
* ILParser.jay (method_decl | D_PARAM ..): Param index is zero-based,
with zero representing the return value.
Update to check CurrentCustomAttrTarget for null before using it.
In class/PEAPI:
* PEAPI.cs (PEFile.AddMethod): Add overload for return type as Param
instead of PEAPI.Type .
* Metadata.cs (MetaDataElement.HasCustomAttr): New. Temporary hack.
(Param.HasMarshalInfo): New.
(ClassDef.AddMethod): Add overload for return type as Param.
(MethodDef.ctor): Change internal .ctor's sig to take Param instead of
PEAPI.Type for return type.
(MethodDef.retType): Remove.
(MethodDef.TypeSig): Update to use ret_param always.
(MethodDef.BuildTables): Add ret_param to Param table only if it has
marshal info or custom attributes.
svn path=/trunk/mcs/; revision=61358
|
|
(TypeDef.IsEnumType): New.
(TypeDef.Define): Don't seal System.ValueType or System.Enum .
svn path=/trunk/mcs/; revision=61319
|
|
* Assembly.cs: New. Represents a '.assembly {}' (assembly manifest).
* CodeGen.cs: Update to use the Assembly class.
In ilasm:
* ilasm.exe.sources: Add Assembly.cs
* Driver.cs: Update to use the new Assembly class.
* ilasm.exe.sources: Add PermissionMember.cs, PermissionSet.cs &
Permission.cs
In ilasm/parser:
* ILParser.jay: Update to use new Assembly class.
svn path=/trunk/mcs/; revision=61164
|
|
In ilasm/tests:
* test-perm_pass-3.il: New. Test for 2.0 style declarative security
attributes.
In ilasm/codegen:
* PermissionSet.cs: New.
* Permission.cs: New.
* PermissionMember.cs: New. Classes for 2.0 metadata format of
declarative security.
* DeclSecurity.cs (DeclSecurity.AddPermissionSet): New. Overload for new
PermissionSet class.
(DeclSecurity.AddTo): Add new style PermissionSets also.
* CodeGen.cs (CodeGen.AddPermisson): Handle new PermissionSets also.
* ExternTable.cs (ExternAssembly.AssemblyName): New.
In ilasm/scanner:
* ILTables.cs (keywords): Move 'property' out of NET_2_0 .
In ilasm/parser:
Add support or 2.0 style declarative security attributes.
* ILParser.jay (primitive_type): New. Extracted from 'type'.
(field_init_primitive): New. Extracted from 'field_init', with all
primitive types.
(sec_decl | ..): New rule for 2.0 style permissions.
(permissions):
(permission):
(permission_members):
(permission_member):
(perm_mbr_nameval_pair):
(prop_or_field): New rules for 2.0 style permissions.
(AddSecDecl): New.
In class/PEAPI:
* Metadata.cs (DeclSecurity): Rename to ..
(BaseDeclSecurity): .. this.
(DeclSecurity): New. Derive from BaseDeclSecurity.
(DeclSecurity_20): Likewise. For 2.0 style declaritive security.
(PermissionSet): New.
(Permission): New.
(PermissionMember): New.
(MetaData.AddDeclSecurity): Update to use BaseDeclSecurity.
(MetaData.BuildMetaData): Likewise.
* PEAPI.cs (PEFile.AddDeclSecurity): New overload for new PermissionSet
class.
svn path=/trunk/mcs/; revision=61158
|
|
AddPermissionSet methods. Add 'DeclSecurity' property.
* TypeDef.cs: Update implementation of IDeclSecurityTarget interface.
* MethodDef.cs: Likewise.
* ExternTable.cs: Likewise.
* CodeGen.cs (CodeGen.AddPermission): Use IDeclSecurityTarget.DeclSecurity .
svn path=/trunk/mcs/; revision=60978
|
|
* test-modifiers.il: New. Test for custom modifiers, modreq & modopt.
In ilasm/parser:
* ILParser.jay (type |type MODREQ ..): Use CustomModifier.modreq .
svn path=/trunk/mcs/; revision=60592
|