RFA: GCC Testsuite: Annotate compile tests that need at least 32-bit pointers/integers

Mike Stump mikestump@comcast.net
Mon Sep 30 20:11:00 GMT 2013


On Sep 30, 2013, at 7:23 AM, Nick Clifton <nickc@redhat.com> wrote:
>  Several tests in the gcc.c-torture/compile directory need a target
>  with 32-bit integers and/or 32-bit pointers.

>  OK to apply ?

Ok.

It may be reasonable to special case ptr32plus to say no on your platform, from check_effective_target_tls_native, we see code like:

proc check_effective_target_tls_native {} {
    # VxWorks uses emulated TLS machinery, but with non-standard helper                                                               
    # functions, so we fail to automatically detect it.                                                                                
    if { [istarget *-*-vxworks*] } {
        return 0
    }

    return [check_no_messages_and_pattern tls_native "!emutls" assembly {
        __thread int i;
        int f (void) { return i; }
        void g (int j) { i = j; }
    }]
}

so, instead of:

proc check_effective_target_ptr32plus { } {
    return [check_no_compiler_messages ptr32plus object {
        int dummy[sizeof (void *) >= 4 ? 1 : -1];
    }]
}

you could do something like:

proc check_effective_target_ptr32plus { } {
    # msp430 never really has 32 or more bits in a pointer.
    if { [istarget msp430-*-*] } {
        return 0
    }
    return [check_no_compiler_messages ptr32plus object {
        int dummy[sizeof (void *) >= 4 ? 1 : -1];
    }]
}

Then, you don't have to worry about people adding tests with this predicate and those test cases failing.  I don't have a good handle on wether this is better or not, so, I'll let you decide what you think is best.


More information about the Gcc-patches mailing list