# APPLE LOCAL file testsuite
###
### List of failing tests with Radar bug numbers
### <radarNum>: <test name>
### test name should be exactly as it appears html summary reports
### including any trailing #<number>
###
### When the bug is fixed and the test passes, it will be an
### analyzed non-fail. You should then comment out the test in this
### file and make sure the Radar is closed.
###
###------------------------------------------------------------------
3222046: g++.dg/warn/weak1.C (test for excess errors)
3223598: g++.dg/special/conpr-3.C execution test
3222135: g++.old-deja/g++.bugs/900404_02.C  (test for warnings, line 25)
3222698: g++.old-deja/g++.ext/pretty4.C execution test
3843119: g++.dg/abi/local1.C execution test
3843157: g++.dg/pascal-strings-2.C  (test for warnings, line 7)
3843157: g++.dg/pascal-strings-2.C  (test for warnings, line 8)
3843157: g++.dg/pascal-strings-2.C  (test for warnings, line 22)
3843157: g++.dg/pascal-strings-2.C  (test for warnings, line 24)
3843157: g++.dg/pascal-strings-2.C  (test for warnings, line 25)
3843157: g++.dg/pascal-strings-2.C (test for excess errors)
4178461: g++.old-deja/g++.other/string2.C execution test
4194030: g++.dg/lookup/hidden-class1.C  (test for errors, line 7)
4194030: g++.dg/lookup/hidden-class5.C  (test for errors, line 9)
4194030: g++.dg/lookup/hidden-class7.C  (test for errors, line 13)
4194030: g++.dg/lookup/hidden-class8.C  (test for errors, line 11)
4194030: g++.dg/lookup/hidden-class9.C  (test for errors, line 11)
4194030: g++.dg/lookup/hidden-temp-class1.C  (test for errors, line 7)
4194030: g++.dg/lookup/hidden-temp-class10.C  (test for errors, line 11)
4194030: g++.dg/lookup/hidden-temp-class11.C  (test for errors, line 11)
4194030: g++.dg/lookup/hidden-temp-class4.C  (test for errors, line 9)
4194030: g++.dg/lookup/hidden-temp-class6.C (test for excess errors)
4194030: g++.dg/lookup/hidden-temp-class7.C  (test for errors, line 13)
#4489254: ./debug-1.H -fastcp (test for excess errors)
4531667: g++.dg/bitreverse-23.C execution test
#
# The following tests fail only when the c++ suite is run through Obj-C++.
3904139: g++.dg/ext/fnname3.C execution test
3904139: g++.dg/ext/pretty1.C scan-assembler int bar\\(T\\).*with T = int
3904139: g++.dg/ext/pretty1.C scan-assembler int main\\(\\)
3904178: g++.dg/opt/devirt1.C scan-assembler xyzzy
3904139: g++.old-deja/g++.ext/pretty2.C execution test
3904139: g++.old-deja/g++.ext/pretty3.C execution test
3904139: g++.old-deja/g++.pt/memtemp77.C execution test
3904173: g++.old-deja/g++.jason/cleanup2.C (test for excess errors)
3904173: g++.old-deja/g++.jason/hmc1.C (test for excess errors)
3904173: g++.old-deja/g++.law/ctors10.C  (test for errors, line 21)
3904173: g++.old-deja/g++.law/ctors10.C (test for excess errors)
3904173: g++.old-deja/g++.law/shadow1.C (test for excess errors)
3904184: g++.old-deja/g++.mike/p11144.C (test for excess errors)
4079018: g++.dg/template/spec19.C (test for excess errors)
4084977: g++.old-deja/g++.oliva/expr2.C execution test
4084991: g++.dg/expr/lval2.C (test for excess errors)
5040758: g++.apple/4850442.C (test for excess errors)
5040758: g++.apple/4905666.C (test for excess errors)
5040758: g++.apple/asm-block-21.C (test for excess errors)
5040758: g++.apple/asm-block-58.C (test for excess errors)
#
# The following tests fail only when the c++ suite is run with -mcpu=G5
#4255172: g++.dg/align-test-1.C (test for excess errors)
#
# The following tests fail only when the c++ suite is run with -m64
3965017: g++.dg/template/repo1.C (test for excess errors)
3965017: g++.dg/template/repo3.C (test for excess errors)
3965017: g++.old-deja/g++.pt/instantiate4.C (test for excess errors)
3965017: g++.old-deja/g++.pt/instantiate6.C (test for excess errors)
3965017: g++.old-deja/g++.pt/repo1.C (test for excess errors)
3965017: g++.old-deja/g++.pt/repo2.C (test for excess errors)
3965017: g++.old-deja/g++.pt/repo3.C (test for excess errors)
3965017: g++.old-deja/g++.pt/repo4.C (test for excess errors)
4803160: g++.apple/asm-block-59.C (test for excess errors)
#
# The following tests fail only when the c++ suite is run on ppc with -m64
3967626: g++.dg/eh/forced1.C execution test
3967626: g++.old-deja/g++.eh/terminate2.C execution test
4385013: g++.dg/apple-longcall-2.C scan-assembler \tjmp
4385013: g++.dg/apple-longcall-3.C scan-assembler \tjmp
4385013: g++.dg/apple-longcall-3.C scan-assembler \tjbsr
4385013: g++.dg/apple-longcall-3.C scan-assembler-not \tbl[\t ]
#
# The following tests fail only when the c++ suite is run on x86
#4535822: g++.apple/asm-block-13.C (test for excess errors)
#4535822: g++.apple/asm-block-17.C (test for excess errors)
#4535822: g++.apple/asm-block-18.C (test for excess errors)
#4535822: g++.apple/asm-block-21.C (test for excess errors)
#4535822: g++.apple/asm-block-32.C (test for excess errors)
#4535822: g++.apple/asm-block-36.C (test for excess errors)
#4535822: g++.apple/asm-block-50.C (test for excess errors)
#4535822: g++.apple/asm-block-7.C (test for excess errors)
#
# The following tests fail only when the c++ suite is run on x86 with -m64
4597250: g++.apple/asm-block-13.C (test for excess errors)
4597250: g++.apple/asm-block-18.C (test for excess errors)
4597250: g++.apple/asm-block-24.C (test for excess errors)
4597250: g++.apple/asm-block-25.C (test for excess errors)
4597250: g++.apple/asm-block-31.C (test for excess errors)
4597250: g++.apple/asm-block-32.C (test for excess errors)
4597250: g++.apple/asm-block-33.C (test for excess errors)
4597250: g++.apple/asm-block-35.C (test for excess errors)
4597250: g++.apple/asm-block-36.C (test for excess errors)
4597250: g++.apple/asm-block-50.C (test for excess errors)
4597254: g++.apple/asm-block-7.C (test for excess errors)
4597254: g++.apple/asm-block-17.C (test for excess errors)
4597254: g++.apple/asm-block-41.C (test for excess errors)
4597254: g++.apple/asm-block-45.C (test for excess errors)
#4597270: g++.apple/4474655.C scan-assembler maxsd
#4597288: g++.dg/other/i386-1.C (test for excess errors)
#4597308: g++.old-deja/g++.abi/align.C (test for excess errors)
#
# The following tests fail only when the c++ suite is run using -fasm-blocks
4756486: g++.old-deja/g++.other/crash41.C  (test for errors, line 10)
4756486: g++.old-deja/g++.other/crash41.C  (test for errors, line 12)
4756486: g++.old-deja/g++.other/crash41.C  (test for errors, line 13)
#
# the following failures are for -fstack-protector-all only
# (x86 only)
4990350: g++.apple/asm-block-11.C (test for excess errors)
4990350: g++.apple/asm-block-15.C (test for excess errors)
4990350: g++.apple/asm-block-27.C (test for excess errors)
4990350: g++.apple/asm-block-37.C (test for excess errors)
4990350: g++.apple/asm-block-38.C (test for excess errors)
4990353: g++.apple/asm-block-54.C scan-assembler movq -16\\(%ebp\\), %mm0
4990353: g++.apple/asm-block-59.C scan-assembler -24\\(%ebp,%edx,2\\), %ebx
