aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-05-07[analyzer] Fixup for r155244: PurgeDeadSymbols should subclass StmtPointAnna Zaks
To solve the inconsistency pointed out in Erik's review, refactor class hierarchy of ProgramPoints so that PreStmtPurgeDeadSymbols and PostStmtPurgeDeadSymbols both subclass from StmtPoint instead of PostStmt. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156315 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07remove code to add bound checks for simple array accesses, since those are ↵Nuno Lopes
already covered by the check with the objectsize builtin remove the comparison of objectsize with -1. since it's an unsigned comparison, it will always succeed if objectsize returns -1, which is enough to have the check removed git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156311 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07[analyzer]Fixup r156215: use StopTracking summary instead of ScratchArgsAnna Zaks
As per Jordy's and Ted's comment, use the default StopTracking summary instead of adding all arguments to ScratchArs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156310 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07Revert r156097, which appears to be causing some breakage.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156304 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07Fix includes for unices that don't have chdir declared transitively.Manuel Klimek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156302 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07Includes direct.h for windows compilation.Manuel Klimek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156301 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07Fixes resolution of relative paths when running clang tools.Manuel Klimek
The chdir is not the perfect fix, as it is thread hostile. The real fix will be to make -working-dir work correctly, which will take time to implement. Before that, the tooling library cannot be used concurrently. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156299 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07Fixed UserDefinedLiteral source locations.Abramo Bagnara
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156298 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07When we suppress an error due to SFINAE, stash the diagnostic away with theRichard Smith
overload candidate, and include its message in any subsequent 'candidate not viable due to substitution failure' note we may produce. To keep the note small (since the 'overload resolution failed' diagnostics are often already very verbose), the text of the SFINAE diagnostic is included as part of the text of the note, and any notes which were attached to it are discarded. There happened to be spare space in OverloadCandidate into which a PartialDiagnosticAt could be squeezed, and this patch goes to lengths to avoid unnecessary PartialDiagnostic copies, resulting in no slowdown that I could measure. (Removal in passing of some PartialDiagnostic copies has resulted in a slightly smaller clang binary overall.) Even on a torture test, I was unable to measure a memory increase of above 0.2%. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156297 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07Convert AVX non-temporal store builtins to LLVM-native IR. This was ↵Craig Topper
previously done for SSE builtins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156296 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07Change how we suppress access control in explicit instantiationsJohn McCall
so that we actually accumulate all the delayed diagnostics. Do this so that we can restore those diagnostics to good standing if it turns out that we were wrong to suppress, e.g. if the tag specifier is actually an elaborated type specifier and not a declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156291 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07There is no reason for these methods to be out-of-line.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156290 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07Refactor DelayedDiagnostics so that it keeps diagnostics inJohn McCall
separate pools owned by the RAII objects that keep pushing decl state. This gives us quite a bit more flexibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156289 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07- Adding lexical_parent and semantic_parent properties to clang.cindex.CursorManuel Klimek
- Two new tests (one for each property), require libclang built from r155858 or later to pass - New test utility function (get_cursors) that gets all the nodes with a specific spelling. Patch by Evan Pipho. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156286 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07Updating the test case based on previous patchAaron Ballman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156275 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07A union can have a constexpr defaulted default constructor, if it has anRichard Smith
in-class initializer for one of its fields. Value-initialization of such a type should use the in-class initializer! The former was just a bug, the latter is a (reported) standard defect. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156274 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07Remove variable made unused by r156270.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156273 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-07Detecting illegal instantiations of abstract types when using a ↵Aaron Ballman
function-style cast. Fixed PR12658. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156271 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-06[analyzer] Reduce parallel code paths in SimpleSValBuilder::evalBinOpNN, and ↵Jordy Rose
handle mixed-type operations more generally. The logical change is that the integers in SymIntExprs may not have the same type as the symbols they are paired with. This was already the case with taint-propagation expressions created by SValBuilder::makeSymExprValNN, but I think those integers may never have been used. SimpleSValBuilder should be able to handle mixed-integer-type SymIntExprs fine now, though, and the constraint managers were already being defensive (though not entirely correct). All existing tests pass. The logic in evalBinOpNN has been simplified so that conversion is done as late as possible. As a result, most of the switch cases have been reduced to do the minimal amount of work, delegating to another case when they can by substituting ConcreteInts and (as before) reversing the left and right arguments when useful. Comparisons require special handling in two places (building SymIntExprs and evaluating constant-constant operations) because we don't /know/ the best type for comparing the two values. I've approximated the rules in Sema [C99 6.3.1.8] but it'd be nice to refactor Sema's actual algorithm into ASTContext. This is also groundwork for handling mixed-type constraints better than we do now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156270 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-06Split mergeAvailabilityAttr out of handleAvailabilityAttr. This is importantRafael Espindola
for having a uniform logic for adding attributes to a decl. This in turn is needed to fix the FIXME: // FIXME: This needs to happen before we merge declarations. Then, // let attribute merging cope with attribute conflicts. ProcessDeclAttributes(S, NewFD, D, /*NonInheritable=*/false, /*Inheritable=*/true); The idea is that mergeAvailabilityAttr will become a method. Once attributes are processed before merging, it will be called from handleAvailabilityAttr to handle multiple attributes in one decl: void f(int) __attribute__((availability(ios,deprecated=3.0), availability(ios,introduced=2.0))); and from SemaDecl.cpp to handle multiple decls: void f(int) __attribute__((availability(ios,deprecated=3.0))); void f(int) __attribute__((availability(ios,introduced=2.0))); As a bonus, use the new structure to diagnose incompatible availability attributes added to different decls (see included testcases). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156269 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-06Put the availability warnings in a group.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156261 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-06Simple typo fix (syntex to syntax). Fixes PR12735Aaron Ballman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156259 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-06Revert r156142, "[libclang] Bring back ↵NAKAMURA Takumi
BodyIndexer::TraverseCXXOperatorCallExpr which" It caused test/Index/index-many-call-ops.cpp to fail in stage2 c-index-test on selfhosting i686-cygwin and x86_64-linux since r156229 (Reverting making RecursiveASTVisitor data recursive). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156253 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-06A conversion operator in a base class shouldn't hide another conversion operatorRichard Smith
in the same class, even if they convert to the same type. Fixes PR12712. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156247 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-05Revert r156141 (making RecursiveASTVisitor data recursive). It is causing ↵Ted Kremenek
clang to blow up in memory usage on -O2 when compiling itself, which is leading to swapping in some cases when it didn't before. We need to see if we can make this change without leading to a massive compile-time bloat. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156229 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-05Use raw_ostream in TypePrinter and eliminate uses of temporary std::strings.Argyrios Kyrtzidis
Part of rdar://10796159 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156228 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-05Make BuiltinType::getName return a StringRef and introduce ↵Argyrios Kyrtzidis
BuiltinType::getNameAsCString to get a const char* if necessary. This avoids unnecessary conversions when we want to use the result of getName as a StringRef. Part of rdar://10796159 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156227 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04Move Sema::VerifyIntegerConstantExpression() andDouglas Gregor
Sema::ConvertToIntegralOrEnumerationType() from PartialDiagnostics to abstract "diagnoser" classes. Not much of a win here, but we're -several PartialDiagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156217 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04[analyzer] RetainCountChecker: Allow objects to escape through callbacksAnna Zaks
Fixes radar://10973977. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156215 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04[analyzer] One more pointer escape test.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156214 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04Explicitly model capturing variables for blocks in the static analyzer. ↵Ted Kremenek
Fixes <rdar://problem/11125868>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156211 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04remove something that is really old and out of date.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156206 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04Inhibit ObjC format warning only in system headers (NSLocalizedString).Jean-Daniel Dupas
Add a test case for the related NSAssert workaround. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156205 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04Remove DiagGroups from notes, and add a TableGen assertion to catch them.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156192 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04Add more comments for Lexer::makeFileCharRange.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156188 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04Synchronize the representations of DeclarationName and Selector soDouglas Gregor
that bridging between the two is free. Saves ~4k of code size, although I don't see any measurable performance difference (unfortunately). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156187 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04IsTailPaddedMemberArray uses a FieldDecl'sSean Callanan
getTypeSourceInfo() without checking for NULL. FieldDecls may have NULL TypeSourceInfo, and in fact some FieldDecls generated by Clang -- and all FieldDecls generated by LLDB -- have no TypeSourceInfo. This patch makes IsTailPaddedMemberArray check for NULL. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156186 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04[PCH] Use DenseMap instead of std::map to keep track of SwitchCases.Argyrios Kyrtzidis
Part of rdar://11353109. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156185 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04[analyzer]Fixup r156134: Handle the case when FunctionDecl isn't avail.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156183 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04Move Sema::RequireNonAbstractType() off of PartialDiagnostic.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156180 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04Switch RequireLiteralType() off of PartialDiagnostic.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156178 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04Move Sema::RequireCompleteType() and Sema::RequireCompleteExprType()Douglas Gregor
off PartialDiagnostic. PartialDiagnostic is rather heavyweight for something that is in the critical path and is rarely used. So, switch over to an abstract-class-based callback mechanism that delays most of the work until a diagnostic is actually produced. Good for ~11k code size reduction in the compiler and 1% speedup in -fsyntax-only on the code in <rdar://problem/11004361>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156176 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04Thread safety analysis: check for LOCKABLE attribute on base classes.DeLesley Hutchins
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156175 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04StringRefize code because we're good even when we crash.Chad Rosier
Patch by Jordy Rose. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156172 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04Add a predefine __WINT_UNSIGNED__, similar to __WCHAR_UNSIGNED__, and test ↵James Molloy
them both for ARM and X86. Use this to fully fix Sema/format-strings.c for non-x86 platforms. Reviewed by Chandler on IRC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156169 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04Fix handling of wint_t - we can't assume wint_t is purely an integer ↵James Molloy
promotion of wchar_t - they may differ in signedness. Teach ASTContext about WIntType, and have it taken from TargetInfo like WCharType. Should fix test/Sema/format-strings.c for ARM, with the exception of one subtest which will fail if wint_t and wchar_t are the same size and wint_t is signed, wchar_t is unsigned. There'll be a followup commit to fix that. Reviewed by Chandler and Hans at http://llvm.org/reviews/r/8 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156165 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04Fix -Wlarge-by-value-copy option handling in the driver.Jean-Daniel Dupas
CC1 supports only the joined format. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156161 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04This patch adds a new Clang compiler flag "-gline-tables-only".Alexey Samsonov
It reduces the amount of emitted debug information: 1) DIEs in .debug_info have types DW_TAG_compile_unit, DW_TAG_subprogram, DW_TAG_inlined_subroutine (for opt builds) and DW_TAG_lexical_block only. 2) .debug_str contains only function names. 3) No debug data for types/namespaces/variables is emitted. 4) The data in .debug_line is enough to produce valid stack traces with function names and line numbers. Reviewed by Eric Christopher. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156160 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04test/PCH/remap-file-from-pch.cpp: Fix expression for DOS pathsep.NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156153 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-04Remove obsolete code for finding a fallback iOS SDK. <rdar://problem/11378535>Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156149 91177308-0d34-0410-b5e6-96231b3b80d8