aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorzhanyong.wan <zhanyong.wan@8415998a-534a-0410-bf83-d39667b30386>2009-12-09 17:58:37 +0000
committerzhanyong.wan <zhanyong.wan@8415998a-534a-0410-bf83-d39667b30386>2009-12-09 17:58:37 +0000
commit099e3b93c5881901225549c14c8124f72bf20cdc (patch)
treedaad28250b35dbe33b57e7c12ffecf7f8b8fd8a3 /scripts
parenta95c6a5a695276ee33a5959aa101767023945539 (diff)
downloadgoogletest-099e3b93c5881901225549c14c8124f72bf20cdc.tar.gz
googletest-099e3b93c5881901225549c14c8124f72bf20cdc.tar.bz2
googletest-099e3b93c5881901225549c14c8124f72bf20cdc.zip
Makes gmock_doctor work with gcc 4.4.0.
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/gmock_doctor.py27
1 files changed, 18 insertions, 9 deletions
diff --git a/scripts/gmock_doctor.py b/scripts/gmock_doctor.py
index 74af1083..bc814ad9 100755
--- a/scripts/gmock_doctor.py
+++ b/scripts/gmock_doctor.py
@@ -366,11 +366,17 @@ def _TypeInTemplatedBaseDiagnoser1(msg):
type.
"""
- regex = (r'In member function \'int .*\n' + _FILE_LINE_RE +
- r'error: a function call cannot appear in a constant-expression')
+ gcc_4_3_1_regex = (
+ r'In member function \'int .*\n' + _FILE_LINE_RE +
+ r'error: a function call cannot appear in a constant-expression')
+ gcc_4_4_0_regex = (
+ r'error: a function call cannot appear in a constant-expression'
+ + _FILE_LINE_RE + r'error: template argument 1 is invalid\n')
diagnosis = _TTB_DIAGNOSIS % {'type': 'Foo'}
- return _GenericDiagnoser('TTB', 'Type in Template Base',
- regex, diagnosis, msg)
+ return (list(_GenericDiagnoser('TTB', 'Type in Template Base',
+ gcc_4_3_1_regex, diagnosis, msg)) +
+ list(_GenericDiagnoser('TTB', 'Type in Template Base',
+ gcc_4_4_0_regex, diagnosis, msg)))
def _TypeInTemplatedBaseDiagnoser2(msg):
@@ -380,8 +386,7 @@ def _TypeInTemplatedBaseDiagnoser2(msg):
parameter type.
"""
- regex = (r'In member function \'int .*\n'
- + _FILE_LINE_RE +
+ regex = (_FILE_LINE_RE +
r'error: \'(?P<type>.+)\' was not declared in this scope\n'
r'.*error: template argument 1 is invalid\n')
return _GenericDiagnoser('TTB', 'Type in Template Base',
@@ -458,9 +463,13 @@ _DIAGNOSERS = [
def Diagnose(msg):
"""Generates all possible diagnoses given the gcc error message."""
+ diagnoses = []
for diagnoser in _DIAGNOSERS:
- for diagnosis in diagnoser(msg):
- yield '[%s - %s]\n%s' % diagnosis
+ for diag in diagnoser(msg):
+ diagnosis = '[%s - %s]\n%s' % diag
+ if not diagnosis in diagnoses:
+ diagnoses.append(diagnosis)
+ return diagnoses
def main():
@@ -474,7 +483,7 @@ def main():
print 'Waiting for compiler errors on stdin . . .'
msg = sys.stdin.read().strip()
- diagnoses = list(Diagnose(msg))
+ diagnoses = Diagnose(msg)
count = len(diagnoses)
if not count:
print '\nGcc complained:'