Allow running the testsuite in C++1z mode.
authorJason Merrill <jason@redhat.com>
Wed, 2 Dec 2015 22:18:18 +0000 (17:18 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 2 Dec 2015 22:18:18 +0000 (17:18 -0500)
gcc/cp/
* Make-lang.in (check-c++1z, check-c++-all): New.
gcc/testsuite/
* lib/g++.exp: Handle --stds= option.
* lib/g++-dg.exp (g++-dg-runtest): Use it.

From-SVN: r231209

gcc/cp/ChangeLog
gcc/cp/Make-lang.in
gcc/testsuite/ChangeLog
gcc/testsuite/lib/g++-dg.exp
gcc/testsuite/lib/g++.exp

index ce26e5daa2fb3752df8eab6d7dd7c7d28389a43e..f7483c053f7d87e3594525803d0cfb2bbaffb355 100644 (file)
@@ -1,3 +1,7 @@
+2015-12-02  Jason Merrill  <jason@redhat.com>
+
+       * Make-lang.in (check-c++1z, check-c++-all): New.
+
 2015-12-02  Markus Trippelsdorf  <markus@trippelsdorf.de>
 
        PR c++/67337
index a16f228146cfe1111683026175dd2ee75de1d80b..50a13590a0ddca84b3b1ff351adb8258377e7b5a 100644 (file)
@@ -145,9 +145,15 @@ c++.srcman: doc/g++.1
 # check targets.  However, our DejaGNU framework requires 'check-g++' as its
 # entry point.  We feed the former to the latter here.
 check-c++ : check-g++
-# Run the testsute in C++0x mode.
-check-c++0x:
-       @echo Normal 'make check' now runs the testsuite in C++11 mode as well as C++98.
+
+# Run the testsuite in C++1z mode.
+check-c++1z:
+       $(MAKE) RUNTESTFLAGS="$(RUNTESTFLAGS) --stds=1z" check-g++
+
+# Run the testsuite in all standard conformance levels.
+check-c++-all:
+       $(MAKE) RUNTESTFLAGS="$(RUNTESTFLAGS) --stds=98,11,14,1z" check-g++
+
 # Run the testsuite with garbage collection at every opportunity.
 check-g++-strict-gc:
        $(MAKE) RUNTESTFLAGS="$(RUNTESTFLAGS) --extra_opts,--param,ggc-min-heapsize=0,--param,ggc-min-expand=0" \
index 517b23e832fc61d4b4f5d177d22ed117bdbf4ab5..299250b89aebe4fa70582100f27987fdfa52da71 100644 (file)
@@ -1,3 +1,8 @@
+2015-12-02  Jason Merrill  <jason@redhat.com>
+
+       * lib/g++.exp: Handle --stds= option.
+       * lib/g++-dg.exp (g++-dg-runtest): Use it.
+
 2015-12-02  Tobias Burnus  <burnus@net-b.de>
            Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
 
index 421f8b62bee9b6f2c9c4cd83cda0e52ca14e2e7a..be63dea345538e3c8e6228a2fa19b34fbca5f143 100644 (file)
@@ -43,9 +43,20 @@ proc g++-dg-runtest { testcases flags default-extra-flags } {
        # if there's a dg-options line.
        if ![search_for $test "-std=*++"] {
            if [search_for $test "dg-options"] {
-               set option_list { -std=gnu++98 -std=gnu++11 -std=gnu++14 }
+               set std_prefix "-std=gnu++"
            } else {
-               set option_list { -std=c++98 -std=c++11 -std=c++14 }
+               set std_prefix "-std=c++"
+           }
+
+           global gpp_std_list
+           if { [llength $gpp_std_list] > 0 } {
+               set std_list $gpp_std_list
+           } else {
+               set std_list { 98 11 14 }
+           }
+           set option_list { }
+           foreach x $std_list {
+               lappend option_list "${std_prefix}$x"
            }
        } else {
            set option_list { "" }
index 229fbc3f633eb6b4fd45b2ddb8b0fdc700367ec9..0b99903dd70b4939d5f5ba20ae7809b1d6cf5c10 100644 (file)
@@ -32,6 +32,7 @@ load_lib target-libpath.exp
 
 
 set gpp_compile_options ""
+set gpp_std_list { }
 
 #
 # g++_version -- extract and print the version number of the compiler
@@ -367,6 +368,14 @@ proc ${tool}_option_proc { option } {
        }
        verbose -log "gpp_compile_options set to $gpp_compile_options"
        return 1
+    } elseif [regexp "^--stds=" $option] {
+       global gpp_std_list
+       regsub "^--stds=" $option "" option
+       foreach x [split $option ","] {
+           lappend gpp_std_list "$x"
+       }
+       verbose -log "gpp_std_list set to $gpp_std_list"
+       return 1
     } else {
        return 0
     }