diff options
author | Mike Barnett <mbarnett@microsoft.com> | 2012-01-15 15:39:56 -0800 |
---|---|---|
committer | Mike Barnett <mbarnett@microsoft.com> | 2012-01-15 15:39:56 -0800 |
commit | 7f38aabcee5b8858dd7f87b6d4f6b14b07481872 (patch) | |
tree | 4d883cf0388b577e56ab370abde57fd6bbb8f1ec /BCT/BytecodeTranslator | |
parent | 96fdf08d3d67e15069bab10c9031515992bacdd7 (diff) |
Mark the procedure translated from the module's entry point
with the attribute {:entrypoint}.
Diffstat (limited to 'BCT/BytecodeTranslator')
-rw-r--r-- | BCT/BytecodeTranslator/MetadataTraverser.cs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/BCT/BytecodeTranslator/MetadataTraverser.cs b/BCT/BytecodeTranslator/MetadataTraverser.cs index eb8f96e1..e65ef6a9 100644 --- a/BCT/BytecodeTranslator/MetadataTraverser.cs +++ b/BCT/BytecodeTranslator/MetadataTraverser.cs @@ -90,6 +90,9 @@ namespace BytecodeTranslator { public override void TraverseChildren(IModule module) {
this.PdbReaders.TryGetValue(module, out this.PdbReader);
+ if (!(module.EntryPoint is Dummy))
+ this.entryPoint = module.EntryPoint;
+
base.TraverseChildren(module);
}
@@ -323,6 +326,7 @@ namespace BytecodeTranslator { }
private bool sawCctor = false;
+ private IMethodReference/*?*/ entryPoint = null;
private void CreateStaticConstructor(ITypeDefinition typeDefinition) {
var typename = TypeHelper.GetTypeName(typeDefinition, Microsoft.Cci.NameFormattingOptions.DocumentationId);
@@ -412,6 +416,10 @@ namespace BytecodeTranslator { var proc = decl as Bpl.Procedure;
var formalMap = procInfo.FormalMap;
+ if (this.entryPoint != null && method.InternedKey == this.entryPoint.InternedKey) {
+ decl.AddAttribute("entrypoint");
+ }
+
// FEEDBACK inline handler methods to avoid more false alarms
if (PhoneCodeHelper.instance().PhoneFeedbackToggled && PhoneCodeHelper.instance().isMethodInputHandlerOrFeedbackOverride(method) &&
!PhoneCodeHelper.instance().isMethodIgnoredForFeedback(method)) {
|