diff options
author | Frank Ch. Eigler <fche@redhat.com> | 2005-06-14 19:12:24 +0000 |
---|---|---|
committer | Frank Ch. Eigler <fche@gcc.gnu.org> | 2005-06-14 19:12:24 +0000 |
commit | 0ea49890a80cdddc5f79f1b56a3e8b508bdd2e86 (patch) | |
tree | f6e6325380fda0d3045ff8cc52f110a6f9949dee /libmudflap | |
parent | 7666af8941bb4826038df099f5eef0f2a23784bc (diff) | |
download | gcc-0ea49890a80cdddc5f79f1b56a3e8b508bdd2e86.zip gcc-0ea49890a80cdddc5f79f1b56a3e8b508bdd2e86.tar.gz gcc-0ea49890a80cdddc5f79f1b56a3e8b508bdd2e86.tar.bz2 |
re PR libmudflap/21023 (mudflap reports errors for external array variable with no size specified)
2005-06-14 Frank Ch. Eigler <fche@redhat.com>
PR mudflap/21023
* tree-mudflap.c (mudflap_finish_file): Exclude non-public
rather than static objects (!) from libmudflap registration.
* testsuite/libmudflap.c/externs.exp, externs-{1,2}.c: New test files.
* testsuite/libmudflap.c/cfrags.exp: Bypass new sources.
From-SVN: r100950
Diffstat (limited to 'libmudflap')
-rw-r--r-- | libmudflap/ChangeLog | 6 | ||||
-rw-r--r-- | libmudflap/testsuite/libmudflap.c/cfrags.exp | 6 | ||||
-rw-r--r-- | libmudflap/testsuite/libmudflap.c/externs-1.c | 14 | ||||
-rw-r--r-- | libmudflap/testsuite/libmudflap.c/externs-2.c | 2 | ||||
-rw-r--r-- | libmudflap/testsuite/libmudflap.c/externs.exp | 40 |
5 files changed, 67 insertions, 1 deletions
diff --git a/libmudflap/ChangeLog b/libmudflap/ChangeLog index 3cc2238..4e0525c2 100644 --- a/libmudflap/ChangeLog +++ b/libmudflap/ChangeLog @@ -1,5 +1,11 @@ 2005-06-14 Frank Ch. Eigler <fche@redhat.com> + PR mudflap/21023 + * testsuite/libmudflap.c/externs.exp, externs-{1,2}.c: New test files. + * testsuite/libmudflap.c/cfrags.exp: Bypass new sources. + +2005-06-14 Frank Ch. Eigler <fche@redhat.com> + PR libmudflap/21094 * testsuite/libmudflap.c++/*.exp: Assert build tree g++. diff --git a/libmudflap/testsuite/libmudflap.c/cfrags.exp b/libmudflap/testsuite/libmudflap.c/cfrags.exp index c29975c..577a4cc 100644 --- a/libmudflap/testsuite/libmudflap.c/cfrags.exp +++ b/libmudflap/testsuite/libmudflap.c/cfrags.exp @@ -5,7 +5,11 @@ dg-init global srcdir foreach flags [list {} {-static} {-O2} {-O3}] { - foreach srcfile [lsort [glob -nocomplain ${srcdir}/libmudflap.c/*.c]] { + foreach srcfile [lsort [glob -nocomplain \ + ${srcdir}/libmudflap.c/*frag.c \ + ${srcdir}/libmudflap.c/heap*.c \ + ${srcdir}/libmudflap.c/hook*.c \ + ${srcdir}/libmudflap.c/pass*.c]] { set bsrc [file tail $srcfile] setenv MUDFLAP_OPTIONS "-viol-segv" dg-runtest $srcfile $flags "-fmudflap -lmudflap" diff --git a/libmudflap/testsuite/libmudflap.c/externs-1.c b/libmudflap/testsuite/libmudflap.c/externs-1.c new file mode 100644 index 0000000..552801d --- /dev/null +++ b/libmudflap/testsuite/libmudflap.c/externs-1.c @@ -0,0 +1,14 @@ +typedef struct { char *name; } dummy; +extern dummy d[]; + +int +main (void) +{ + dummy *pd = d; + + while (pd->name) + { + printf ("%s\n", pd->name); + pd++; + } +} diff --git a/libmudflap/testsuite/libmudflap.c/externs-2.c b/libmudflap/testsuite/libmudflap.c/externs-2.c new file mode 100644 index 0000000..cecf625 --- /dev/null +++ b/libmudflap/testsuite/libmudflap.c/externs-2.c @@ -0,0 +1,2 @@ +typedef struct { char *name; } dummy; +dummy d[] = { {"a"}, {0} }; diff --git a/libmudflap/testsuite/libmudflap.c/externs.exp b/libmudflap/testsuite/libmudflap.c/externs.exp new file mode 100644 index 0000000..e97e0b6 --- /dev/null +++ b/libmudflap/testsuite/libmudflap.c/externs.exp @@ -0,0 +1,40 @@ +libmudflap-init c +dg-init + +global srcdir subdir + +foreach flags [list {} {-static} {-O2} {-O3}] { + set l1 [libmudflap_target_compile "$srcdir/$subdir/externs-1.c" "externs-1.o" object {additional_flags=-fmudflap}] + set test "externs-1 compilation ${flags}" + if [string match "*mudflap cannot track unknown size extern *d*" $l1] { pass $test } { fail $test } + + set l2 [libmudflap_target_compile "$srcdir/$subdir/externs-2.c" "externs-2.o" object {additional_flags=-fmudflap}] + set test "externs-2 compilation ${flags}" + if [string match "" $l2] { pass $test } { fail $test } + + set l3 [libmudflap_target_compile "externs-1.o externs-2.o" "externs-12.exe" executable {additional_flags=-fmudflap additional_flags=-lmudflap}] + set test "externs-12 linkage ${flags}" + if [string match "" $l3] { pass $test } { fail $test } + + set l4 [libmudflap_target_compile "externs-2.o externs-1.o" "externs-21.exe" executable {additional_flags=-fmudflap additional_flags=-lmudflap}] + set test "externs-21 linkage ${flags}" + if [string match "" $l3] { pass $test } { fail $test } + + setenv MUDFLAP_OPTIONS "-viol-segv" + + remote_spawn host "./externs-12.exe" + set l5 [remote_wait host 10] + set test "externs-12 execution ${flags}" + if {[lindex $l5 0] == 0} { pass $test } { fail $test } + + remote_spawn host "./externs-21.exe" + set l6 [remote_wait host 10] + set test "externs-21 execution ${flags}" + if {[lindex $l6 0] == 0} { pass $test } { fail $test } + + foreach f [glob -nocomplain "externs-*"] { + remote_file build delete $f + } +} + +dg-finish |