This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

c++/643: Not using the best matches when multiple functions with different parameters are available



>Number:         643
>Category:       c++
>Synopsis:       Not using the best matches when multiple functions with different parameters are available
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Oct 15 20:46:01 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Marcus Brubaker
>Release:        gcc version 2.96 20000731 (Red Hat Linux 7.0)
>Organization:
>Environment:
A vanilla i386 Red Hat 7 box.
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/specs
gcc version 2.95.2 19991024 (release)

Also shows up on

>Description:
When multiple functions with the same name but different parameters are specified the best match is not always selected.  See attached code and How-To-Repeat...
>How-To-Repeat:
Compile this and you'll get an error like:

output.cc: In function `int main ()':
output.cc:365: warning: passing negative value `-100000000' for 
argument 1 of `CLatitude::CLatitude (unsigned int, unsigned int, 
unsigned int, bool)'

That means it's matching it with the wrong function, it should be matching it with CLatitude::CLatitude (int, int, int, const string&)
>Fix:
If you put string("N") instead of "N" and so on, it matches it properly.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: unknown; name="output.cc"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="output.cc"

I2lmbmRlZiBDTEFUSVRVREVfSAojZGVmaW5lIENMQVRJVFVERV9ICgojaW5jbHVkZSA8YXNzZXJ0
Lmg+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KCmNsYXNzIENMYXRpdHVk
ZSB7CnB1YmxpYzoKCS8vIHRoZXNlIGFyZSB0byBzdXBwb3J0IHRoZSB1bm1lbnRpb25lZCByZXF1
aXJlbWVudHMgb24gdGhlIHBhcmFtZXRlcnMKCS8vIG9mIHRoZSBjb25zdHJ1Y3RvcnMsIHRob3Nl
IGJlbG93IGFyZSBhIGJldHRlciwgc2FmZXIgd2F5IHRvIHBhc3MgdGhlCgkvLyB2YWx1ZXMgdG8g
dGhlIGNsYXNzIHdoaWNoIGFsbG93cyB0aGUgY29tcGlsZXIgdG8gY2hlY2sgYSBudW1iZXIgb2YK
CS8vIHRoZSB2YWx1ZXMgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBjYWxsZXIgYW5kL29yIHRo
ZSBjbGFzcyBpdHNlbGYKCUNMYXRpdHVkZSAoIHNpZ25lZCBpbnQgaW5EZWdyZWVzLCBzaWduZWQg
aW50IGluTWludXRlcywKCQkJc2lnbmVkIGludCBpblNlY29uZHMsIGNvbnN0IHN0cmluZyYgZGly
ZWN0aW9uICk7CglDTGF0aXR1ZGUgKCBzaWduZWQgaW50IGluRGVncmVlcywgc2lnbmVkIGludCBp
bk1pbnV0ZXMsCgkJCWNvbnN0IHN0cmluZyYgZGlyZWN0aW9uICk7CglDTGF0aXR1ZGUgKCBzaWdu
ZWQgaW50IGluRGVncmVlcywgY29uc3Qgc3RyaW5nJiBkaXJlY3Rpb24gKTsKCgkvLyBjb25zdHJ1
Y3RvcnMKCUNMYXRpdHVkZSAoKTsKCUNMYXRpdHVkZSAoIGNvbnN0IENMYXRpdHVkZSAmaW5MYXQg
KTsKCUNMYXRpdHVkZSAoIHVuc2lnbmVkIGludCBpbkRlZ3JlZXMsIGJvb2wgaW5Ob3J0aCApOwoJ
Q0xhdGl0dWRlICggdW5zaWduZWQgaW50IGluRGVncmVlcywgdW5zaWduZWQgaW50IGluTWludXRl
cywKCQkJYm9vbCBpbk5vcnRoICk7CglDTGF0aXR1ZGUgKCB1bnNpZ25lZCBpbnQgaW5EZWdyZWVz
LCB1bnNpZ25lZCBpbnQgaW5NaW51dGVzLAoJCQl1bnNpZ25lZCBpbnQgaW5TZWNvbmRzLCBib29s
IGluTm9ydGggKTsKCgkvLyBhY2Nlc3NvcnMKCXVuc2lnbmVkIGludCBEZWdyZWVzKCkgY29uc3Qg
eyByZXR1cm4gbURlZ3JlZXM7IH07Cgl1bnNpZ25lZCBpbnQgTWludXRlcygpIGNvbnN0IHsgcmV0
dXJuIG1NaW51dGVzOyB9OwoJdW5zaWduZWQgaW50IFNlY29uZHMoKSBjb25zdCB7IHJldHVybiBt
U2Vjb25kczsgfTsKCWJvb2wgTm9ydGgoKSBjb25zdCB7IHJldHVybiBtTm9ydGg7IH07Cglib29s
IFNvdXRoKCkgY29uc3QgeyByZXR1cm4gIW1Ob3J0aDsgfTsKCgkvLyBNZW1iZXIgb3BlcmF0b3Jz
CglDTGF0aXR1ZGUmIG9wZXJhdG9yPSAoIGNvbnN0IENMYXRpdHVkZSYgaW5SaWdodCApOwoJQ0xh
dGl0dWRlJiBvcGVyYXRvcis9ICggY29uc3QgQ0xhdGl0dWRlJiBpblJpZ2h0ICk7CglDTGF0aXR1
ZGUmIG9wZXJhdG9yLT0gKCBjb25zdCBDTGF0aXR1ZGUmIGluUmlnaHQgKTsKCnByaXZhdGU6Cgkv
LyB0aGVzZSBzb3VsZCByZWFsbHkgYmUgY2hhcnMgaWYgd2UncmUgbG9va2luZyB0byBzYXZlIHNw
YWNlIGJ1dAoJLy8gd2UnZCBydW4gaW4gdG8gb3ZlcmZsb3cgY29uZGl0aW9ucyB3aXRoIHJlYXNv
bmFibGUgaW5wdXRzCgl1bnNpZ25lZCBpbnQgbURlZ3JlZXMsIG1NaW51dGVzLCBtU2Vjb25kczsK
CWJvb2wgbU5vcnRoOwoKCXZvaWQgUmVkdWNlICgpOwp9OwoKLy8gVXRpbGl0eSBGdW5jdGlvbnMK
aW50IFRvdGFsU2Vjb25kcyAoIGNvbnN0IENMYXRpdHVkZSYgaW5MYXQgKTsKaW50IFRvdGFsU2Vj
b25kcyAoIHNpZ25lZCBpbnQgaW5EZWdyZWVzLCBzaWduZWQgaW50IGluTWludXRlcywKCQkgICBz
aWduZWQgaW50IGluU2Vjb25kcywgYm9vbCBpbk5vcnRoID0gdHJ1ZSApOwoKLy8gTWF0aCBvcGVy
YXRvcnMKQ0xhdGl0dWRlIG9wZXJhdG9yKyAoIGNvbnN0IENMYXRpdHVkZSYgaW5MZWZ0LCBjb25z
dCBDTGF0aXR1ZGUmIGluUmlnaHQgKTsKQ0xhdGl0dWRlIG9wZXJhdG9yLSAoIGNvbnN0IENMYXRp
dHVkZSYgaW5MZWZ0ICk7CkNMYXRpdHVkZSBvcGVyYXRvci0gKCBjb25zdCBDTGF0aXR1ZGUmIGlu
TGVmdCwgY29uc3QgQ0xhdGl0dWRlJiBpblJpZ2h0ICk7CgovLyBJL08gb3BlcmF0b3JzCm9zdHJl
YW0mIG9wZXJhdG9yPDwgKCBvc3RyZWFtJiBpb1N0cmVhbSwgY29uc3QgQ0xhdGl0dWRlJiBpbkxh
dCApOwppc3RyZWFtJiBvcGVyYXRvcj4+ICggaXN0cmVhbSYgaW9TdHJlYW0sIENMYXRpdHVkZSYg
b3V0TGF0ICk7CgovLyBCb29sZWFuIG9wZXJhdG9ycwpib29sIG9wZXJhdG9yPT0gKCBjb25zdCBD
TGF0aXR1ZGUmIGluTGVmdCwgY29uc3QgQ0xhdGl0dWRlJiBpblJpZ2h0ICk7CmJvb2wgb3BlcmF0
b3IhPSAoIGNvbnN0IENMYXRpdHVkZSYgaW5MZWZ0LCBjb25zdCBDTGF0aXR1ZGUmIGluUmlnaHQg
KTsKYm9vbCBvcGVyYXRvcjwgKCBjb25zdCBDTGF0aXR1ZGUmIGluTGVmdCwgY29uc3QgQ0xhdGl0
dWRlJiBpblJpZ2h0ICk7CmJvb2wgb3BlcmF0b3I+ICggY29uc3QgQ0xhdGl0dWRlJiBpbkxlZnQs
IGNvbnN0IENMYXRpdHVkZSYgaW5SaWdodCApOwpib29sIG9wZXJhdG9yPD0gKCBjb25zdCBDTGF0
aXR1ZGUmIGluTGVmdCwgY29uc3QgQ0xhdGl0dWRlJiBpblJpZ2h0ICk7CmJvb2wgb3BlcmF0b3I+
PSAoIGNvbnN0IENMYXRpdHVkZSYgaW5MZWZ0LCBjb25zdCBDTGF0aXR1ZGUmIGluUmlnaHQgKTsK
CiNlbmRpZgoKLy8gQ29uc3RydWN0b3JzCkNMYXRpdHVkZTo6Q0xhdGl0dWRlICgpCnsKCW1EZWdy
ZWVzID0gbU1pbnV0ZXMgPSBtU2Vjb25kcyA9IDA7CgltTm9ydGggPSB0cnVlOwp9CgpDTGF0aXR1
ZGU6OkNMYXRpdHVkZSAoIGNvbnN0IENMYXRpdHVkZSAmaW5MYXQgKQp7CgkoKnRoaXMpID0gaW5M
YXQ7Cn0KCkNMYXRpdHVkZTo6Q0xhdGl0dWRlICggdW5zaWduZWQgaW50IGluRGVncmVlcywgYm9v
bCBpbk5vcnRoICkKewoJKCp0aGlzKSA9IENMYXRpdHVkZSAoIGluRGVncmVlcywgMCwgMCwgaW5O
b3J0aCApOwp9CgpDTGF0aXR1ZGU6OkNMYXRpdHVkZSAoIHVuc2lnbmVkIGludCBpbkRlZ3JlZXMs
IHVuc2lnbmVkIGludCBpbk1pbnV0ZXMsIGJvb2wgaW5Ob3J0aCApCnsKCSgqdGhpcykgPSBDTGF0
aXR1ZGUgKCBpbkRlZ3JlZXMsIGluTWludXRlcywgMCwgaW5Ob3J0aCApOwp9CgpDTGF0aXR1ZGU6
OkNMYXRpdHVkZSAoIHVuc2lnbmVkIGludCBpbkRlZ3JlZXMsIHVuc2lnbmVkIGludCBpbk1pbnV0
ZXMsCgkJICAgICAgIHVuc2lnbmVkIGludCBpblNlY29uZHMsIGJvb2wgaW5Ob3J0aCApCnsKCWlm
ICggVG90YWxTZWNvbmRzICggaW5EZWdyZWVzLCBpbk1pbnV0ZXMsIGluU2Vjb25kcyApID4gCgkJ
VG90YWxTZWNvbmRzICggOTAsIDAsIDAgKSApIHsKCQljZXJyIDw8ICJDTGF0aXR1ZGU6OkNMYXRp
dHVkZSgpOiBJbnB1dCBvZiBvdmVyIDkwIGRlZ3JlZXMsIHVzaW5nIDkwIiA8PCBlbmRsOwoJCW1E
ZWdyZWVzID0gOTA7CgkJbU1pbnV0ZXMgPSBtU2Vjb25kcyA9IDA7CgkJbU5vcnRoID0gaW5Ob3J0
aDsKCQkKCQlSZWR1Y2UoKTsKCQlyZXR1cm47Cgl9CgoJbURlZ3JlZXMgPSBpbkRlZ3JlZXM7Cglt
TWludXRlcyA9IGluTWludXRlczsKCW1TZWNvbmRzID0gaW5TZWNvbmRzOwoJbU5vcnRoID0gaW5O
b3J0aDsKCglSZWR1Y2UoKTsKfQoKLy8gdGhlICJPVEhFUiIgY29uc3RydWN0b3JzCkNMYXRpdHVk
ZTo6Q0xhdGl0dWRlICggc2lnbmVkIGludCBpbkRlZ3JlZXMsIHNpZ25lZCBpbnQgaW5NaW51dGVz
LAoJCXNpZ25lZCBpbnQgaW5TZWNvbmRzLCBjb25zdCBzdHJpbmcmIGRpcmVjdGlvbiApCnsKCWJv
b2wJCW5vcnRoOwoJc2lnbmVkIGludAl0U2Vjb25kcyA9IDA7CgkKCWFzc2VydCAoIGRpcmVjdGlv
bi5sZW5ndGgoKSAmJgoJCShkaXJlY3Rpb25bMF0gPT0gJ3MnIHx8IGRpcmVjdGlvblswXSA9PSAn
UycgfHwKCQkgZGlyZWN0aW9uWzBdID09ICduJyB8fCBkaXJlY3Rpb25bMF0gPT0gJ04nKSApOwoK
CWlmICggZGlyZWN0aW9uWzBdID09ICduJyB8fCBkaXJlY3Rpb25bMF0gPT0gJ04nICkKCQlub3J0
aCA9IHRydWU7CgllbHNlCgkJbm9ydGggPSBmYWxzZTsKCgl0U2Vjb25kcyA9IFRvdGFsU2Vjb25k
cyAoIGluRGVncmVlcywgaW5NaW51dGVzLCBpblNlY29uZHMgKTsKCglpZiAodFNlY29uZHMgPCAw
KSB7CgkJdFNlY29uZHMgPSAtdFNlY29uZHM7CgkJbm9ydGggPSAhbm9ydGg7Cgl9CgoJKCp0aGlz
KSA9IENMYXRpdHVkZSAoIDAsIDAsICh1bnNpZ25lZCBpbnQpdFNlY29uZHMsIG5vcnRoICk7CQp9
CgpDTGF0aXR1ZGU6OkNMYXRpdHVkZSAoIHNpZ25lZCBpbnQgaW5EZWdyZWVzLCBzaWduZWQgaW50
IGluTWludXRlcywKCQljb25zdCBzdHJpbmcmIGRpcmVjdGlvbiApCnsKCSgqdGhpcykgPSBDTGF0
aXR1ZGUgKCBpbkRlZ3JlZXMsIGluTWludXRlcywgMCwgZGlyZWN0aW9uICk7Cn0KCkNMYXRpdHVk
ZTo6Q0xhdGl0dWRlICggc2lnbmVkIGludCBpbkRlZ3JlZXMsIGNvbnN0IHN0cmluZyYgZGlyZWN0
aW9uICkKewoJKCp0aGlzKSA9IENMYXRpdHVkZSAoIGluRGVncmVlcywgMCwgMCwgZGlyZWN0aW9u
ICk7Cn0KCi8vIE9wZXJhdG9ycwpDTGF0aXR1ZGUmIENMYXRpdHVkZTo6b3BlcmF0b3I9ICggY29u
c3QgQ0xhdGl0dWRlJiBpblJpZ2h0ICkKewoJbURlZ3JlZXMgPSBpblJpZ2h0LkRlZ3JlZXMoKTsK
CW1NaW51dGVzID0gaW5SaWdodC5NaW51dGVzKCk7CgltU2Vjb25kcyA9IGluUmlnaHQuU2Vjb25k
cygpOwoJbU5vcnRoID0gaW5SaWdodC5Ob3J0aCgpOwoKCXJldHVybiAoKnRoaXMpOwp9CgpDTGF0
aXR1ZGUmIENMYXRpdHVkZTo6b3BlcmF0b3IrPSAoIGNvbnN0IENMYXRpdHVkZSYgaW5SaWdodCAp
CnsKCSgqdGhpcykgPSAoKnRoaXMpICsgaW5SaWdodDsKCglyZXR1cm4gKCp0aGlzKTsKfQoKQ0xh
dGl0dWRlJiBDTGF0aXR1ZGU6Om9wZXJhdG9yLT0gKCBjb25zdCBDTGF0aXR1ZGUmIGluUmlnaHQg
KQp7CgkoKnRoaXMpID0gKCp0aGlzKSAtIGluUmlnaHQ7CgoJcmV0dXJuICgqdGhpcyk7Cn0KCnZv
aWQgQ0xhdGl0dWRlOjpSZWR1Y2UoKQp7CgltTWludXRlcyArPSAobVNlY29uZHMgLyA2MCk7Cglt
U2Vjb25kcyA9IG1TZWNvbmRzICUgNjA7CgoJbURlZ3JlZXMgKz0gKG1NaW51dGVzIC8gNjApOwoJ
bU1pbnV0ZXMgPSBtTWludXRlcyAlIDYwOwoKCWlmICggVG90YWxTZWNvbmRzICggbURlZ3JlZXMs
IG1NaW51dGVzLCBtU2Vjb25kcyApID4KCSAgCVRvdGFsU2Vjb25kcyAoIDkwLCAwLCAwICkgKSB7
CgkJY2VyciA8PCAiQ0xhdGl0dWRlOjpSZWR1Y2UoKTogZXhjZWVkZWQgOTAgZGVncmVlcywgdXNp
bmcgOTAgZGVncmVlcyIgPDwgZW5kbDsKCQltRGVncmVlcyA9IDkwOwoJCW1NaW51dGVzID0gbVNl
Y29uZHMgPSAwOwoJfQp9CgovLyBVdGlsaXR5IEZ1bmN0aW9ucwppbnQgVG90YWxTZWNvbmRzICgg
Y29uc3QgQ0xhdGl0dWRlJiBpbkxhdCApCnsKCXJldHVybiBUb3RhbFNlY29uZHMgKCBpbkxhdC5E
ZWdyZWVzKCksIGluTGF0Lk1pbnV0ZXMoKSwKCQkJICAgICAgaW5MYXQuU2Vjb25kcygpLCBpbkxh
dC5Ob3J0aCgpICk7Cn0KCmludCBUb3RhbFNlY29uZHMgKCBzaWduZWQgaW50IGluRGVncmVlcywg
c2lnbmVkIGludCBpbk1pbnV0ZXMsCgkJICAgc2lnbmVkIGludCBpblNlY29uZHMsIGJvb2wgaW5O
b3J0aCA9IHRydWUgKQp7CglpbnQgb3V0ID0gaW5TZWNvbmRzOwoKCW91dCArPSAoaW5EZWdyZWVz
ICogMzYwMCk7CglvdXQgKz0gKGluTWludXRlcyAqIDYwKTsKCQoJaWYgKCFpbk5vcnRoKQoJCW91
dCA9IC1vdXQ7CgoJcmV0dXJuIG91dDsKfQoKLy8gTWF0aCBvcGVyYXRvcnMKQ0xhdGl0dWRlIG9w
ZXJhdG9yKyAoIGNvbnN0IENMYXRpdHVkZSYgaW5MZWZ0LCBjb25zdCBDTGF0aXR1ZGUmIGluUmln
aHQgKQp7CglpbnQJCWxlZnQgPSBUb3RhbFNlY29uZHMgKCBpbkxlZnQgKSwKCQkJcmlnaHQgPSBU
b3RhbFNlY29uZHMgKCBpblJpZ2h0ICk7CgoJaWYgKChsZWZ0ICsgcmlnaHQpID09IDApCgkJcmV0
dXJuIENMYXRpdHVkZSAoICk7CgllbHNlIGlmICgobGVmdCArIHJpZ2h0KSA8IDApCgkJcmV0dXJu
IENMYXRpdHVkZSAoIDAsIDAsIC0obGVmdCArIHJpZ2h0KSwgZmFsc2UgKTsKCWVsc2UKCQlyZXR1
cm4gQ0xhdGl0dWRlICggMCwgMCwgKGxlZnQgKyByaWdodCksIHRydWUgKTsKfQoKQ0xhdGl0dWRl
IG9wZXJhdG9yLSAoIGNvbnN0IENMYXRpdHVkZSYgaW5MZWZ0ICkKewoJcmV0dXJuIENMYXRpdHVk
ZSAoIGluTGVmdC5EZWdyZWVzKCksIGluTGVmdC5NaW51dGVzKCksCgkJCSAgIGluTGVmdC5TZWNv
bmRzKCksICFpbkxlZnQuTm9ydGgoKSApOwp9CgpDTGF0aXR1ZGUgb3BlcmF0b3ItICggY29uc3Qg
Q0xhdGl0dWRlJiBpbkxlZnQsIGNvbnN0IENMYXRpdHVkZSYgaW5SaWdodCApCnsKCXJldHVybiAo
LWluUmlnaHQgKyBpbkxlZnQpOwp9CgovLyBJL08gb3BlcmF0b3JzCm9zdHJlYW0mIG9wZXJhdG9y
PDwgKCBvc3RyZWFtJiBpb1N0cmVhbSwgY29uc3QgQ0xhdGl0dWRlJiBpbkxhdCApCnsKCWlmICgg
aW5MYXQgPT0gQ0xhdGl0dWRlICggMCwgMCwgMCwgdHJ1ZSApICkgewoJCWlvU3RyZWFtIDw8ICIw
RCBOIiA8PCBlbmRsOwoJCXJldHVybiBpb1N0cmVhbTsKCX0KCWlmICggaW5MYXQgPT0gQ0xhdGl0
dWRlICggMCwgMCwgMCwgZmFsc2UgKSApIHsKCQlpb1N0cmVhbSA8PCAiMEQgUyIgPDwgZW5kbDsK
CQlyZXR1cm4gaW9TdHJlYW07Cgl9CgoJaW9TdHJlYW0gPDwgaW5MYXQuRGVncmVlcygpIDw8ICJE
ICI7CgoJaWYgKCBpbkxhdC5NaW51dGVzKCkgKQoJCWlvU3RyZWFtIDw8IGluTGF0Lk1pbnV0ZXMo
KSA8PCAiJyAiOwoJaWYgKCBpbkxhdC5TZWNvbmRzKCkgKQoJCWlvU3RyZWFtIDw8IGluTGF0LlNl
Y29uZHMoKSA8PCAiJycgIjsKCglpZiAoIGluTGF0Lk5vcnRoKCkgKQoJCWlvU3RyZWFtIDw8ICJO
IiA8PCBlbmRsOwoJZWxzZQoJCWlvU3RyZWFtIDw8ICJTIiA8PCBlbmRsOwoKCXJldHVybiBpb1N0
cmVhbTsKfQoKaXN0cmVhbSYgb3BlcmF0b3I+PiAoIGlzdHJlYW0mIGlvU3RyZWFtLCBDTGF0aXR1
ZGUmIG91dExhdCApCnsKCXVuc2lnbmVkIGludCBkZWdyZWVzLCBtaW51dGVzLCBzZWNvbmRzOwoJ
Y2hhciBjOwoJYm9vbCBub3J0aDsKCglpb1N0cmVhbSA+PiBkZWdyZWVzOwoJaW9TdHJlYW0uZ2V0
KGMpOwoJaWYgKGMgIT0gJyAnKQoJCWlvU3RyZWFtLnB1dGJhY2soYyk7CgoJaW9TdHJlYW0gPj4g
bWludXRlczsKCWlvU3RyZWFtLmdldChjKTsKCWlmIChjICE9ICcgJykKCQlpb1N0cmVhbS5wdXRi
YWNrKGMpOwoJCglpb1N0cmVhbSA+PiBzZWNvbmRzOwoJaW9TdHJlYW0uZ2V0KGMpOwoJaWYgKGMg
IT0gJyAnKQoJCWlvU3RyZWFtLnB1dGJhY2soYyk7CgoJaW9TdHJlYW0uZ2V0KGMpOwoKCWFzc2Vy
dCAoIGMgPT0gJ3MnIHx8IGMgPT0gJ1MnIHx8IGMgPT0gJ24nIHx8IGMgPT0gJ04nICk7CgoJaWYg
KCBjID09ICdTJyB8fCBjID09ICdzJyApCgkJbm9ydGggPSBmYWxzZTsKCWVsc2UKCQlub3J0aCA9
IHRydWU7CgoJb3V0TGF0ID0gQ0xhdGl0dWRlICggZGVncmVlcywgbWludXRlcywgc2Vjb25kcywg
KGJvb2wpbm9ydGggKTsKCQoJcmV0dXJuIGlvU3RyZWFtOwp9CgovLyBCb29sZWFuIG9wZXJhdG9y
cwpib29sIG9wZXJhdG9yPT0gKCBjb25zdCBDTGF0aXR1ZGUmIGluTGVmdCwgY29uc3QgQ0xhdGl0
dWRlJiBpblJpZ2h0ICkKewoJLy8gMEQgTiA9PSAwRCBTIHdpbGwgYmUgdHJ1ZSBsaWtlIHdlIHdh
bnQgc2luY2UgdGhlcmUgaXMgbm8KCS8vIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIHplcm8sIGp1c3Qg
emVybwoJcmV0dXJuICggVG90YWxTZWNvbmRzICggaW5MZWZ0ICkgPT0gVG90YWxTZWNvbmRzICgg
aW5SaWdodCApICk7Cn0KCmJvb2wgb3BlcmF0b3IhPSAoIGNvbnN0IENMYXRpdHVkZSYgaW5MZWZ0
LCBjb25zdCBDTGF0aXR1ZGUmIGluUmlnaHQgKQp7CglyZXR1cm4gIShpbkxlZnQgPT0gaW5SaWdo
dCk7Cn0KCmJvb2wgb3BlcmF0b3I8ICggY29uc3QgQ0xhdGl0dWRlJiBpbkxlZnQsIGNvbnN0IENM
YXRpdHVkZSYgaW5SaWdodCApCnsKCXJldHVybiAoIFRvdGFsU2Vjb25kcyAoIGluTGVmdCApIDwg
VG90YWxTZWNvbmRzICggaW5SaWdodCApICk7Cn0KCmJvb2wgb3BlcmF0b3I+ICggY29uc3QgQ0xh
dGl0dWRlJiBpbkxlZnQsIGNvbnN0IENMYXRpdHVkZSYgaW5SaWdodCApCnsKCXJldHVybiAoIFRv
dGFsU2Vjb25kcyAoIGluTGVmdCApID4gVG90YWxTZWNvbmRzICggaW5SaWdodCApICk7Cn0KCmJv
b2wgb3BlcmF0b3I8PSAoIGNvbnN0IENMYXRpdHVkZSYgaW5MZWZ0LCBjb25zdCBDTGF0aXR1ZGUm
IGluUmlnaHQgKQp7CglyZXR1cm4gKCBUb3RhbFNlY29uZHMgKCBpbkxlZnQgKSA8PSBUb3RhbFNl
Y29uZHMgKCBpblJpZ2h0ICkgKTsKfQoKYm9vbCBvcGVyYXRvcj49ICggY29uc3QgQ0xhdGl0dWRl
JiBpbkxlZnQsIGNvbnN0IENMYXRpdHVkZSYgaW5SaWdodCApCnsKCXJldHVybiAoIFRvdGFsU2Vj
b25kcyAoIGluTGVmdCApID49IFRvdGFsU2Vjb25kcyAoIGluUmlnaHQgKSApOwp9Ci8qKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqCiogVGVzdCBDbGllbnQgdG8gZm9yIGxhdGl0dWRlIEFEVCBieSBEYW4gSHlkZSwg
T2N0b2JlciAxLCAxOTk5ICAqCiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqCioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiNpbmNsdWRlICJDTGF0aXR1ZGUu
aCIKCmludCBtYWluKCkKewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gdXNlIHN0cmluZyB0eXBlIGZvciAiTiIgYW5kICJTIgogICAgQ0xhdGl0dWRlIGEoOCwgNSwg
IlMiKTsKICAgIGNvdXQgPDwgImEgPSAiIDw8IGEgPDwgZW5kbDsKCiAgICBDTGF0aXR1ZGUgYigw
LCAiTiIpOwogICAgY291dCA8PCAiVHlwZSBpbiBsYXRpdHVkZSBpbiBmb3JtIG9mOiA0NyA1NyA1
NyBOIiA8PCBlbmRsOwogICAgY2luID4+IGI7CgogICAgY291dCA8PCAiYiA9ICIgPDwgYiA8PCBl
bmRsOwoKICAgIENMYXRpdHVkZSBjKDg4LCA3NywgNjYsICJTIik7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBjIHNob3VsZCBiZSA4OUQgMTgnIDYnJyBTCiAgICBj
b3V0IDw8ICJjID0gIiA8PCBjIDw8IGVuZGw7CgogICAgYyA9IGEgKyBiOwogICAgY291dCA8PCAi
YyA9ICIgPDwgYyA8PCBlbmRsOwoKICAgIGMgPSBhICsgKC1hKTsKICAgIGNvdXQgPDwgImMgPSAi
IDw8IGMgPDwgZW5kbDsKCiAgICBDTGF0aXR1ZGUgZCgtMSwgNSwgNSwgIk4iKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGQgc2hvdWxkIGJlIDBEIDU0JyA1NSIg
UwogICAgY291dCA8PCAiZCA9ICIgPDwgZCA8PCBlbmRsOwoKICAgIENMYXRpdHVkZSBlKDAsIDU0
LCA1NSwgIlMiKTsKCiAgICBpZiAoZCA9PSBlKQogICAgICAgIGNvdXQgPDwgImQgaXMgZXF1YWwg
dG8gZSIgPDwgZW5kbDsKCiAgICBpZiAoYiA+IGMpCiAgICAgICAgY291dCA8PCAiYiBpcyBncmVh
dGVyIHRoYW4gYyIgPDwgZW5kbDsKfQoK

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]