forked from OSchip/llvm-project
Workaround a miscompile in 483.xalancbmk while we figure it out.
llvm-svn: 155938
This commit is contained in:
parent
1db0a2fab2
commit
3890d687e6
|
@ -3302,7 +3302,6 @@ ExprResult Sema::BuildCXXDefaultArgExpr(SourceLocation CallLoc,
|
|||
|
||||
Expr *Arg = Result.takeAs<Expr>();
|
||||
CheckImplicitConversions(Arg, Arg->getExprLoc());
|
||||
Param->setDefaultArg(Arg);
|
||||
// Build the default argument expression.
|
||||
return Owned(CXXDefaultArgExpr::Create(Context, CallLoc, Param, Arg));
|
||||
}
|
||||
|
|
|
@ -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<typename T>
|
||||
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<char>(); // expected-note 2 {{in instantiation of default function argument expression for 'tmpl<char>' required here}}
|
||||
tmpl<int>(); // expected-note 2 {{in instantiation of default function argument expression for 'tmpl<int>' required here}}
|
||||
// FIXME: We should warn only once for each template instantiation - not once for each call
|
||||
tmpl<int>(); // expected-note 2 {{in instantiation of default function argument expression for 'tmpl<int>' required here}}
|
||||
tmpl2<int*>();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue