aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-02-04clang/Analysis: Fix r174245, a valgrind error in ↵NAKAMURA Takumi
AnalysisDeclContext::getBody(bool &IsAutosynthesized), to initialize IsAutosynthesized explicitly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174303 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03DeclPrinter: fix CXXConstructExpr printing with implicit default argumentDmitri Gribenko
This is an improvement of r173630, that handles the following case: struct VirualDestrClass { VirualDestrClass(int arg); virtual ~VirualDestrClass(); }; struct ConstrWithCleanupsClass { ConstrWithCleanupsClass(const VirualDestrClass& cplx = VirualDestrClass(42)); }; ConstrWithCleanupsClass cwcNoArg; That was printed as: ConstrWithCleanupsClass cwcNoArg(); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174296 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03Drop value names from test to get -Asserts builds back to green.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174294 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03CodeGen: Implement hint values for dynamic_cast as described in the Itanium ↵Benjamin Kramer
C++ ABI. This can yield dramatic speedups of dynamic_cast for simple inheritance trees, at least with libsupc++. Neither libcxxabi nor libcxxrt make use of this hint currently, it was never implemented because clang didn't support it. There was some concern about the number of class hierarchy walks this change introduces. If it turns out to be an issue we can add caching either at the cast pair level or even deeper, but we also do a lot of walks in Sema so this codepath is probably fairly optimized already. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174293 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03CodeGen: Remove unnecessary const_casts. No functionality change.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174292 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03Fix bug in formatting of nested initializers.Daniel Jasper
We can now format: SomeArrayOfSomeType a = { { { 1, 2, 3 } }, { { 1, 2, 3 } }, { { 111111111111111111111111111111, 222222222222222222222222222222, 333333333333333333333333333333 } }, { { 1, 2, 3 } }, { { 1, 2, 3 } } }; Before, we did strange things there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174291 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03Comment to XML conversion: replace string comparison with command ID comparisonDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174290 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03CodeGen: Mark the runtime function __dynamic_cast as readonly & nounwind.Benjamin Kramer
This allows the optimizer to CSE dynamic_casts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174289 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03Remove unneeded const_castsDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174287 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03libclang: wrap CXString implementation into 'namespace cxstring'Dmitri Gribenko
This removes quite a few 'cxstring::' qualifications where they are obvious. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174286 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03libclang: remove 'using namespace cxstring'Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174285 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03libclang: migrate IndexingDeclVisitor to ConstDeclVisitorDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174284 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03libclang: remove unneeded const_castDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174283 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03Constify ASTContext::getObjContainingInterfaceDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174282 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03libclang: migrate USRGenerator to ConstDeclVisitorDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174281 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03libclang: remove unneeded const_castsDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174280 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-03clang/test/CodeGenCXX/debug-info-class.cpp: Tweak to unbreak test for a few ↵NAKAMURA Takumi
targets. - Relax a expression for arm-gnueabi. - Exclude msvc to limit target triplets to add limited a few targets. Feel free to remove actions if guys thought they redundant. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174278 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02Revert "[analyzer] Model trivial copy/move ctors with an aggregate bind."Jordan Rose
...again. The problem has not been fixed and our internal buildbot is still getting hangs. This reverts r174212, originally applied in r173951, then reverted in r174069. Will not re-apply until the entire project analyzes successfully on my local machine. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174265 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02libclang: introduce cxstring::{createRef,createDup} for StringRefsDmitri Gribenko
Also migrate all clients from the old API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174263 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02PR15132: Replace "address expression must be an lvalue or a functionRichard Smith
designator" diagnostic with more correct and more human-friendly "cannot take address of rvalue of type 'T'". For the case of & &T::f, provide a custom diagnostic, rather than unhelpfully saying "cannot take address of rvalue of type '<overloaded function type>'". For the case of &array_temporary, treat it just like a class temporary (including allowing it as an extension); the existing diagnostic wording for the class temporary case works fine. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174262 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02Correctly classify T{} as an array temporary if T is an array of class type ↵Richard Smith
with nontrivial destructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174261 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02Add some horrible Perl code to teach scan-build to recursively walk a ↵Ted Kremenek
directory for HTML files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174260 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02Don't forget to run destructors when we create an array temporary of class type.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174257 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02Revert "Update checker build to checker-271."Ted Kremenek
Turns out we didn't update scan-build to work with HTML files in nested directories. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174256 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02Fixed another whitespace issue... *sigh*.Michael Gottesman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174255 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02Fixed whitespace.Michael Gottesman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174254 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02On platforms which do not support ARC natively, do not mark ↵Michael Gottesman
objc_retain/objc_release as "nonlazybind". rdar://13108298. rdar://13129783. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174253 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02Update checker build to checker-271.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174252 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02Revert r174246, accidentally committed.David Blaikie
This reverts commit 1513eb9284c23acfd19cf742b95996fbb11ca741. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174249 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02Sentenc-ify comment added in r174206.David Blaikie
Based on post-commit review by Paul Robinson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174248 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02Generalize DebugInfo tests by avoiding explicit metadata numbersDavid Blaikie
This addresses several (not all) debug info tests that use explicit metadata numbers. Wherever the same number appeared more than once in a test I used a named match to ensure the same number appeared in all those cases (this may still be overly constraining test cases as they may not have actually cared about that relationship). For one-off numbers I just replaced them with an unnamed regex. This may underconstrain poorly written test cases that were interested in checking that certain metadata nodes were related but didn't actually match on all the related nodes numbers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174247 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02BasicsDavid Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174246 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02[analyzer] Always inline functions with bodies generated by BodyFarm.Anna Zaks
Inlining these functions is essential for correctness. We often have cases where we do not inline calls. For example, the shallow mode and when reanalyzing previously inlined ObjC methods as top level. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174245 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02[analyzer] Print Inline mode with -analyzer-display-progress.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174244 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02[analyzer] Fix typo.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174243 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02This patch makes "&Cls::purevfn" not an odr use. This isn't what the standardNick Lewycky
says, but that's a defect (to be filed). "Cls::purevfn()" is still an odr use. Also fixes a bug that caused us to not mark the function referenced just because we didn't want to mark it odr used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174242 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02libclang: introduce cxstring::{createRef,createDup} for C stringsDmitri Gribenko
Also migrate all clients from the old API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174238 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01Merge "special" types from different modules in the AST reader.Douglas Gregor
Different modules may have different views of the various "special" types in the AST, such as the redefinition type for "id". Merge those types rather than only considering the redefinition types for the first AST file loaded. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174234 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01clang/test/CodeGenCXX/debug-info-class.cpp: Fixup for -Asserts.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174229 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01Const'ify Preprocessor::getPredefinesFileID.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174218 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01Unbreak Makefile build after r174216Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174217 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01Comment parsing: improve the fidelity of XML output for many block commandsDmitri Gribenko
This change introduces a 'kind' attribute for the <Para> tag, that captures the kind of the parent block command. For example: \todo Meow. used to be just <Para>Meow.</Para>, but now it is <Para kind="todo">Meow.</Para> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174216 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01Add some missing PPC cpusBill Schmidt
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174215 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01objc: Provide correct fixit instruction when two mismatchedFariborz Jahanian
nsstringis are compared without. // rdar://12716301 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174214 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01[analyzer] Explain why we have system-header-simulator*.h files.Jordan Rose
Suggested by Csaba. Text based on an e-mail of mine on cfe-dev. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174213 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01Re-apply "[analyzer] Model trivial copy/move ctors with an aggregate bind."Jordan Rose
With the optimization in the previous commit, this should be safe again. Originally applied in r173951, then reverted in r174069. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174212 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01[analyzer] Reuse a LazyCompoundVal if its type matches the new region.Jordan Rose
This allows us to keep from chaining LazyCompoundVals in cases like this: CGRect r = CGRectMake(0, 0, 640, 480); CGRect r2 = r; CGRect r3 = r2; Previously we only made this optimization if the struct did not begin with an aggregate member, to make sure that we weren't picking up an LCV for the first field of the struct. But since LazyCompoundVals are typed, we can make that inference directly by comparing types. This is a pure optimization; the test changes are to guard against possible future regressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174211 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01Fix exception handling line table problems introduced by r173593David Blaikie
r173593 made us a little too eager to associate all code at the end of a function with the user-written 'return' line. This caused problems with breakpoints as they'd be set in exception handling code preceeding the actual non-exception return handling code, leading to the breakpoint never being hit in non-exceptional execution. This change restores the pre-r173593 exception handling line information where the cleanup code is associated with the '}' not the return line. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174206 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01Add -mqpx and -mno-qpx feature flags to toggle use of the PPC QPX vector ↵Hal Finkel
instruction set I've renamed the altivec test to ppc-features (because now there is more than one feature to test). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174204 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01[driver] Don't try to generate diagnostic information for dsymutil crashes.Chad Rosier
Part of rdar://13134273 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174203 91177308-0d34-0410-b5e6-96231b3b80d8