Sema-based fix for PR2334. The issue is that even if the two sides of

the condidtional have compatible types, they are not necessarily the 
same type.  Therefore, we cast to the composite type.  As a hack, for 
the moment we assume that the composite type is the type of the 
left-hand expression; this isn't correct, but it's good enough for most 
purposes.

llvm-svn: 51202
This commit is contained in:
Eli Friedman 2008-05-16 20:37:07 +00:00
parent 2e1d5e487b
commit 928ab4d546
1 changed files with 5 additions and 2 deletions

View File

@ -920,9 +920,12 @@ inline QualType Sema::CheckConditionalOperands( // C99 6.5.15
// differently qualified versions of compatible types, the result type is
// a pointer to an appropriately qualified version of the *composite*
// type.
// FIXME: Need to return the composite type.
// FIXME: Need to calculate the composite type.
// FIXME: Need to add qualifiers
return lexT;
QualType compositeType = lexT;
ImpCastExprToType(lex, compositeType);
ImpCastExprToType(rex, compositeType);
return compositeType;
}
}