Print the stack trace for exception diagnostics by default.

Change-Id: I2c594d707e5d1a9cfb2a1296ad9f0713424f4ec3
diff --git a/src/main/java/com/android/tools/r8/utils/ExceptionDiagnostic.java b/src/main/java/com/android/tools/r8/utils/ExceptionDiagnostic.java
index 3e4a44d..78d47c2 100644
--- a/src/main/java/com/android/tools/r8/utils/ExceptionDiagnostic.java
+++ b/src/main/java/com/android/tools/r8/utils/ExceptionDiagnostic.java
@@ -9,6 +9,8 @@
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.position.Position;
 import java.io.FileNotFoundException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.nio.file.FileAlreadyExistsException;
 import java.nio.file.NoSuchFileException;
 
@@ -45,6 +47,11 @@
     if (e instanceof FileAlreadyExistsException) {
       return "File already exists: " + e.getMessage();
     }
-    return e.getMessage();
+    StringWriter stack = new StringWriter();
+    e.printStackTrace(new PrintWriter(stack));
+    String message = e.getMessage();
+    return message != null
+        ? StringUtils.joinLines(message, "Stack trace:", stack.toString())
+        : StringUtils.joinLines(stack.toString());
   }
 }
diff --git a/src/main/java/com/android/tools/r8/utils/ExceptionUtils.java b/src/main/java/com/android/tools/r8/utils/ExceptionUtils.java
index ee11bcf..d77adfd 100644
--- a/src/main/java/com/android/tools/r8/utils/ExceptionUtils.java
+++ b/src/main/java/com/android/tools/r8/utils/ExceptionUtils.java
@@ -11,8 +11,6 @@
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.origin.PathOrigin;
 import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringWriter;
 import java.nio.file.FileSystemException;
 import java.nio.file.Paths;
 import java.util.function.Consumer;
@@ -67,14 +65,7 @@
       } catch (ResourceException e) {
         throw reporter.fatalError(new ExceptionDiagnostic(e, e.getOrigin()));
       } catch (AssertionError e) {
-        // Most of our assertions don't have a message, create a wrapper that has the stack as the
-        // message.
-        if (e.getMessage() == null) {
-          StringWriter stack = new StringWriter();
-          e.printStackTrace(new PrintWriter(stack));
-          e = new AssertionError(stack.toString(), e);
-        }
-        throw reporter.fatalError(new ExceptionDiagnostic(e, Origin.unknown()), e);
+        throw reporter.fatalError(new ExceptionDiagnostic(e, Origin.unknown()));
       }
       reporter.failIfPendingErrors();
     } catch (AbortException e) {