[syn] Print detailed messages to .md if publication is disabled

Signed-off-by: Michael Schaffner <msf@google.com>
diff --git a/util/dvsim/SynCfg.py b/util/dvsim/SynCfg.py
index e3acd62..1cddae3 100644
--- a/util/dvsim/SynCfg.py
+++ b/util/dvsim/SynCfg.py
@@ -12,7 +12,7 @@
 from tabulate import tabulate
 
 from OneShotCfg import OneShotCfg
-from utils import subst_wildcards
+from utils import print_msg_list, subst_wildcards
 
 
 class SynCfg(OneShotCfg):
@@ -343,6 +343,29 @@
             else:
                 results_str += "No power report found\n\n"
 
+            # Append detailed messages if they exist
+            # Note that these messages are omitted in publication mode
+            hdr_key_pairs = [("Flow Warnings", "flow_warnings"),
+                             ("Flow Errors", "flow_errors"),
+                             ("Analyze Warnings", "analyze_warnings"),
+                             ("Analyze Errors", "analyze_errors"),
+                             ("Elab Warnings", "elab_warnings"),
+                             ("Elab Errors", "elab_errors"),
+                             ("Compile Warnings", "compile_warnings"),
+                             ("Compile Errors", "compile_errors")]
+
+            has_msg = False
+            for _, key in hdr_key_pairs:
+                if key in self.result['messages']:
+                    has_msg = True
+                    break
+
+            if has_msg and not self.args.publish:
+                results_str += "\n### Errors and Warnings for Build Mode `'" + mode.name + "'`\n"
+                for hdr, key in hdr_key_pairs:
+                    msgs = self.result['messages'].get(key)
+                    results_str += print_msg_list("#### " + hdr, msgs, self.max_msg_count)
+
             # TODO: add support for pie / bar charts for area splits and
             # QoR history