- Jul 23, 2013
-
-
Adrian Prantl authored
rdar://problem/14386148 llvm-svn: 186898
-
Fariborz Jahanian authored
protocols by ignoring cases where all protocol properties and methods are optional. llvm-svn: 186895
-
Adrian Prantl authored
Fixes rdar://problem/14386148 llvm-svn: 186894
-
Eli Friedman authored
getLocForEndOfToken() isn't guaranteed to succeed; if it doesn't, make sure we do something sane. Fixes PR16673. I'm not sure how to write a testcase for this short of grepping through the diagnostic output. llvm-svn: 186889
-
- Jul 22, 2013
-
-
Douglas Gregor authored
The headers in the compiler's own resource include directory are system headers, which means we don't stat() them eagerly when loading a module. Use module.map as a proxy for these headers and the compiler itself. Fixes <rdar://problem/13856838>. llvm-svn: 186870
-
Bill Wendling authored
llvm-svn: 186864
-
Enea Zaffanella authored
Warning should be emitted only for InitListExpr nodes. llvm-svn: 186859
-
Fariborz Jahanian authored
have shift/bitwise operators or are power of 2. llvm-svn: 186856
-
Argyrios Kyrtzidis authored
[arcmt] Only disable ARC in the second compilation if there were actually ARC errors in the checking phase. rdar://14490204 llvm-svn: 186850
-
Richard Smith authored
llvm-svn: 186848
-
Samuel Benzaquen authored
Summary: Add support for overloaded matchers. This composes with other features, like supporting polymorphic matchers. Reviewers: klimek CC: cfe-commits, revane Differential Revision: http://llvm-reviews.chandlerc.com/D1188 llvm-svn: 186836
-
Reid Kleckner authored
Based on Peter Collingbourne's destructor patches. Prior to this change, clang was considering ?1 to be the complete destructor and the base destructor, which was wrong. This lead to crashes when clang tried to emit two LLVM functions with the same name. In this ABI, TUs with non-inline dtors might not emit a complete destructor. They are emitted as inline thunks in TUs that need them, and they always delegate to the base dtors of the complete class and its virtual bases. This change uses the DeferredDecls machinery to emit complete dtors as needed. Currently in clang try body destructors can catch exceptions thrown by virtual base destructors. In the Microsoft C++ ABI, clang may not have the destructor definition, in which case clang won't wrap the virtual virtual base destructor calls in a try-catch. Diagnosing this in user code is TODO. Finally, for classes that don't use virtual inheritance, MSVC always calls the base destructor (?1) directly. This is a useful code size optimization that avoids emitting lots of extra thunks or aliases. Implementing it also means our existing tests continue to pass, and is consistent with MSVC's output. We can do the same for Itanium by tweaking GetAddrOfCXXDestructor, but it will require further testing. Reviewers: rjmccall CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1066 llvm-svn: 186828
-
Reid Kleckner authored
Now we can save GD.getDecl() in D and shorten some casts. llvm-svn: 186826
-
Enea Zaffanella authored
when initializing aggregate/union types, no matter if static or not. llvm-svn: 186817
-
Enea Zaffanella authored
No functionality change. In Sema helper functions: * renamed isTypeName as HasTypenameKeyword In UsingDecl: * renamed get/setUsingLocation to get/setUsingLoc * renamed is/setTypeName as has/setTypename llvm-svn: 186816
-
Robert Wilhelm authored
llvm-svn: 186807
-
Richard Smith authored
any default template arguments, not if it inherits some. llvm-svn: 186804
-
Richard Smith authored
A constructor for an abstract class does not call constructors for virtual base classes, so it is not an error if no initializer is present for the virtual base and the virtual base cannot be default initialized. Also provide a (disabled by default, for now) warning for the case where a virtual base class's initializer is ignored in an abstract class's constructor, and address a defect in DR257 where it was not carried through to C++11's rules for implicit deletion of special member functions. Based on a patch by Maurice Bos. llvm-svn: 186803
-
NAKAMURA Takumi authored
llvm-svn: 186802
-
Richard Smith authored
optimize, to follow the permissions granted in N3664. Under those rules, only calls generated by new-expressions and delete-expressions are permitted to be optimized, and direct calls to ::operator new and ::operator delete must be treated as normal calls. llvm-svn: 186799
-
- Jul 21, 2013
-
-
Craig Topper authored
Replace 'unsigned short' with 'uint16_t' in a packed data structure for consistency with other fields and to be explicit about bit count. llvm-svn: 186796
-
Craig Topper authored
llvm-svn: 186795
-
Robert Wilhelm authored
llvm-svn: 186794
-
Lubos Lunak authored
llvm-svn: 186793
-
- Jul 20, 2013
-
-
Enea Zaffanella authored
llvm-svn: 186770
-
Richard Smith authored
implicit conversion sequence. llvm-svn: 186769
-
Lubos Lunak authored
The functionality is equivalent to the GCC attribute. Variables of tagged types will be warned about as unused if they are not used in any way except for possible (even non-trivial) ctors/dtors called. Useful for tagging classes like std::string (which is not part of this commit). llvm-svn: 186765
-
Lubos Lunak authored
llvm-svn: 186764
-
Lubos Lunak authored
Every #include is surrounded by #if 0 in order to comment it out, which adds lines. That is fixed up right after, but that all can be inside #if part that is not processed, so fix up also after every end of a conditional part. llvm-svn: 186763
-
Benjamin Kramer authored
llvm-svn: 186762
-
David Majnemer authored
Diag ID is used throughout clang as a sentinel id meaning "this is an invalid diagnostic id." Confusingly, Diag ID maps to a valid, usable, diagnostic id. Instead, start diagnostic ids at ID one. Incidently, remove an unused element from StaticDiagInfo. llvm-svn: 186760
-
Richard Trieu authored
template. Passing around dependent types can lead to integral arguments that cannot be evaluated. llvm-svn: 186757
-
Eli Friedman authored
A class with a field of non-POD-for-layout type is not POD-for-layout. This computation should not depend on whether the field is of POD type in the language sense. Fixes PR16537. Patch by Josh Magee. llvm-svn: 186741
-
Eli Friedman authored
This is the same way GenericSelectionExpr works, and it's generally a more consistent approach. A large part of this patch is devoted to caching the value of the condition of a ChooseExpr; it's needed to avoid threading an ASTContext into IgnoreParens(). Fixes <rdar://problem/14438917>. llvm-svn: 186738
-
Larisse Voufo authored
FIXME fix: improving diagnostics for template arguments deduction of class templates and explicit specializations This patch essentially removes all the FIXMEs following calls to DeduceTemplateArguments() that want to keep track of deduction failure info. llvm-svn: 186730
-
Larisse Voufo authored
Revert "Use function overloading instead of template specialization for diagnosis of bad template argument deductions." This reverts commit a730f548325756d050d4caaa28fcbffdae8dfe95. llvm-svn: 186729
-
Eli Friedman authored
Make sure we correctly expand packs which expand to another pack in a function type. llvm-svn: 186728
-
Larisse Voufo authored
Use function overloading instead of template specialization for diagnosis of bad template argument deductions. llvm-svn: 186727
-
- Jul 19, 2013
-
-
Eli Friedman authored
I'm not sure how to write a test for this; the following shows the difference in -ast-dump: template <int x> struct A {}; template <class T> struct B { }; template <class ...Args> using C = A<(__is_trivially_constructible(Args...))>; template <class ...Args> using D = C<B<Args>...>; However, I can't seem to write a test that triggers a visible difference in behavior. llvm-svn: 186726
-
Hans Wennborg authored
The mode doesn't actually do anything yet, but this provides a way to get into it. llvm-svn: 186720
-