summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-01-12 01:47:40 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-01-12 01:47:40 +0000
commit7cf35ef8f6a0e507ef1712685d4ac7b39c3246f5 (patch)
tree8182e77e034f35658d03063c67d1cf5901527b57 /clang
parent399bf618de05d4834ec31059230440ccf9d192e4 (diff)
downloadbcm5719-llvm-7cf35ef8f6a0e507ef1712685d4ac7b39c3246f5.tar.gz
bcm5719-llvm-7cf35ef8f6a0e507ef1712685d4ac7b39c3246f5.zip
Fix a regression from 171193: main cannot be overloaded.
Thanks Eli Friedman for noticing it. llvm-svn: 172292
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Sema/SemaOverload.cpp5
-rw-r--r--clang/test/SemaCXX/overload-decl.cpp3
2 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp
index bb38222a654..44ff3a505e4 100644
--- a/clang/lib/Sema/SemaOverload.cpp
+++ b/clang/lib/Sema/SemaOverload.cpp
@@ -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;
}
diff --git a/clang/test/SemaCXX/overload-decl.cpp b/clang/test/SemaCXX/overload-decl.cpp
index c610ff7ab06..9bba47adfdd 100644
--- a/clang/test/SemaCXX/overload-decl.cpp
+++ b/clang/test/SemaCXX/overload-decl.cpp
@@ -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'}}
OpenPOWER on IntegriCloud