Implicit NPE support when no exception given to throw.

This change adds support for creating an implicit NPE when throw is used
without giving an exception object. It extends the CatchTest to check
the functionality is correct. It also weakens a too strong assertion
about when an address lies within code.

Change-Id: I33742cce4deb31b4e0e9b7bd386f78e8cba3e53a
diff --git a/test/IntMath/IntMath.java b/test/IntMath/IntMath.java
index 4c445b7..bffa894 100644
--- a/test/IntMath/IntMath.java
+++ b/test/IntMath/IntMath.java
@@ -103,10 +103,19 @@
         throw new NullPointerException();
     }
 
+    static void throwImplicitNullPointerException() {
+      throw null;
+    }
+
     static int catchBlock(int x) {
         try {
-            x += 123;
-            throwNullPointerException();
+            if (x == 1000) {
+                x += 123;
+                throwNullPointerException();
+            } else {
+                x += 321;
+                throwImplicitNullPointerException();
+            }
         } catch (NullPointerException npe) {
             x += 456;
         }