1 # Copyright
(C
) 2006-2018 Free Software Foundation
, Inc.
3 # This
program is free software
; you can redistribute it and
/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation
; either version
3 of the License
, or
6 #
(at your option
) any later version.
8 # This
program is distributed in the hope that it will be useful
,
9 # but WITHOUT
ANY WARRANTY
; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License
for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with GCC
; see the file COPYING3.
If not see
15 #
<http
://www.gnu.org
/licenses
/>.
17 # Various utilities
for scanning rtl dump output
, used by gcc
-dg.exp and
22 # Utility
for scanning compiler result
, invoked via dg
-final.
23 #
Call pass
if pattern is present
, otherwise fail.
25 #
Argument 0 is the regexp to match
26 #
Argument 1 is the
name of the dumped rtl pass
27 #
Argument 2 handles expected failures and the like
28 proc scan
-rtl
-dump
{ args } {
30 if { [llength $
args] < 2 } {
31 error
"scan-rtl-dump: too few arguments"
34 if { [llength $
args] > 3 } {
35 error
"scan-rtl-dump: too many arguments"
38 if { [llength $
args] >= 3 } {
39 scan
-dump
"rtl" [lindex $args 0] \
40 "\[0-9\]\[0-9\]\[0-9\]r.[lindex $args 1]" "" [lindex $args 2]
42 scan
-dump
"rtl" [lindex $args 0] \
43 "\[0-9\]\[0-9\]\[0-9\]r.[lindex $args 1]" ""
47 force_conventional_output_for scan
-rtl
-dump
49 #
Call pass
if pattern is present given number of times
, otherwise fail.
50 #
Argument 0 is the regexp to match
51 #
Argument 1 is number of times the regexp must be found
52 #
Argument 2 is the
name of the dumped rtl pass
53 #
Argument 3 handles expected failures and the like
54 proc scan
-rtl
-dump
-times
{ args } {
56 if { [llength $
args] < 3 } {
57 error
"scan-rtl-dump-times: too few arguments"
60 if { [llength $
args] > 4 } {
61 error
"scan-rtl-dump-times: too many arguments"
64 if { [llength $
args] >= 4 } {
65 scan
-dump
-times
"rtl" [lindex $args 0] [lindex $args 1] \
66 "\[0-9\]\[0-9\]\[0-9\]r.[lindex $args 2]" "" \
69 scan
-dump
-times
"rtl" [lindex $args 0] [lindex $args 1] \
70 "\[0-9\]\[0-9\]\[0-9\]r.[lindex $args 2]" ""
74 force_conventional_output_for scan
-rtl
-dump
-times
76 #
Call pass
if pattern is not present
, otherwise fail.
78 #
Argument 0 is the regexp to match
79 #
Argument 1 is the
name of the dumped rtl pass
80 #
Argument 2 handles expected failures and the like
81 proc scan
-rtl
-dump
-not
{ args } {
83 if { [llength $
args] < 2 } {
84 error
"scan-rtl-dump-not: too few arguments"
87 if { [llength $
args] > 3 } {
88 error
"scan-rtl-dump-not: too many arguments"
91 if { [llength $
args] >= 3 } {
92 scan
-dump
-not
"rtl" [lindex $args 0] \
93 "\[0-9\]\[0-9\]\[0-9\]r.[lindex $args 1]" "" \
96 scan
-dump
-not
"rtl" [lindex $args 0] \
97 "\[0-9\]\[0-9\]\[0-9\]r.[lindex $args 1]" ""
101 force_conventional_output_for scan
-rtl
-dump
-not
103 # Utility
for scanning demangled compiler result
, invoked via dg
-final.
104 #
Call pass
if pattern is present
, otherwise fail.
106 #
Argument 0 is the regexp to match
107 #
Argument 1 is the
name of the dumped rtl pass
108 #
Argument 2 handles expected failures and the like
109 proc scan
-rtl
-dump
-dem
{ args } {
111 if { [llength $
args] < 2 } {
112 error
"scan-rtl-dump-dem: too few arguments"
115 if { [llength $
args] > 3 } {
116 error
"scan-rtl-dump-dem: too many arguments"
119 if { [llength $
args] >= 3 } {
120 scan
-dump
-dem
"rtl" [lindex $args 0] \
121 "\[0-9\]\[0-9\]\[0-9\]r.[lindex $args 1]" "" \
124 scan
-dump
-dem
"rtl" [lindex $args 0] \
125 "\[0-9\]\[0-9\]\[0-9\]r.[lindex $args 1]" ""
129 force_conventional_output_for scan
-rtl
-dump
-dem
131 #
Call pass
if demangled pattern is not present
, otherwise fail.
133 #
Argument 0 is the regexp to match
134 #
Argument 1 is the
name of the dumped rtl pass
135 #
Argument 2 handles expected failures and the like
136 proc scan
-rtl
-dump
-dem
-not
{ args } {
138 if { [llength $
args] < 2 } {
139 error
"scan-rtl-dump-dem-not: too few arguments"
142 if { [llength $
args] > 3 } {
143 error
"scan-rtl-dump-dem-not: too many arguments"
146 if { [llength $
args] >= 3 } {
147 scan
-dump
-dem
-not
"rtl" [lindex $args 0] \
148 "\[0-9\]\[0-9\]\[0-9\]r.[lindex $args 1]" \
151 scan
-dump
-dem
-not
"rtl" [lindex $args 0] \
152 "\[0-9\]\[0-9\]\[0-9\]r.[lindex $args 1]" ""
156 force_conventional_output_for scan
-rtl
-dump
-dem
-not