aboutsummaryrefslogtreecommitdiff
path: root/include/clang
AgeCommit message (Collapse)Author
2013-01-14Accept [[gnu::*]] for all __attribute__((*))s which are:Richard Smith
1) Supported by Clang, and 2) Supported by GCC, and 3) Documented in GCC's manual. g++ allows its C++11-style attributes to appertain only to the entity being declared, and never to a type (even for a type attribute), so we do the same. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172382 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-14Constify argument of Preprocessor::getMacroInfoHistory and propagate toDmitri Gribenko
callers, removing unneeded const_cast git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172372 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-13ArrayRef'ize Sema APIs related to format string checkingDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172367 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-13Fix LLP64 build.Michael J. Spencer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172357 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-13Added builtins for multiprecision adds.Michael Gottesman
We lower all of these intrinsics into a 2x chained usage of uadd.with.overflow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172341 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-12Prune an unused diagnostic, detected after improving the script in r172330Dmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172331 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-12Remove unused diagnosticsDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172326 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-12Remove useless 'llvm::' qualifier from names like StringRef and others that areDmitri Gribenko
brought into 'clang' namespace by clang/Basic/LLVM.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172323 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-12Add missing includes and forward declarations so that headers don't depend onDmitri Gribenko
other headers included before them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172320 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-12Disable caching of visibility.Rafael Espindola
The testcase in pr14929 shows that this is extremely hard to do. If we choose to apply the attribute, that causes the visibility of some decls to change and that can happen really late (during codegen). Current gcc warns and ignores the attribute in this testcase with a warning. This suggest that the correct solution is to find a point in the compilation where we can compute the visibility and * assert it was never computed before * reject any attempts to compute it again in the future (with warnings). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172305 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-12Provide Decl::getOwningModule(), which determines the (sub)module inDouglas Gregor
which a particular declaration resides. Use this information to customize the "definition of 'blah' must be imported from another module" diagnostic with the module the user actually has to import. Additionally, recover by importing that module, so we don't complain about other names in that module. Still TODO: coming up with decent Fix-Its for these cases, and expand this recovery approach for other name lookup failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172290 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-12Fix -Wunused-comparison for comparisons in arguments to function-like macros.Matt Beaumont-Gay
Previously, -Wunused-comparison ignored comparisons in both macro bodies and macro arguments, but we would still emit a -Wunused-value warning for either. Now we correctly emit -Wunused-comparison for expressions in macro arguments. Also, add isMacroBodyExpansion to SourceManager, to go along with isMacroArgExpansion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172279 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-11Constify parameter of clang::getCursorKindForDeclDmitri Gribenko
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172249 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-11Improve diagnostic per Richard's suggestionFariborz Jahanian
(which may yet change if we move the diagnostic outside case value). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172242 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-11Allow RefactoringTool to write to memory instead of always to diskEdwin Vane
RefactoringTool::run() always writes the result of rewrites to disk. Instead, make this optional and provide a method for getting the refactoring results in a memory buffer instead. Also made ClangTool polymorphic so RefactoringTool could inherit from it to properly express the IS-A relationship. This change also provides access to ClangTool's public interface, e.g. mapVirtualFile() which is important once refactored buffers start living in memory instead of on disk. Reviewers: klimek git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172219 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-11Improved formatting of constructor initializersDaniel Jasper
Added option to put each constructor initializer on its own line if not all initializers fit on a single line. Enabling this for Google style now as the style guide (arguable) suggests it. Not sure whether we also want it for LLVM. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172196 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-10Truth in advertising: LocallyScopedExternalDecls actually only containsRichard Smith
external declarations with C language linkage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172150 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-10Formatter: Put spaces in ObjC method decls in the right place for Google style.Nico Weber
Objective-C method declarations look like this: - (returntype)name:(type)argname anothername:(type)arg2name; In google style, there's no space after the leading '-' but one after "(returntype)" instead (but none after the argument types), see http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml#Method_Declarations_and_Definitions Not inserting the space after '-' is easy, but to insert the space after the return type, the formatter needs to know that a closing parenthesis ends the return type. To do this, I tweaked the code in parse() to check for this, which in turn required moving detection of TT_ObjCMethodSpecifier from annotate() to parse(), because parse() runs before annotate(). (To keep things interesting, the return type is optional, but it's almost always there in practice.) http://llvm-reviews.chandlerc.com/D280 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172140 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-10[ms-inline asm] Extend the inline asm Sema lookup interface to determine if theChad Rosier
Decl is a VarDecl. Part of rdar://12991541 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172120 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-10In my last patch use InGroup<Switch> (per Dmitri's comment).Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172103 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-10Provide a better warning when case value overflows.Fariborz Jahanian
// rdar://11577384 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172102 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-10Formatter: Land header change I forgot to land in r172099.Nico Weber
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172101 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-10Diagnostics: name all implicit groups used more than once.Jordan Rose
This will be a new style requirement going forwards: a diagnostic can only use the implicit InGroup<DiagGroup<"foo">> syntax if "foo" is not used by any other diagnostics; as soon as it is, it needs an explicit group. This also brings some stray "conversion" diagnostics into the "Value Conversion Issue" category, instead of the more generic "Semantic Issue" category. I consider this an improvement! - warn_impcast_complex_scalar - warn_impcast_float_integer - warn_impcast_float_precision - warn_impcast_integer_precision - warn_impcast_vector_scalar git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172088 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-10Improvements to function type and ObjC block formatting.Daniel Jasper
Before: int (^myBlock) (int) = ^(int num) {} A<void ()>; int (*b)(int); After: int (^myBlock)(int) = ^(int num) {} A<void()>; int(*b)(int); For function types and function pointer types, this patch only makes the behavior consistent (for types that are keywords and other types). For the latter function pointer type declarations, we'll probably want to add a space after "int". Also added LangOpts.Bool = 1, so we handle "A<bool()>" appropriately Moved the LangOpts-settings to a public place for use by tests and clang-format binary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172065 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-10Enable intel_ocl_bicc for x86_64 target only. Remove fix from 171969 that ↵Guy Benyei
enabled this extension for multiple targets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172052 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-10Rework the realpath nonsense for framework lookups to deal moreDouglas Gregor
uniformly with symlinks between top-level and embedded frameworks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172030 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-09Issue warning when case value is too large to fitFariborz Jahanian
in case condition type. // rdar://11577384. Test is conditionalized on x86_64-apple triple as I am not sure if the INT_MAX/LONG_MAX values in the test will pass this test for other hosts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172016 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-09Remove the unused Parser::ParseTranslationUnit functionHal Finkel
Parser::ParseTranslationUnit is now dead because the loop over ParseTopLevelDecl is in ParseAST. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172005 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-09Enable intel_ocl_bicc for x86_64 target. This was missed in r171056.Guy Benyei
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171969 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-09put back diagnostics when flexible members are capturedFariborz Jahanian
in lambdas. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171921 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-08Remove lambda from my last patch.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171915 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-08objectiveC blocks: It is impractical to capture Fariborz Jahanian
struct variables with flexiable array members in blocks (and lambdas). Issue error instead of crashing in IRGen. // rdar://12655829 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171912 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-08Tighten types a bit. No functionality change.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171902 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-08Tighten types a bit. No functionality change.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171895 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-08Tighten types a bit. No functionality change.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171894 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-08Remove on-by-default warning from -Wmost.David Blaikie
-Wint-to-pointer-cast, added to match GCC's warning by the same name, doesn't need to be in any other groups (as it isn't in any groups in GCC either). Found in post-commit review by Ted Kremenek. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171893 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-08[analyzer] Bump down the max size of functions being analyzed.Anna Zaks
With the new setting, we are not going to inline any functions that are more than 50 basic blocks. (The analyzer is 20% faster on several especially bad benchmarks with the new default.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171891 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-08clang-format can now format #defines.Manuel Klimek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171865 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-08Move ref qualifiers from Type bitfields into FunctionProtoType, stealing twoRichard Smith
bits from the number of parameters. This brings the bitfields down from 33 bits to 32 bits, reducing the size of Types by 4 bytes on 32-bit systems. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171827 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-08[analyzer] Include the bug uniqueing location in the issue_hash.Anna Zaks
The issue here is that if we have 2 leaks reported at the same line for which we cannot print the corresponding region info, they will get treated as the same by issue_hash+description. We need to AUGMENT the issue_hash with the allocation info to differentiate the two issues. Add the "hash" (offset from the beginning of a function) representing allocation site to solve the issue. We might want to generalize solution in the future when we decide to track more than just the 2 locations from the diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171825 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-07Add support for attribute((mode(unwind_word))).Rafael Espindola
Patch by Nick Lewycky. Fixes pr8703. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171781 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-07Pull the bulk of Lexer::MeasureTokenLength() out into a new function,Argyrios Kyrtzidis
Lexer::getRawToken(). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171771 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-07Implement Attr dumping for -ast-dump.Alexander Kornienko
http://llvm-reviews.chandlerc.com/D234 Patch by Philip Craig! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171760 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-07Add fixit hints for misplaced C++11 attributes around class specifiers.Michael Han
Following r168626, in class declaration or definition, there are a combination of syntactic locations where C++11 attributes could appear, and among those the only valid location permitted by standard is between class-key and class-name. So for those attributes appear at wrong locations, fixit is used to move them to expected location and we recover by applying them to the class specifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171757 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-07Reformat clang-formats source code.Daniel Jasper
All changes done by clang-format itself. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171732 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-07Add style option for number of spaces before trailing comments.Daniel Jasper
In LLVM style, a single space should be enough. In Google style, two spaces are required. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171725 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-07Simplify. No behavior change.Nico Weber
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171680 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-04Unqualify the parameter type.Rafael Espindola
This fixes a regression from 168895. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171519 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-04Add the module name to the 'incomplete umbrella header' warning.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171497 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-04Fix up various builtin declaration of objc_msgSend familiesFariborz Jahanian
to match those foung in objc.h an avoid spurious warnings. // rdar://12489098 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171492 91177308-0d34-0410-b5e6-96231b3b80d8