aboutsummaryrefslogtreecommitdiffstats
path: root/tests/bugs1924/336
diff options
context:
space:
mode:
authorAndrew Clement <aclement@vmware.com>2025-04-15 15:26:29 -0700
committerAndrew Clement <aclement@vmware.com>2025-04-15 15:26:29 -0700
commit2b0e11d8633c84e8b0827e0eb77b4639fe0914e4 (patch)
tree1a7973c688df646a7d7d6db43d5f7d95c63f3feb /tests/bugs1924/336
parente0d2b60288f20d00071cf5e0134a31b5758bb006 (diff)
downloadaspectj-master.tar.gz
aspectj-master.zip
Fix more "Attempt to push null on operand stack" variantsHEADmaster
This change fixes more cases in the *Declaration classes that generate code. Both #336 and #337 are due to the same piece of code not correctly computing the resolved position because of copying it from a source method when it needs recomputing for the method being generated. In particular primitive types and/or double slot types (like long or double) cause the code to miscompute the resolved positions or set the wrong type of expected type on the stack. Fixes #336 Fixes #337
Diffstat (limited to 'tests/bugs1924/336')
-rw-r--r--tests/bugs1924/336/Bang.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/bugs1924/336/Bang.java b/tests/bugs1924/336/Bang.java
new file mode 100644
index 000000000..276484c51
--- /dev/null
+++ b/tests/bugs1924/336/Bang.java
@@ -0,0 +1,17 @@
+public class Bang {
+
+public static void main(String[] argv) {
+ new Bang().m("a",1,"b");
+}
+
+ public int m(String a, int i, String b) {
+ return 42;
+ }
+
+}
+
+aspect X {
+ int around(String a, int b, String d): execution(* m(..)) && args(a,b,d) {
+ return proceed(a,b,d);
+ }
+}