- Apr 22, 2012
-
-
Rafael Espindola authored
llvm-svn: 155304
-
Richard Smith authored
pretend there was no previous declaration -- that can lead us to injecting a class template (with no access specifier) into a class scope. Instead, just avoid the problematic checks. llvm-svn: 155303
-
Rafael Espindola authored
llvm-svn: 155302
-
Rafael Espindola authored
with this testcase. llvm-svn: 155301
-
- Apr 21, 2012
-
-
Richard Smith authored
exception specifications in C++11 until after we've parsed the exception specifications for nested classes. llvm-svn: 155293
-
Richard Smith authored
test by me. llvm-svn: 155289
-
NAKAMURA Takumi authored
clang/test/Rewriter/rewrite-modern-extern-c-func-decl.mm: Mark as XFAIL:mingw for now, due to predefined __declspec. It could be tweaked to add -triple i686-win32, though. llvm-svn: 155278
-
Richard Smith authored
llvm-svn: 155271
-
Richard Smith authored
declaration of the same name. r155187 caused us to miss this if the prior declaration did not declare a type. llvm-svn: 155269
-
Matt Beaumont-Gay authored
Set the source location for the "member reference base type ... is not a structure or union" diag to point at the operator rather than the member name. If we're giving this diagnostic because of a typo'd '.' in place of a ';' at the end of a line, the caret previously pointed at the identifier on the following line, which isn't as helpful as it could be. Pointing the caret at the '.' makes it more obvious what the problem is. llvm-svn: 155267
-
Fariborz Jahanian authored
objc_returns_inner_pointer attribute can be applied to methods only. Diagnsose otherwise, instead of crashing. // rdar://11253688 llvm-svn: 155245
-
- Apr 20, 2012
-
-
Anna Zaks authored
This is needed to ensure that we always report issues in the correct function. For example, leaks are identified when we call remove dead bindings. In order to make sure we report a callee's leak in the callee, we have to run the operation in the callee's context. This change required quite a bit of infrastructure work since: - We used to only run remove dead bindings before a given statement; here we need to run it after the last statement in the function. For this, we added additional Program Point and special mode in the SymbolReaper to remove all symbols in context lower than the current one. - The call exit operation turned into a sequence of nodes, which are now guarded by CallExitBegin and CallExitEnd nodes for clarity and convenience. (Sorry for the long diff.) llvm-svn: 155244
-
Richard Smith authored
non-const reference parameter type if the class had any subobjects with deleted copy constructors. This causes a rejects-valid if the class's copy constructor is explicitly defaulted (as happens for some implementations of std::pair etc). llvm-svn: 155218
-
Fariborz Jahanian authored
llvm-svn: 155204
-
Evgeniy Stepanov authored
llvm-svn: 155191
-
Timur Iskhodzhanov authored
Fix bug 12574 - Avoid infinite recursion in constructors and destructors when using Microsoft C++ ABI llvm-svn: 155189
-
Richard Smith authored
up an elaborated type specifier in a friend declaration, only look for type declarations, per [basic.lookup.elab]p2. If we know that the redeclaration lookup for a friend class template in a dependent context finds a non-template, don't delay the diagnostic to instantiation time. llvm-svn: 155187
-
Richard Smith authored
llvm-svn: 155185
-
Fariborz Jahanian authored
is issued on weak property as receiver and not on any other use of a weak property. // rdar://10225276 llvm-svn: 155169
-
Kaelyn Uhrain authored
removing a (new) duplicate test whose only difference was the tag type being an enum instead of a struct. llvm-svn: 155165
-
Kaelyn Uhrain authored
followed by an identifier as declaration specificer (except for ObjC). This allows e.g. an out-of-line C++ member function definitions to be recognized as functions and not as variable declarations if the type name for the first parameter is not recognized as a type--say, when there is a function name shadowing an enum type name and the parameter is missing the "enum" keyword needed to distinguish the two. Note that returning TPResult::Error() instead of TPResult::True() appears to have the same end result, while TPResult::Ambiguous() results in a crash. llvm-svn: 155163
-
- Apr 19, 2012
-
-
Fariborz Jahanian authored
if receiver is a 'weak' property, by type or by attribute. // rdar://10225276 llvm-svn: 155159
-
Fariborz Jahanian authored
patch fixing writing a spurious 'static' into the wrong place. // rdar://11275241 llvm-svn: 155130
-
DeLesley Hutchins authored
which are checked in the parser, and analysis warnings that require the full analysis. This allows attribute syntax to be checked independently of the full thread safety analysis. Also introduces a new warning for the case where a string is used as a lock expression; this allows the analysis to gracefully handle expressions that would otherwise cause a parse error. llvm-svn: 155129
-
Richard Smith authored
initialize references, create std::initializer_list objects, or call constructors. llvm-svn: 155105
-
Rafael Espindola authored
This fixes the included testcase and lets us simplify the code a bit. It does require using mergeWithMin when merging class information to its members. Expand the comments to explain why that works. llvm-svn: 155103
-
Rafael Espindola authored
an explicit default one. This means that with -fvisibility hidden we now produce a hidden symbol for template <typename T> class DEFAULT foo { void bar() {} }; class zed {}; template class foo<zed>; This matches the behaviour of gcc 4.7. llvm-svn: 155102
-
Fariborz Jahanian authored
into the wrong place when rewriting a static function which declares block literals. // rdar://11275241 llvm-svn: 155084
-
-
Richard Smith authored
specifications on member function templates of class templates and other such nested beasties. Store the function template from which we are to instantiate an exception specification rather than trying to deduce it. Plus some additional test cases. llvm-svn: 155076
-
- Apr 18, 2012
-
-
Fariborz Jahanian authored
property accessor (getter) missing, instead of crashing. // rdar://11273060 llvm-svn: 155036
-
Manuel Klimek authored
at the command line. llvm-svn: 154989
-
Seth Cantrell authored
llvm-svn: 154981
-
Seth Cantrell authored
Unprintable source in diagnostics is transformed to a printable form and then displayed with reversed colors if possible. Unprintable characters are displayed as <U+NNNN> while bytes that do not represent valid characters are shown as <XX>. Column adjustments to diagnostic carets, highlighted ranges, and fixups are made both for characters escaped as above and for characters which are printable but take up more than a single column. llvm-svn: 154980
-
Richard Smith authored
and explicit specializations of function templates appropriately. llvm-svn: 154956
-
- Apr 17, 2012
-
-
Seth Cantrell authored
This reverts commit e9a3b76ba589a8a884e978273beaed0d97cf9861. Revert "fix display of source lines with null characters" This reverts commit 70712b276e40bbe11e5063dfc7e82ce3209929cd. llvm-svn: 154950
-
Seth Cantrell authored
llvm-svn: 154947
-
Seth Cantrell authored
Unprintable source in diagnostics is transformed to a printable form and then displayed with reversed colors if possible. Unprintable characters are displayed as <U+NNNN> while bytes that do not represent valid characters are shown as <XX>. Column adjustments to diagnostic carets, highlighted ranges, and fixups are made both for characters escaped as above and for characters which are printable but take up more than a single column. llvm-svn: 154946
-
Fariborz Jahanian authored
block meta-data of block literals declared inside of extern "C" functions. // rdar://1131490 llvm-svn: 154939
-
Francois Pichet authored
Emulate a MSVC bug where the creation of pointer-to-member to protected member of base class is allowed but only from a static function. This fixes a regression when parsing MFC code with clang. llvm-svn: 154924
-