aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-04-17[Modules] Use global index to improve typo correction performanceArgyrios Kyrtzidis
Typo correction for an unqualified name needs to walk through all of the identifier tables of all modules. When we have a global index, just walk its identifier table only. rdar://13425732 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179730 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Add support for gcc's spelling of -fcolor-diagnostics.Nico Weber
See http://gcc.gnu.org/onlinedocs/gcc/Language-Independent-Options.html git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179728 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17[tests] Only include stdint.h if we are in freestanding mode.Daniel Dunbar
- We shouldn't even try to include stdint.h in hosted mode, as the dependency on even parsing a platforms stdint.h might fail for some targets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179723 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17[document parsing]: When tag declaration (but not definition!) Fariborz Jahanian
is part of the decl-specifier-seq of some other declaration, it doesn't get comment. // rdar://12390371 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179722 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Test cases for r179719.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179720 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Fix off-by-one error in #pragma clang system_header.Jordan Rose
The system_header pragma (from GCC) is implemented using line notes in the source manager. However, a line note's line number specifies the number not for the current line, but for the next line. This was making all line numbers appear off by one after the pragma. Reported by Andy Gibbs, uncovered during r179677. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179709 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17PR15755: don't drop parameter packs when dropping parameters with defaultRichard Smith
arguments in the formation of a candidate set of inheriting constructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179708 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Sema: Remove unused variable.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179701 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17[analyzer] Don't warn for returning void expressions in void blocks.Jordan Rose
This was slightly tricky because BlockDecls don't currently store an inferred return type. However, we can rely on the fact that blocks with inferred return types will have return statements that match the inferred type. <rdar://problem/13665798> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179699 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Unified token breaking logic: support for line comments.Alexander Kornienko
Summary: Added BreakableLineComment, moved common code from BreakableBlockComment to newly added BreakableComment. As a side-effect of the rewrite, found another problem with escaped newlines and had to change code which removes trailing whitespace from line comments not to break after this patch. Reviewers: klimek, djasper Reviewed By: klimek CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D682 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179693 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Revert r179671 and just pass a triple to the test for a platform with knownEric Christopher
TLS support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179692 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17DR974: Lambdas can have default arguments.Richard Smith
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179688 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Implemented #pragma GCC warning/error in the same mould as #pragma message.Andy Gibbs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179687 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17This corrects problems in the LibASTMatchers tutorial.Manuel Klimek
Patch by Jochen Eisinger. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179683 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Set SRet flags properly in '-cxx-abi microsoft'.Timur Iskhodzhanov
Also, - abstract out the indirect/in memory/in registers decisions into the CGCXXABI - fix handling of empty struct arguments for '-cxx-abi microsoft' - add/fix tests git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179681 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Fix PR15291: noreturn adjustment in overload resolution for function ↵Douglas Gregor
templates, from Alexander Zinenko! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179680 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Extended VerifyDiagnosticConsumer to also verify source file for diagnostic.Andy Gibbs
VerifyDiagnosticConsumer previously would not check that the diagnostic and its matching directive referenced the same source file. Common practice was to create directives that referenced other files but only by line number, and this led to problems such as when the file containing the directive didn't have enough lines to match the location of the diagnostic in the other file, leading to bizarre file formatting and other oddities. This patch causes VerifyDiagnosticConsumer to match source files as well as line numbers. Therefore, a new syntax is made available for directives, for example: // expected-error@file:line {{diagnostic message}} This extends the @line feature where "file" is the file where the diagnostic is generated. The @line syntax is still available and uses the current file for the diagnostic. "file" can be specified either as a relative or absolute path - although the latter has less usefulness, I think! The #include search paths will be used to locate the file and if it is not found an error will be generated. The new check is not optional: if the directive is in a different file to the diagnostic, the file must be specified. Therefore, a number of test-cases have been updated with regard to this. This closes out PR15613. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179677 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Small improvements to clang-format documentation and integrationDaniel Jasper
scripts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179676 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Add a bit of a hack to deal with a failing testcase on darwin10 bots.Eric Christopher
We currently emit an error message when you try to use thread local storage on targets that don't support it and testing C++11 thread locals will trip this. We don't want to xfail the test for all darwin hosts so add a quick hack to check for darwin10 and disable the test based on that. Only checking darwin10 because anything earlier is really old and I don't have a list of what other hosts don't support tls handy. Alternate suggestions welcome! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179671 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Remove dead option.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179670 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Add warning group -Woverloaded-shift-op-parentheses to -Wparentheses. ThisRichard Trieu
will fire on code such as: cout << x == 0; which the compiler will intrepret as (cout << x) == 0; This warning comes with two fixits attached to notes, one for parentheses to silence the warning, and another to evaluate the comparison first. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179662 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Correct the range returned by ParmVarDecl::getSourceRange(), for parameters ↵Argyrios Kyrtzidis
in ObjC methods with postfix types. For a parameter in a method like this: -(int)methodWithFn:(void (*)(int *p))fn; we would return the source range of the type and not include the parameter name. Fixes rdar://13668626. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179660 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17[analyzer] Merge C++ status page into Open Projects.Jordan Rose
Also, add a few random extra open projects. Most of C++ support is done; we don't need the status page anymore. We're hoping that the C++-related open projects are the only major pieces of functionality we don't model at this point. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179659 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17[analyzer] Open Projects: grammar, phrasing, formattingJordan Rose
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179658 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Test cases for r179655.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179656 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Use the extra info in global method pool to speed up looking for ObjC ↵Argyrios Kyrtzidis
overridden methods. When we are in a implementation, we check the global method pool whether there were category methods with the same selector. If there were none (common case) we don't need to do lookups for overridden methods again. Note that for an interface method (if we don't encounter its implementation), it is considered that it overrides methods that were declared before it, not for category methods introduced after it. This is tradeoff in favor of performance, since it is expensive to do lookups in case there was a category, and moving the global method pool to ASTContext (so we can check it) would increase complexity. rdar://13508196 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179654 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17In ASTContext::getOverriddenMethods, call ↵Argyrios Kyrtzidis
overridden_methods_begin/overridden_methods_end directly. This avoids unnecessary Decl::getASTContext() invocations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179653 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17Enhance the ObjC global method pool to record whether there were 0, 1, or >= ↵Argyrios Kyrtzidis
2 methods (with a particular selector) inside categories. This is done by extending ObjCMethodList (which is only used by the global method pool) to have 2 extra bits of information. We will later take advantage of this info in global method pool for the overridden methods calculation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179652 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16[6/6] ARM Neon Intrinsic Tablegen Test Generator.Michael Gottesman
Added GenerateChecksForIntrinsic method to generate FileCheck patterns for generated arm neon tests. Reviewed by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179644 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16[5/6] ARM Neon Intrinsic Tablegen Test Generator.Michael Gottesman
Changed the test generation target cpu type from cortex-a9 to swift. Reviewed by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179642 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16[4/6] ARM Neon Intrinsic Tablegen Test Generator.Michael Gottesman
Added code to NeonEmitter::runTests so that GenTest gets all of the needed arguments to invoke the neon test generation methods. Reviewed by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179640 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16Don't propagate around TargetOptions in IR-gen; we don't use it.John McCall
Patch by Stephen Lin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179639 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16Standardize accesses to the TargetInfo in IR-gen.John McCall
Patch by Stephen Lin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179638 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16Don't put too much thought into whether or not to capture aJohn McCall
type-dependent intermediate result in a postfix ++ pseudo- object operation. Test case by Tong Shen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179637 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16[3/6] ARM Neon Intrinsic Tablegen Test Generator.Michael Gottesman
Refactored out the method InstructionTypeCode from MangleName for use in further patches which perform neon tablegen test generation. Reviewed by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179636 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16Make test portable.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179635 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16[analyzer] Add experimental option "leak-diagnostics-reference-allocation".Ted Kremenek
This is an opt-in tweak for leak diagnostics to reference the allocation site if the diagnostic consumer only wants a pithy amount of information, and not the entire path. This is a strawman enhancement that I expect to see some experimentation with over the next week, and can go away if we don't want it. Currently it is only used by RetainCountChecker, but could be used by MallocChecker if and when we decide this should stay in. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179634 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16[analyzer] Add Open Projects page to the analyzer websiteAnna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179631 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16objc_autoreleasePoolPop() can throw if a -dealloc does.John McCall
Model it as throwing so that the exception can be caught. This is generally not expected to have significant code-size impact because the contents of the @autoreleasepool block are very likely to contain a call, very likely at the same cleanup level as the @autoreleasepool itself. rdar://13660038 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179630 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16Trying fixing test to make buildbot happy again.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179629 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16[2/6] ARM Neon Intrinsic Tablegen Test Generator.Michael Gottesman
This patch causes OpInst records to be silently identified with their Non-Op inst counterparts so that the same test generation infrastructure can be used to generate tests. Reviewed by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179628 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16Properly sort list.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179627 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16Factor CheckerManager to be able to pass AnalyzerOptions to checkersTed Kremenek
during checker registration. There are no immediate clients of this, but this provides a way for checkers to query the options table at startup instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179626 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16Remove unused "getConfig()" method. A new way is to have high-levelTed Kremenek
APIs that access the configuration table without clients reasoning about the string table. The string table is an implementation detail. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179625 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16[1/6] ARM Neon Intrinsic Tablegen Test Generator.Michael Gottesman
Changes necessary to arm_neon.td for the generation of Neon tests. This is the first of six patches to add to the arm neon tablegen generator the capability of generating tests to verify that the various ARM intrinsics are implemented properly. The changes include such items as: 1. Adding attributes to the Inst record so that additional metadata that is only needed for the tests can be specified in TableGen. 2. Adding wrapper classes for operator (i.e. ``Op'') intrinsics which before were simply notates as Inst. This allows us to classify what sort of test to generate for said intrinsic and further since the classes do not effect the behavior of the Inst base class, allow for normal functioning. Reviewed by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179624 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16Sema for Captured StatementsTareq A. Siraj
Add CapturedDecl to be the DeclContext for CapturedStmt, and perform semantic analysis. Currently captures all variables by reference. TODO: templates Author: Ben Langmuir <ben.langmuir@intel.com> Differential Revision: http://llvm-reviews.chandlerc.com/D433 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179618 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16rewrite-includes: Rewrite __has_include(_next) to get rid of a host dependency.Benjamin Kramer
This broke e.g. compiling a crash report from a glibc system on Darwin. Sadly, the implementation had to game the lexer a lot as we're not using a real preprocessor here. It also doesn't handle special cases like arbitrary macros in __has_include, but since this macro isn't common outside of clang's headers we can get away with that. Fixes PR14422. Differential Revision: http://llvm-reviews.chandlerc.com/D594 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179616 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16Implement CapturedStmt ASTTareq A. Siraj
CapturedStmt can be used to implement generic function outlining as described in http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-January/027540.html. CapturedStmt is not exposed to the C api. Serialization and template support are pending. Author: Wei Pan <wei.pan@intel.com> Differential Revision: http://llvm-reviews.chandlerc.com/D370 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179615 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16Parser support for #pragma clang __debug capturedTareq A. Siraj
This patch implements parsing ‘#pragma clang __debug’ as a first step for implementing captured statements. Captured statements are a mechanism for doing outlining in the AST. see http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-January/027540.html. Currently returns StmtEmpty Author: Andy Zhang <andy.zhang@intel.com> Differential Revision: http://llvm-reviews.chandlerc.com/D369 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179614 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16[Modules] Convert module specific -fno-modules-autolink into -fno-autolink.Daniel Dunbar
- There is no reason to have a modules specific flag for disabling autolinking. Instead, convert the existing flag into -fno-autolink (which should cover other autolinking code generation paths like #pragmas if and when we support them). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179612 91177308-0d34-0410-b5e6-96231b3b80d8