- Jan 22, 2011
-
-
John McCall authored
llvm-svn: 124025
-
Douglas Gregor authored
llvm-svn: 124023
-
Douglas Gregor authored
llvm-svn: 124020
-
Douglas Gregor authored
reinterpret_cast and const_cast using rvalue references. llvm-svn: 124007
-
Douglas Gregor authored
llvm-svn: 124006
-
- Jan 21, 2011
-
-
Douglas Gregor authored
llvm-svn: 124005
-
Ted Kremenek authored
for floats, and also check if 'nil' is declared when suggesting it for initializing ObjC pointers. llvm-svn: 124004
-
Douglas Gregor authored
as an rvalue per C++0x [class.copy]p33. If that fails, try again with the original subexpression. llvm-svn: 124002
-
Douglas Gregor authored
llvm-svn: 123996
-
Ted Kremenek authored
to suggest initializations for pointer and ObjC pointer types. llvm-svn: 123995
-
Ted Kremenek authored
to issue the warning at an uninitialized variable's declaration, but to issue notes at possible uninitialized uses (which could be multiple). llvm-svn: 123994
-
Douglas Gregor authored
when returning an NRVO candidate expression. For example, this properly picks the move constructor when dealing with code such as MoveOnlyType f() { MoveOnlyType mot; return mot; } The previously-XFAIL'd rvalue-references test case now works, and has been moved into the appropriate paragraph-specific test case. llvm-svn: 123992
-
Douglas Gregor authored
llvm-svn: 123983
-
Douglas Gregor authored
NRVO candidate for a return statement, to Sema::getCopyElisionCandidate(), and teach it enough to also determine the NRVO candidate for a throw expression. We still don't use the latter information, however. Along the way, implement core issue 1148, which eliminates copy elision from catch parameters and clarifies that copy elision cannot occur from function parameters (which we already implemented). llvm-svn: 123982
-
Douglas Gregor authored
f(T&) and f(T&&). llvm-svn: 123981
-
Douglas Gregor authored
this example further as more rvalue-reference features come online. llvm-svn: 123980
-
Douglas Gregor authored
reference to an rvalue rather than binding a const-qualified lvalue reference to that rvalue. llvm-svn: 123979
-
Douglas Gregor authored
llvm-svn: 123978
-
Douglas Gregor authored
resolution to match the latest C++0x working paper's semantics. The implementation now matching up with the reference-binding implementation used for initialization. llvm-svn: 123977
-
Douglas Gregor authored
llvm-svn: 123967
-
Douglas Gregor authored
call (C++0x [temp.deduct.call]p3). As part of this, start improving the reference-binding implementation used in the computation of implicit conversion sequences (for overload resolution) to reflect C++0x semantics. It still needs more work and testing, of course. llvm-svn: 123966
-
Peter Collingbourne authored
This allows us to simplify the handling for the overloadable attribute, removing a number of FIXMEs. llvm-svn: 123961
-
Peter Collingbourne authored
llvm-svn: 123960
-
Peter Collingbourne authored
Inheritable attributes on declarations may be inherited by any later redeclaration at merge time. By contrast, a non-inheritable attribute will not be inherited by later redeclarations. Non-inheritable attributes may be semantically analysed early, allowing them to influence the redeclaration/overloading process. Before this change, the "overloadable" attribute received special handling to be treated as non-inheritable, while all other attributes were treated as inheritable. This patch generalises the concept, while removing a FIXME. Some CUDA location attributes are also marked as non-inheritable in order to support special overloading semantics (to be introduced in a later patch). The patch introduces a new Attr subclass, InheritableAttr, from which all inheritable attributes derive. Non-inheritable attributes simply derive from Attr. N.B. I did not review every attribute to determine whether it should be marked non-inheritable. This can be done later on an incremental basis, as this change does not affect default functionality. llvm-svn: 123959
-
Douglas Gregor authored
Add more reference-binding examples from the C++0x working paper, all of which seem to be working fine llvm-svn: 123955
-
Fariborz Jahanian authored
Improve on test case. Per Doug's comment. wip. llvm-svn: 123954
-
Douglas Gregor authored
reference to an lvalue. llvm-svn: 123953
-
Douglas Gregor authored
specification. In particular, an rvalue reference can bind to an initializer expression that is an lvalue if the referent type and the initializer expression type are not reference-related. This is a newer formulation to the previous "rvalue references can never bind to lvalues" rule. llvm-svn: 123952
-
Douglas Gregor authored
type checking based on the actual reference type we're trying to bind the result to, rather than stripping the reference. llvm-svn: 123950
-
Fariborz Jahanian authored
llvm-svn: 123948
-
Douglas Gregor authored
llvm-svn: 123947
-
- Jan 20, 2011
-
-
Ted Kremenek authored
llvm-svn: 123944
-
Ted Kremenek authored
handling pseudo-path sensitivity, and instead use those assertion conditions as dynamic checks. These assertions would be violated when analyzing a CFG where some branches where optimized away during CFG construction because their branch conditions could be trivially determined. llvm-svn: 123943
-
rdar://problem/8891119Ted Kremenek authored
earlier revisions Clang was incorrectly warning about an incomplete @implementation when a property was getting synthesized. This got fixed somewhere down the line. llvm-svn: 123939
-
Ted Kremenek authored
analysis for short-circuited operations. For branch written like "if (x && y)", we maintain two sets of dataflow values for the outgoing branches. This suppresses some common false positives for -Wuninitialized-experimental. This change introduces some assertion failures when running on the LLVM codebase. WIP. llvm-svn: 123923
-
Fariborz Jahanian authored
vf calls, be made indirect. This patch is towards that goal. llvm-svn: 123922
-
Ted Kremenek authored
and methods defined within 'namespace X { ... }'. llvm-svn: 123921
-
Douglas Gregor authored
references. Note that we're currently failing reference binding to a function lvalue. llvm-svn: 123920
-
Douglas Gregor authored
working paper's structure. The only functional change here is that we now handling binding to array rvalues, which we would previously reject. llvm-svn: 123918
-
Anders Carlsson authored
llvm-svn: 123916
-