diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2014-11-26 15:50:36 +0100 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2014-11-26 15:50:36 +0100 |
commit | c3b615f875ed2cf8418453c79c4621d2dc61b0a0 (patch) | |
tree | 8e125450f2313e35d36618ac8c1dfca62688afc3 /test | |
parent | 1ccc058794381d7d7c2ff704786009019489001d (diff) | |
download | compcert-c3b615f875ed2cf8418453c79c4621d2dc61b0a0.tar.gz compcert-c3b615f875ed2cf8418453c79c4621d2dc61b0a0.zip |
Wrong handling of block-local function declarations (in Elab.ml).
Diffstat (limited to 'test')
-rw-r--r-- | test/regression/Makefile | 3 | ||||
-rw-r--r-- | test/regression/Results/decl1 | 1 | ||||
-rw-r--r-- | test/regression/decl1.c | 21 |
3 files changed, 24 insertions, 1 deletions
diff --git a/test/regression/Makefile b/test/regression/Makefile index f4f96233..5c601211 100644 --- a/test/regression/Makefile +++ b/test/regression/Makefile @@ -16,7 +16,8 @@ TESTS=int32 int64 floats floats-basics \ expr1 expr6 funptr2 initializers initializers2 initializers3 \ volatile1 volatile2 volatile3 \ funct3 expr5 struct7 struct8 struct11 casts1 casts2 char1 \ - sizeof1 sizeof2 binops bool for1 switch switch2 compound + sizeof1 sizeof2 binops bool for1 switch switch2 compound \ + decl1 # Can run, but only in compiled mode, and have reference output in Results diff --git a/test/regression/Results/decl1 b/test/regression/Results/decl1 new file mode 100644 index 00000000..fa8248b0 --- /dev/null +++ b/test/regression/Results/decl1 @@ -0,0 +1 @@ +Result is 2 diff --git a/test/regression/decl1.c b/test/regression/decl1.c new file mode 100644 index 00000000..d2aedba7 --- /dev/null +++ b/test/regression/decl1.c @@ -0,0 +1,21 @@ +#include <stdio.h> + +/* Local function declarations */ + +int f (int p) +{ + p = p + 1; + return p; +} + +int main (int argc, char **argv) +{ + int (*p)(); + int f(); + int i; + + p = f; + i = (*p)(1); + printf("Result is %d\n", i); + return 0; +} |