public override void Emit()
{
ResolveContext rc = new ResolveContext (this);
IntConstant buffer_size_const = initializer.Resolve (rc) as IntConstant;
if (buffer_size_const == null)
return;
int buffer_size = buffer_size_const.Value;
if (buffer_size <= 0) {
Report.Error (1665, Location, "`{0}': Fixed size buffers must have a length greater than zero", GetSignatureForError ());
return;
}
EmitFieldSize (buffer_size);
#if STATIC
if (Module.HasDefaultCharSet)
fixed_buffer_type.__SetAttributes (fixed_buffer_type.Attributes | Module.DefaultCharSetType);
#endif
Module.PredefinedAttributes.UnsafeValueType.EmitAttribute (fixed_buffer_type);
Module.PredefinedAttributes.CompilerGenerated.EmitAttribute (fixed_buffer_type);
fixed_buffer_type.CreateType ();
base.Emit ();
}