[mudflap] testing fixes
Frank Ch. Eigler
fche@redhat.com
Mon May 17 21:17:00 GMT 2004
Hi -
The following patches address some minor problems in libmudflap,
as found during some partially-failing test builds.
+2004-05-17 Frank Ch. Eigler <fche@redhat.com>
+
+ * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
+ from source code with errors.
+
Index: tree-mudflap.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-mudflap.c,v
retrieving revision 2.3
diff -u -p -r2.3 tree-mudflap.c
--- tree-mudflap.c 15 May 2004 23:07:52 -0000 2.3
+++ tree-mudflap.c 17 May 2004 20:13:59 -0000
@@ -743,6 +743,7 @@ mx_register_decls (tree decl, tree *stmt
if ((TREE_CODE (decl) == VAR_DECL || TREE_CODE (decl) == PARM_DECL) &&
(! TREE_STATIC (decl)) && /* auto variable */
(! DECL_EXTERNAL (decl)) && /* not extern variable */
+ (TREE_TYPE (decl) != error_mark_node) && /* not decl with error */
(COMPLETE_OR_VOID_TYPE_P (TREE_TYPE (decl))) && /* complete type */
(! mf_marked_p (decl)) && /* not already processed */
(TREE_ADDRESSABLE (decl))) /* has address taken */
+2004-05-17 Frank Ch. Eigler <fche@redhat.com>
+
+ * lib/libmudflap.exp (libmudflap-init): For C++ test cases only,
+ import some build settings from libstdc++-v3 testsuite_flags.
+ * .../cfrags.exp, .../c++frags.exp, .../cthfrags.exp: Corresponding
+ changes to pass test language.
+
+ * mf-runtime.c (__mfu_check): Poison the cache with antidote for
+ quicker mode-nop handling.
+
Index: mf-runtime.c
===================================================================
RCS file: /cvs/gcc/gcc/libmudflap/mf-runtime.c,v
retrieving revision 1.2
diff -u -p -r1.2 mf-runtime.c
--- mf-runtime.c 13 May 2004 06:41:03 -0000 1.2
+++ mf-runtime.c 17 May 2004 20:27:09 -0000
@@ -737,6 +737,8 @@ void __mfu_check (void *ptr, size_t sz,
switch (__mf_opts.mudflap_mode)
{
case mode_nop:
+ entry->low = MINPTR;
+ entry->high = MAXPTR;
judgement = 1;
break;
Index: testsuite/lib/libmudflap.exp
===================================================================
RCS file: /cvs/gcc/gcc/libmudflap/testsuite/lib/libmudflap.exp,v
retrieving revision 1.2
diff -u -p -r1.2 libmudflap.exp
--- testsuite/lib/libmudflap.exp 13 May 2004 06:41:04 -0000 1.2
+++ testsuite/lib/libmudflap.exp 17 May 2004 20:27:09 -0000
@@ -21,7 +21,7 @@
load_lib mfdg.exp
load_lib libgloss.exp
-proc libmudflap-init { compiler } {
+proc libmudflap-init { language } {
global srcdir
global outdir
global blddir
@@ -34,9 +34,17 @@ proc libmudflap-init { compiler } {
global ld_library_path
global tool_root_dir
- verbose "libmudflap-init $compiler"
+ switch $language {
+ "c" { set cxx [find_gcc] }
+ "c++" { set cxx [find_g++] }
+ default { error "bad language code $language"; return }
+ }
+
+ verbose -log "libmudflap-init $cxx"
set blddir [lookfor_file [get_multilibs] libmudflap]
+ set cxxblddir [lookfor_file [get_multilibs] libstdc++-v3]
+ set cxxflags_file "${cxxblddir}/scripts/testsuite_flags"
# By default, we assume we want to run program images.
global dg-do-what-default
@@ -52,7 +60,7 @@ proc libmudflap-init { compiler } {
set ld_library_path "."
append ld_library_path ":${gccdir}"
- append ld_library_path ":../../libstdc++-v3/src/.libs"
+ append ld_library_path ":${cxxblddir}/src/.libs"
if {[is_remote host] == 0} {
foreach i "[exec ${gccdir}/xgcc --print-multi-lib]" {
set mldir ""
@@ -63,17 +71,28 @@ proc libmudflap-init { compiler } {
}
if { [llength [glob -nocomplain ${gccdir}/${mldir}/libgcc_s*.so.*]] == 1 } {
append ld_library_path ":${gccdir}/${mldir}"
- append ld_library_path ":../../libstdc++-v3/${mldir}/src/.libs"
}
}
}
append ld_library_path ":${blddir}/.libs"
- set cxx $compiler
- set libs "-L../.libs -L../../libstdc++-v3/src/.libs -L../../../gcc"
+
+ set libs "-L../.libs -L../../../gcc"
set cxxflags "-ggdb3 -DDEBUG_ASSERT"
set includes "-I${srcdir} -I.."
- verbose "ld_library_path=$ld_library_path"
+ if {$language == "c++"} {
+ if {[file exists $cxxflags_file]} then {
+ set includes "${includes} [exec sh $cxxflags_file --build-includes]"
+ set cxxflags "${cxxflags} [exec sh $cxxflags_file --cxxflags]"
+ # c++ libs are included by --build-cxx below
+ set cxx "[exec sh $cxxflags_file --build-cxx]"
+ } else {
+ lappend libs "-L../../libstdc++-v3/src/.libs"
+ lappend includes "-I../../libstdc++-v3/include"
+ }
+ }
+
+ verbose -log "ld_library_path=$ld_library_path"
setenv LD_LIBRARY_PATH $ld_library_path
setenv SHLIB_PATH $ld_library_path
setenv LD_LIBRARYN32_PATH $ld_library_path
@@ -212,9 +231,9 @@ proc libmudflap-list-sourcefiles { } {
set res {}
foreach w $sfiles {
if [regexp "wchar_t" $w] {
- verbose "element out list is $w"
+ verbose -log "element out list is $w"
} else {
- verbose "element in list is $w"
+ verbose -log "element in list is $w"
lappend res $w
}
}
Index: testsuite/libmudflap.c/cfrags.exp
===================================================================
RCS file: /cvs/gcc/gcc/libmudflap/testsuite/libmudflap.c/cfrags.exp,v
retrieving revision 1.2
diff -u -p -r1.2 cfrags.exp
--- testsuite/libmudflap.c/cfrags.exp 13 May 2004 06:41:04 -0000 1.2
+++ testsuite/libmudflap.c/cfrags.exp 17 May 2004 20:27:09 -0000
@@ -1,5 +1,5 @@
-libmudflap-init [find_gcc]
+libmudflap-init c
dg-init
Index: testsuite/libmudflap.c++/c++frags.exp
===================================================================
RCS file: /cvs/gcc/gcc/libmudflap/testsuite/libmudflap.c++/c++frags.exp,v
retrieving revision 1.2
diff -u -p -r1.2 c++frags.exp
--- testsuite/libmudflap.c++/c++frags.exp 13 May 2004 06:41:05 -0000 1.2
+++ testsuite/libmudflap.c++/c++frags.exp 17 May 2004 20:27:09 -0000
@@ -1,5 +1,5 @@
-libmudflap-init [find_g++]
+libmudflap-init c++
dg-init
Index: testsuite/libmudflap.cth/cthfrags.exp
===================================================================
RCS file: /cvs/gcc/gcc/libmudflap/testsuite/libmudflap.cth/cthfrags.exp,v
retrieving revision 1.2
diff -u -p -r1.2 cthfrags.exp
--- testsuite/libmudflap.cth/cthfrags.exp 13 May 2004 06:41:05 -0000 1.2
+++ testsuite/libmudflap.cth/cthfrags.exp 17 May 2004 20:27:09 -0000
@@ -1,5 +1,5 @@
-libmudflap-init [find_gcc]
+libmudflap-init c
dg-init
More information about the Gcc-patches
mailing list