From ca2e1b7990230c5088eb2f280cea9db5f516ad69 Mon Sep 17 00:00:00 2001 From: David Blaikie Date: Tue, 1 May 2012 20:28:45 +0000 Subject: [PATCH] Workaround a miscompile in 483.xalancbmk while we figure it out. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155938 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/SemaExpr.cpp | 1 - test/SemaCXX/conversion.cpp | 6 ++++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp index 4ed588565f..aaf579eda6 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/lib/Sema/SemaExpr.cpp @@ -3302,7 +3302,6 @@ ExprResult Sema::BuildCXXDefaultArgExpr(SourceLocation CallLoc, Expr *Arg = Result.takeAs(); CheckImplicitConversions(Arg, Arg->getExprLoc()); - Param->setDefaultArg(Arg); // Build the default argument expression. return Owned(CXXDefaultArgExpr::Create(Context, CallLoc, Param, Arg)); } diff --git a/test/SemaCXX/conversion.cpp b/test/SemaCXX/conversion.cpp index da78510c64..b019536e1a 100644 --- a/test/SemaCXX/conversion.cpp +++ b/test/SemaCXX/conversion.cpp @@ -86,9 +86,9 @@ namespace test4 { // FIXME: We should warn for non-dependent args (only when the param type is also non-dependent) only once // not once for the template + once for every instantiation template - void tmpl(char c = NULL, // expected-warning 3 {{implicit conversion of NULL constant to 'char'}} + void tmpl(char c = NULL, // expected-warning 4 {{implicit conversion of NULL constant to 'char'}} T a = NULL, // expected-warning {{implicit conversion of NULL constant to 'char'}} \ - expected-warning {{implicit conversion of NULL constant to 'int'}} + expected-warning 2 {{implicit conversion of NULL constant to 'int'}} T b = 1024) { // expected-warning {{implicit conversion from 'int' to 'char' changes value from 1024 to 0}} } @@ -99,6 +99,8 @@ namespace test4 { void func() { tmpl(); // expected-note 2 {{in instantiation of default function argument expression for 'tmpl' required here}} tmpl(); // expected-note 2 {{in instantiation of default function argument expression for 'tmpl' required here}} + // FIXME: We should warn only once for each template instantiation - not once for each call + tmpl(); // expected-note 2 {{in instantiation of default function argument expression for 'tmpl' required here}} tmpl2(); } } -- 2.50.1