aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-08-07Comment AST: treat enumerators as "variables" in DeclInfo.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161435 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07libclang API for comment-to-xml conversion.Dmitri Gribenko
The implementation also includes a Relax NG schema and tests for the schema itself. The schema is used in c-index-test to verify that XML documents we produce are valid. In order to do the validation, we add an optional libxml2 dependency for c-index-test. Credits for CMake part go to Doug Gregor. Credits for Autoconf part go to Eric Christopher. Thanks! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161431 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07objective-c: Exclude -Wdirect-ivar-access for arc.Fariborz Jahanian
Allow direct ivar access in init and dealloc methods in mrr. // rdar://650197 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161426 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Properly check length modfiers for %n in format strings.Hans Wennborg
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161408 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Remove ScanfArgType and bake that logic into ArgType.Hans Wennborg
This is useful for example for %n in printf, which expects a pointer to int with the same logic for checking as %d would have in scanf. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161407 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Initial support for recursing into the new clang-tools-extra repositoryChandler Carruth
if checked out under clang/tools/extra. This is mostly so folks other than me can start to test. Documentation, details, and an announcement are still in the works. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161405 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Rename analyze_format_string::ArgTypeResult to ArgTypeHans Wennborg
Also remove redundant constructors and unused member functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161403 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Objective-C pointer types don't have C-linkage, even though they areDouglas Gregor
non-POD. Fixes <rdar://problem/12031870>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161395 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Update documentation of HasSideEffects to match its callers' expectations, andRichard Smith
update implementation to match. An elidable, non-trivial constructor call is a side-effect under this definition, but wasn't under the old one, because we are not required to evaluate it even though it may have an effect. Also rationalize checking for volatile reads: just look for lvalue-to-rvalue conversions on volatile glvalues, and ignore whether a DeclRefExpr etc is for a volatile variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161393 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07[analyzer] + New line at end of fileAnna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161392 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07[analyzer] Address Jordan's review of DynamicTypePropagation.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161391 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Fix the test RUN line for this better.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161390 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Enhance ClangDiagnosticsEmitter to reject diagnostics that are errors that ↵Ted Kremenek
are also included in warning groups. Warning groups can only contain warnings, because only warnings can be mapped to errors or ignored. This caught a few diagnostics that were incorrectly in diagnostic groups, and could have resulted in a compiler crash when those diagnostic groups were mapped. Fixes <rdar://problem/12044436> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161389 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Teach Expr::HasSideEffects about all the Expr types, and fix a bug where itRichard Smith
was mistakenly classifying dynamic_casts which might throw as having no side effects. Switch it from a visitor to a switch, so it is kept up-to-date as future Expr nodes are added. Move it from ExprConstant.cpp to Expr.cpp, since it's not really related to constant expression evaluation. Since we use HasSideEffect to determine whether to emit an unused global with internal linkage, this has the effect of suppressing emission of globals in some cases. I've left many of the Objective-C cases conservatively assuming that the expression has side-effects. I'll leave it to someone with better knowledge of Objective-C than mine to improve them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161388 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07[analyzer] Add a test case for OS X 10.8's NSMakeCollectable under non-GC.Jordan Rose
This is an additional test for r161349 (ignoring 10.8's annotations for NSMakeCollectable). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161380 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07If we don't have a complete type for the array type yet either thenEric Christopher
just let the alignment be zero. PR13531 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161379 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Remove two fall through diagnostics from the IgnoredAttributes group, since ↵Ted Kremenek
they are errors, not warnings. Only warnings should be in warning groups. This was causing an assertion failure in code using pragmas to map -Wignored-attributes to ignored, but this kind of diagnostic mapping is disallowed for builtin errors. We should just wire up tablegen to reject errors being in diagnostic groups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161376 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07[ms-inline asm] Stmt destructors are never called, so allocate the AsmToks usingChad Rosier
the ASTContext BumpPtr. Also use the preferred llvm::ArrayRef interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161373 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Specify a triple on this to make it easier to test.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161372 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Remove some unintended changes from my last patch.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161369 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Make sure when we get the replacement type for a template argumentEric Christopher
that we attach the lost qualifiers. Fixes rdar://11882155 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161368 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-07Handle null suffixes in GetTemporaryPath (PCH files don't have suffixes).Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161367 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06[analyzer] DynTypes: Add a test for improper cast performed by user.Anna Zaks
Dynamic type inference does the right thing in this case. However, as Jordan suggested, it would be nice to add a warning here as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161365 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06objective-c: Implement gcc's -Wdirect-ivar-access option.Fariborz Jahanian
// rdar://6505197 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161362 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Comment parsing: fix crash on \tparam followed immediately by another blockDmitri Gribenko
command, for example: \tparam\brief. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161361 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06[analyzer] Dynamic type info - propagate through implicit casts.Anna Zaks
I currently have a bit of redundancy with the cast kind switch statement inside the ImplicitCast callback, but I might be adding more casts going forward. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161358 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06[analyzer] Add a checker to manage dynamic type propagation.Anna Zaks
Instead of sprinkling dynamic type info propagation throughout ExprEngine, the added checker would add the more precise type information on known APIs (Ex: ObjC alloc, new) and propagate the type info in other cases (ex: ObjC init method, casts (the second is not implemented yet)). Add handling of ObjC alloc, new and init to the checker. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161357 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Refactor checks for unevaluated contexts into a common utility function.David Blaikie
The one caller that's surrounded by nearby code manipulating the underlying evaluation context list is left unmodified for readability. Review by Sean Silva and Richard Smith. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161355 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Comment AST: DeclInfo: collapse a bunch of boolean flags into an enum.Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161352 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06[analyzer] Add plist output checks for all four "path notes" tests.Jordan Rose
No functionality change, but from now on, any new path notes should be tested both with plain-text output (for ease of human auditing) and with plist output (to ensure control flow and events are being correctly represented in Xcode). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161351 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06[analyzer] Improve arrow locations for PseudoObjectExprs.Jordan Rose
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161350 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06[analyzer] Ignore OS X 10.8's annotations for NSMakeCollectable.Jordan Rose
The frameworks correctly use the 'cf_consumed' and 'ns_returns_retained' attributes for NSMakeCollectable, but we can model the behavior under garbage collection more precisely than that. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161349 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06For global record types, the self reference checker was called twice, resultingRichard Trieu
in duplicate -Wuninitialized warnings. Change so that only the check in TryConstructorInitialization() will be used and a single warning be emitted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161345 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06scan-build: factor out setting of environment variables.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161343 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06[ms-inline asm] Pass Tokens to Sema and store them in the AST. No functionalChad Rosier
change intended. No test case as there's no real way to test at this time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161342 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Fix MIPS DSP Rev1 intrinsics memory properties.Simon Atanasyan
The patch reviewed by Akira Hatanaka. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161333 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Comment parser and sema: remove useless return valuesDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161331 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Pull 'xcodebuild' wrapper logic into a separate function.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161330 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Comment diagnostics: warn on duplicate \brief and \return commands.Dmitri Gribenko
Doxygen manual claims that multiple \brief or \returns commands will be merged together, but actual behavior is different (second \brief command becomes a part of a discussion, second \returns becomes a "Returns: blah" paragraph on its own). Anyway, it seems to be a bad idea to use multiple \brief or \returns commands in a single command. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161325 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Comment diagnostics: \return in void function: specialize diagnostic text forDmitri Gribenko
ObjC methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161324 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06Re-enable pcmpistri/pcmpestri builtins in clang now that llvm supports them ↵Craig Topper
properly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161319 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06PR13529: Don't crash if the driver sees an unused input file when running asRichard Smith
'clang-cpp'. For now, the test uses "REQUIRES: shell" to determine if the host system supports "ln -s", which it uses to create a 'clang-cpp' symlink. This is a bit hacky and should likely be directly supported by lit.cfg. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161317 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06PR13499: Don't try to check whether 'override' has been validly applied untilRichard Smith
we know whether the function is virtual. But check it as soon as we do know; in some cases we don't need to wait for an instantiation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161316 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-06PR13527: don't assert if a function is explicitly defaulted when it's alreadyRichard Smith
been defined. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161315 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-05Add __builtin_readcyclecounter() to produce the @llvm.readcyclecounter() ↵Hal Finkel
intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161310 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-04Simplify code, no functionality change.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161303 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-04[analyzer] Malloc: remove assert since is not valid as of r161248Anna Zaks
We can be in the situation where we did not track the symbol before realloc was called on it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161294 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-04objective-C string literal has no side-effect,Fariborz Jahanian
resulting in issuance of unused static variable warning now. // rdar://10777111 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161291 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-04[analyzer] Use a more robust check for null in CallAndMessageChecker.Jordan Rose
This should fix the failing test on the buildbot as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161290 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-04[analyzer] Don't assume values bound to references are automatically non-null.Jordan Rose
While there is no such thing as a "null reference" in the C++ standard, many implementations of references (including Clang's) do not actually check that the location bound to them is non-null. Thus unlike a regular null dereference, this will not cause a problem at runtime until the reference is actually used. In order to catch these cases, we need to not prune out paths on which the input pointer is null. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161288 91177308-0d34-0410-b5e6-96231b3b80d8