--b1_7fe0b370ad613a964024c0964ad736cb Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: quoted-printable davide updated this revision to Diff 31184. davide added a comment. Take two. The check looks a little bit ugly, maybe there's a shorter way to= handle it. I also enhanced test coverage, and added diagnostic for the und= efined behaviour in C as you suggested. http://reviews.llvm.org/D11658 Files: include/clang/Basic/DiagnosticSemaKinds.td lib/Sema/SemaDecl.cpp test/CXX/basic/basic.start/basic.start.main/p3.cpp test/Sema/warn-extern-main.c --b1_7fe0b370ad613a964024c0964ad736cb Content-Type: text/x-patch; charset=utf-8; name="D11658.31184.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D11658.31184.patch" SW5kZXg6IHRlc3QvU2VtYS93YXJuLWV4dGVybi1tYWluLmMKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gdGVzdC9TZW1hL3dhcm4tZXh0ZXJuLW1haW4u YworKysgdGVzdC9TZW1hL3dhcm4tZXh0ZXJuLW1haW4uYwpAQCAtMCwwICsx LDUxIEBACisvLyBSVU46ICVjbGFuZ19jYzEgLWZzeW50YXgtb25seSAtdmVy aWZ5ICVzIC1EVEVTVDEKKy8vIFJVTjogJWNsYW5nX2NjMSAtZnN5bnRheC1v bmx5IC12ZXJpZnkgJXMgLURURVNUMgorLy8gUlVOOiAlY2xhbmdfY2MxIC1m c3ludGF4LW9ubHkgLXZlcmlmeSAlcyAtRFRFU1QzCisvLyBSVU46ICVjbGFu Z19jYzEgLWZzeW50YXgtb25seSAtdmVyaWZ5ICVzIC1EVEVTVDQKKy8vIFJV TjogJWNsYW5nX2NjMSAtZnN5bnRheC1vbmx5IC12ZXJpZnkgJXMgLURURVNU NQorLy8gUlVOOiAlY2xhbmdfY2MxIC1mc3ludGF4LW9ubHkgLXZlcmlmeSAl cyAtRFRFU1Q2CisvLyBSVU46ICVjbGFuZ19jYzEgLWZzeW50YXgtb25seSAt dmVyaWZ5ICVzIC1EVEVTVDcKKy8vIFJVTjogJWNsYW5nX2NjMSAtZnN5bnRh eC1vbmx5IC12ZXJpZnkgJXMgLURURVNUOAorCisjaWYgVEVTVDEKK2ludCBt YWluOyAvLyBleHBlY3RlZC13YXJuaW5ne3tleHRlcm5hbC1saW5rYWdlIHZh cmlhYmxlIG5hbWVkICdtYWluJyBoYXMgdW5kZWZpbmVkIGJlaGF2aW9yfX0K KworI2VsaWYgVEVTVDIKK2V4dGVybiBpbnQgbWFpbjsgLy8gZXhwZWN0ZWQt d2FybmluZ3t7ZXh0ZXJuYWwtbGlua2FnZSB2YXJpYWJsZSBuYW1lZCAnbWFp bicgaGFzIHVuZGVmaW5lZCBiZWhhdmlvcn19CisKKyNlbGlmIFRFU1QzCisv LyBleHBlY3RlZC1uby1kaWFnbm9zdGljcwordm9pZCB4KCkgeworICBzdGF0 aWMgaW50IG1haW47Cit9CisKKyNlbGlmIFRFU1Q0Cit2b2lkIHgoKSB7Cisg IGV4dGVybiBpbnQgbWFpbjsgLy8gZXhwZWN0ZWQtd2FybmluZ3t7ZXh0ZXJu YWwtbGlua2FnZSB2YXJpYWJsZSBuYW1lZCAnbWFpbicgaGFzIHVuZGVmaW5l ZCBiZWhhdmlvcn19Cit9CisKKyNlbGlmIFRFU1Q1CisvLyBleHBlY3RlZC1u by1kaWFnbm9zdGljcwordm9pZCB4KCkgeworICBpbnQgbWFpbjsKK30KKwor I2VsaWYgVEVTVDYKKy8vIGV4cGVjdGVkLW5vLWRpYWdub3N0aWNzCitzdGF0 aWMgaW50IG1haW47CisKKyNlbGlmIFRFU1Q3CisvLyBleHBlY3RlZC1uby1k aWFnbm9zdGljcwordm9pZCB4KCkgeworICBhdXRvIGludCBtYWluOworfQor CisjZWxpZiBURVNUOAorLy8gZXhwZWN0ZWQtbm8tZGlhZ25vc3RpY3MKK3Zv aWQgeCgpIHsKKyAgcmVnaXN0ZXIgaW50IG1haW47Cit9CisKKyNlbHNlCisj ZXJyb3IgVW5rbm93biBUZXN0CisjZW5kaWYKSW5kZXg6IHRlc3QvQ1hYL2Jh c2ljL2Jhc2ljLnN0YXJ0L2Jhc2ljLnN0YXJ0Lm1haW4vcDMuY3BwCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIHRlc3QvQ1hYL2Jhc2ljL2Jhc2ljLnN0 YXJ0L2Jhc2ljLnN0YXJ0Lm1haW4vcDMuY3BwCisrKyB0ZXN0L0NYWC9iYXNp Yy9iYXNpYy5zdGFydC9iYXNpYy5zdGFydC5tYWluL3AzLmNwcApAQCAtMCww ICsxLDY2IEBACisvLyBSVU46ICVjbGFuZ19jYzEgLWZzeW50YXgtb25seSAt dmVyaWZ5ICVzIC1EVEVTVDEKKy8vIFJVTjogJWNsYW5nX2NjMSAtZnN5bnRh eC1vbmx5IC12ZXJpZnkgJXMgLURURVNUMgorLy8gUlVOOiAlY2xhbmdfY2Mx IC1mc3ludGF4LW9ubHkgLXZlcmlmeSAlcyAtRFRFU1QzCisvLyBSVU46ICVj bGFuZ19jYzEgLWZzeW50YXgtb25seSAtdmVyaWZ5ICVzIC1EVEVTVDQKKy8v IFJVTjogJWNsYW5nX2NjMSAtZnN5bnRheC1vbmx5IC12ZXJpZnkgJXMgLXN0 ZD1jKysxNCAtRFRFU1Q1CisvLyBSVU46ICVjbGFuZ19jYzEgLWZzeW50YXgt b25seSAtdmVyaWZ5ICVzIC1zdGQ9YysrMTQgLURURVNUNgorLy8gUlVOOiAl Y2xhbmdfY2MxIC1mc3ludGF4LW9ubHkgLXZlcmlmeSAlcyAtRFRFU1Q3Cisv LyBSVU46ICVjbGFuZ19jYzEgLWZzeW50YXgtb25seSAtdmVyaWZ5ICVzIC1E VEVTVDgKKy8vIFJVTjogJWNsYW5nX2NjMSAtZnN5bnRheC1vbmx5IC12ZXJp ZnkgJXMgLURURVNUOQorLy8gUlVOOiAlY2xhbmdfY2MxIC1mc3ludGF4LW9u bHkgLXZlcmlmeSAlcyAtRFRFU1QxMCAtZmZyZWVzdGFuZGluZworCisjaWYg VEVTVDEKK2ludCBtYWluOyAvLyBleHBlY3RlZC1lcnJvcnt7bWFpbiBjYW4n dCBiZSBkZWNsYXJlZCBhcyBnbG9iYWwgdmFyaWFibGV9fQorCisjZWxpZiBU RVNUMgorLy8gZXhwZWN0ZWQtbm8tZGlhZ25vc3RpY3MKK2ludCBmICgpIHsK KyAgaW50IG1haW47CisgIHJldHVybiBtYWluOworfQorCisjZWxpZiBURVNU MworLy8gZXhwZWN0ZWQtbm8tZGlhZ25vc3RpY3MKK3ZvaWQgeChpbnQgbWFp bikge307CitpbnQgeShpbnQgbWFpbik7CisKKyNlbGlmIFRFU1Q0CisvLyBl eHBlY3RlZC1uby1kaWFnbm9zdGljcworY2xhc3MgQSB7CisgIHN0YXRpYyBp bnQgbWFpbjsKK307CisKKyNlbGlmIFRFU1Q1CisvLyBleHBlY3RlZC1uby1k aWFnbm9zdGljcwordGVtcGxhdGU8Y2xhc3MgVD4gY29uc3RleHByIFQgbWFp bjsKKworI2VsaWYgVEVTVDYKK2V4dGVybiB0ZW1wbGF0ZTxjbGFzcyBUPiBj b25zdGV4cHIgVCBtYWluOyAvL2V4cGVjdGVkLWVycm9ye3tleHBlY3RlZCB1 bnF1YWxpZmllZC1pZH19CisKKyNlbGlmIFRFU1Q3CisvLyBleHBlY3RlZC1u by1kaWFnbm9zdGljcworbmFtZXNwYWNlIGZvbyB7CisgIGludCBtYWluOwor fQorCisjZWxpZiBURVNUOAordm9pZCB6KHZvaWQpCit7CisgIGV4dGVybiBp bnQgbWFpbjsgIC8vIGV4cGVjdGVkLWVycm9ye3ttYWluIGNhbid0IGJlIGRl Y2xhcmVkIGFzIGdsb2JhbCB2YXJpYWJsZX19Cit9CisKKyNlbGlmIFRFU1Q5 CisvLyBleHBlY3RlZC1uby1kaWFnbm9zdGljcworaW50IHEodm9pZCkKK3sK KyAgc3RhdGljIGludCBtYWluOworICByZXR1cm4gbWFpbjsKK30KKworI2Vs aWYgVEVTVDEwCisvLyBleHBlY3RlZC1uby1kaWFnbm9zdGljcworaW50IG1h aW47CisKKyNlbHNlCisjZXJyb3IgVW5rbm93biBUZXN0CisjZW5kaWYKSW5k ZXg6IGxpYi9TZW1hL1NlbWFEZWNsLmNwcAo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBsaWIvU2VtYS9TZW1hRGVjbC5jcHAKKysrIGxpYi9TZW1hL1Nl bWFEZWNsLmNwcApAQCAtNjEwNSw2ICs2MTA1LDIzIEBACiAgICAgfQogICB9 CiAKKyAgLy8gU3BlY2lhbCBoYW5kbGluZyBvZiB2YXJpYWJsZSBuYW1lZCAn bWFpbicuCisgIGlmIChOYW1lLmlzSWRlbnRpZmllcigpICYmIE5hbWUuZ2V0 QXNJZGVudGlmaWVySW5mbygpLT5pc1N0cigibWFpbiIpKSB7CisKKyAgICAv LyBDKysgW2Jhc2ljLnN0YXJ0Lm1haW5dcDMKKyAgICAvLyBBIHByb2dyYW0g dGhhdCBkZWNsYXJlcyBhIHZhcmlhYmxlIG1haW4gYXQgZ2xvYmFsIHNjb3Bl IGlzIGlsbC1mb3JtZWQuCisgICAgaWYgKGdldExhbmdPcHRzKCkuQ1BsdXNQ bHVzICYmICFnZXRMYW5nT3B0cygpLkZyZWVzdGFuZGluZyAmJgorICAgICAg ICAgICAgTmV3VkQtPmhhc0dsb2JhbFN0b3JhZ2UoKSAmJiAhTmV3VkQtPmlz U3RhdGljTG9jYWwoKSAmJgorICAgICAgICAgICAgIU5ld1ZELT5pc1N0YXRp Y0RhdGFNZW1iZXIoKSAmJiAhTmV3VkQtPmdldERlc2NyaWJlZFZhclRlbXBs YXRlKCkgJiYKKyAgICAgICAgICAgIE5ld1ZELT5nZXREZWNsQ29udGV4dCgp LT5pc1RyYW5zbGF0aW9uVW5pdCgpKQorICAgICAgICAgIERpYWcoRC5nZXRM b2NTdGFydCgpLCBkaWFnOjplcnJfbWFpbl9nbG9iYWxfdmFyaWFibGUpOwor CisgICAgLy8gSW4gQywgYW5kIGV4dGVybmFsLWxpbmthZ2UgdmFyaWFibGUg bmFtZWQgbWFpbiByZXN1bHRzIGluIHVuZGVmaW5lZAorICAgIC8vIGJlaGF2 aW9yLgorICAgIGlmICghZ2V0TGFuZ09wdHMoKS5DUGx1c1BsdXMgJiYgTmV3 VkQtPmlzRXh0ZXJuQygpKQorICAgICAgRGlhZyhELmdldExvY1N0YXJ0KCks IGRpYWc6Ondhcm5fbWFpbl9yZWRlZmluZWQpOworICB9CisKICAgaWYgKEQu aXNSZWRlY2xhcmF0aW9uKCkgJiYgIVByZXZpb3VzLmVtcHR5KCkpIHsKICAg ICBjaGVja0RMTEF0dHJpYnV0ZVJlZGVjbGFyYXRpb24oCiAgICAgICAgICp0 aGlzLCBkeW5fY2FzdDxOYW1lZERlY2w+KFByZXZpb3VzLmdldFJlcHJlc2Vu dGF0aXZlRGVjbCgpKSwgTmV3VkQsCkluZGV4OiBpbmNsdWRlL2NsYW5nL0Jh c2ljL0RpYWdub3N0aWNTZW1hS2luZHMudGQKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gaW5jbHVkZS9jbGFuZy9CYXNpYy9EaWFnbm9zdGljU2VtYUtp bmRzLnRkCisrKyBpbmNsdWRlL2NsYW5nL0Jhc2ljL0RpYWdub3N0aWNTZW1h S2luZHMudGQKQEAgLTUxMCw2ICs1MTAsOSBAQAogZGVmIGVycl9tYWluX2Fy Z193cm9uZyA6IEVycm9yPCIlc2VsZWN0e2ZpcnN0fHNlY29uZHx0aGlyZHxm b3VydGh9MCAiCiAgICAgInBhcmFtZXRlciBvZiAnbWFpbicgKCVzZWxlY3R7 YXJndW1lbnQgY291bnR8YXJndW1lbnQgYXJyYXl8ZW52aXJvbm1lbnR8Igog ICAgICJwbGF0Zm9ybS1zcGVjaWZpYyBkYXRhfTApIG11c3QgYmUgb2YgdHlw ZSAlMSI+OworZGVmIGVycl9tYWluX2dsb2JhbF92YXJpYWJsZSA6IEVycm9y PCJtYWluIGNhbid0IGJlIGRlY2xhcmVkIGFzIGdsb2JhbCB2YXJpYWJsZSI+ OworZGVmIHdhcm5fbWFpbl9yZWRlZmluZWQgOiBXYXJuaW5nPCJleHRlcm5h bC1saW5rYWdlIHZhcmlhYmxlIG5hbWVkICdtYWluJyBoYXMgIgorICAgICJ1 bmRlZmluZWQgYmVoYXZpb3IiPiwgSW5Hcm91cDxNYWluPjsKIGRlZiBleHRf bWFpbl91c2VkIDogRXh0ZW5zaW9uPAogICAiSVNPIEMrKyBkb2VzIG5vdCBh bGxvdyAnbWFpbicgdG8gYmUgdXNlZCBieSBhIHByb2dyYW0iPiwgSW5Hcm91 cDxNYWluPjsKIAo= --b1_7fe0b370ad613a964024c0964ad736cb Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits --b1_7fe0b370ad613a964024c0964ad736cb--