diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/ClassParseException.java b/com.amd.aparapi/src/java/com/amd/aparapi/ClassParseException.java index 7d1753463607677f4a069c1c76d7a425d66a8e60..cbf564ea13fe5a329a64e10f26d00450c677dfcd 100644 --- a/com.amd.aparapi/src/java/com/amd/aparapi/ClassParseException.java +++ b/com.amd.aparapi/src/java/com/amd/aparapi/ClassParseException.java @@ -79,7 +79,8 @@ package com.amd.aparapi; ACCESSEDOBJECTONLYSUPPORTSSIMPLEPUTFIELD("We don't support putfield instructions beyond simple setters"), // ACCESSEDOBJECTSETTERARRAY("Passing array arguments to Intrinsics in expression form is not supported"), // MULTIDIMENSIONARRAYASSIGN("Can't assign to two dimension array"), // - MULTIDIMENSIONARRAYACCESS("Can't access through a two dimensional array"); + MULTIDIMENSIONARRAYACCESS("Can't access through a two dimensional array"),// + MISSINGLOCALVARIABLETABLE("Method does not contain a local variable table (recompile with -g?)"); private String description; diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/MethodModel.java b/com.amd.aparapi/src/java/com/amd/aparapi/MethodModel.java index 12beb19250ecf6a439e24aefdca01ade1f447673..be1c8f3ec5b07e9c72ef833fe7d60720dc5dc6f8 100644 --- a/com.amd.aparapi/src/java/com/amd/aparapi/MethodModel.java +++ b/com.amd.aparapi/src/java/com/amd/aparapi/MethodModel.java @@ -1472,6 +1472,9 @@ class MethodModel{ if (Config.enableAllowMissingLocalVariableTable && localVariableTableEntry == null) { logger.warning("class does not contain a LocalVariableTable - but enableAllowMissingLocalVariableTable is set so we are ignoring"); } else { + if (localVariableTableEntry == null){ + throw new ClassParseException(ClassParseException.TYPE.MISSINGLOCALVARIABLETABLE); + } for (LocalVariableInfo localVariableInfo : localVariableTableEntry) { final boolean DISALLOWARRAYLOCALVAR = false; if (DISALLOWARRAYLOCALVAR && localVariableInfo.getVariableDescriptor().startsWith("[")) {