]> granicus.if.org Git - clang/commitdiff
Fix a regression from 171193: main cannot be overloaded.
authorRafael Espindola <rafael.espindola@gmail.com>
Sat, 12 Jan 2013 01:47:40 +0000 (01:47 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Sat, 12 Jan 2013 01:47:40 +0000 (01:47 +0000)
Thanks Eli Friedman for noticing it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172292 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaOverload.cpp
test/SemaCXX/overload-decl.cpp

index bb38222a654c0dbc1cf548be07c29c33e2b6ed1a..44ff3a505e459e5d034998e5d307990f549e98c3 100644 (file)
@@ -935,6 +935,11 @@ static bool canBeOverloaded(const FunctionDecl &D) {
     return true;
   if (D.hasCLanguageLinkage())
     return false;
+
+  // Main cannot be overloaded (basic.start.main).
+  if (D.isMain())
+    return false;
+
   return true;
 }
 
index c610ff7ab0645ea04cdd7f2922e7618c48bb1327..9bba47adfddaa628622be5bcfdc372f35c01ea7b 100644 (file)
@@ -29,3 +29,6 @@ class X {
   static void g(float);
   static void g(int); // expected-error {{static and non-static member functions with the same parameter types cannot be overloaded}}
 };
+
+int main() {} // expected-note {{previous definition is here}}
+int main(int,char**) {} // expected-error {{conflicting types for 'main'}}