- Oct 13, 2009
-
-
Edward O'Callaghan authored
-funit-at-a-time is the default however some current makefiles pass -fno-unit-at-a-time which is ignored by GCC, we should warn about this not error out. llvm-svn: 83976
-
Douglas Gregor authored
template as a specialization. For example, this occurs with: template<typename T> struct X { template<typename U> struct Inner { /* ... */ }; }; template<> template<typename T> struct X<int>::Inner { T member; }; We need to treat templates that are member specializations as special in two contexts: - When looking for a definition of a member template, we look through the instantiation chain until we hit the primary template *or a member specialization*. This allows us to distinguish between the primary "Inner" definition and the X<int>::Inner definition, above. - When computing all of the levels of template arguments needed to instantiate a member template, don't add template arguments from contexts outside of the instantiation of a member specialization, since the user has already manually substituted those arguments. Fix up the existing test for p18, which was actually wrong (but we didn't diagnose it because of our poor handling of member specializations of templates), and add a new test for member specializations of templates. llvm-svn: 83974
-
Douglas Gregor authored
function templates. This commit ensures that friend function templates are constructed as FunctionTemplateDecls rather than partial FunctionDecls (as they previously were). It then implements template instantiation for friend function templates, injecting the friend function template only when no previous declaration exists at the time of instantiation. Oh, and make sure that explicit specialization declarations are not friends. llvm-svn: 83970
-
Mike Stump authored
offsets for covariant thunks. llvm-svn: 83965
-
Benjamin Kramer authored
llvm-svn: 83964
-
Chris Lattner authored
which is a common idiom to improve PIC'ness of code using the addr of label extension. This implementation is a gross hack, but the only other alternative would be to teach evalutate about this horrid combination. While GCC allows things like "&&foo - &&bar + 1", people don't use this in practice. This implements PR5131. llvm-svn: 83957
-
Chris Lattner authored
1. CGF now has fewer bytes of state (one pointer instead of a vector). 2. The generated code is determinstic, instead of getting labels in 'map order' based on pointer addresses. 3. Clang now emits one 'indirect goto switch' for each function, instead of one for each indirect goto. This fixes an M*N = N^2 IR size issue when there are lots of address-taken labels and lots of indirect gotos. 4. This also makes the default cause do something useful, reducing the size of the jump table needed (by one). llvm-svn: 83952
-
Chris Lattner authored
hairier (but nonsensical) example. llvm-svn: 83951
-
Zhongxing Xu authored
llvm-svn: 83949
-
Chris Lattner authored
for a null pointer. In other words, "&&foo != NULL" will always work out to true. llvm-svn: 83948
-
Chris Lattner authored
more places in clang codegen now. llvm-svn: 83947
-
John Thompson authored
llvm-svn: 83945
-
Chris Lattner authored
llvm-svn: 83942
-
Chris Lattner authored
llvm-svn: 83941
-
Chris Lattner authored
about the reason, rdar://7186119. llvm-svn: 83940
-
Chris Lattner authored
previously we only recognized it on inputs. llvm-svn: 83939
-
Zhongxing Xu authored
llvm-svn: 83936
-
Zhongxing Xu authored
llvm-svn: 83935
-
Zhongxing Xu authored
llvm-svn: 83934
-
Devang Patel authored
Disable tests that check debug info intrinsic. This does not work if debug info intrinsics are not used to encode debug info. llvm-svn: 83929
-
Devang Patel authored
llvm-svn: 83928
-
Douglas Gregor authored
llvm-svn: 83924
-
Douglas Gregor authored
that the scope in which it is being declared is complete. Also, when instantiating a member class template's ClassTemplateDecl, be sure to delay type creation so that the resulting type is dependent. Ick. llvm-svn: 83923
-
Douglas Gregor authored
llvm-svn: 83918
-
Douglas Gregor authored
llvm-svn: 83914
-
Devang Patel authored
llvm-svn: 83913
-
Devang Patel authored
llvm-svn: 83912
-
Douglas Gregor authored
that are declarations (rather than definitions). Also, be sure to set the access specifiers properly when instantiating the declarations of member function templates. llvm-svn: 83911
-
John McCall authored
llvm-svn: 83910
-
- Oct 12, 2009
-
-
John McCall authored
conditions. Add a fixit to insert the parentheses. Also fix a very minor possible memory leak in 'for' conditions. Fixes PR 4876 and rdar://problem/7289172 llvm-svn: 83907
-
Douglas Gregor authored
llvm-svn: 83904
-
Douglas Gregor authored
llvm-svn: 83901
-
Anders Carlsson authored
llvm-svn: 83900
-
Ted Kremenek authored
Use a BumpPtrAllocator to allocate all aspects of CFG, including CFGBlocks, successor and predecessor vectors, etc. Speedup: when doing 'clang-cc -analyze -dump-cfg' (without actual printing, just CFG building) on the amalgamated SQLite source (all of SQLite in one source file), runtime reduced by 9%. This fixes: <rdar://problem/7250745> llvm-svn: 83899
-
Mike Stump authored
llvm-svn: 83898
-
Douglas Gregor authored
llvm-svn: 83896
-
Douglas Gregor authored
llvm-svn: 83893
-
Douglas Gregor authored
instantiation has already been required. To do so, keep track of the point of instantiation for anything that can be instantiated. llvm-svn: 83890
-
Fariborz Jahanian authored
wip - To prune excessive reporting. llvm-svn: 83889
-
Anders Carlsson authored
llvm-svn: 83888
-