summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* [WinEH] Remove NewMSEH and enable its behavior by defaultReid Kleckner2015-10-085-77/+44
| | | | | | | Testing has shown that it is at least as reliable as the old landingpad pattern matching code. llvm-svn: 249647
* When pretty-printing a C++11 literal operator, don't insert whitespace betweenRichard Smith2015-10-083-3/+3
| | | | | | | the "" and the suffix; that breaks names such as 'operator""if'. For symmetry, also remove the space between the 'operator' and the '""'. llvm-svn: 249641
* Don't emit exceptional stackrestore cleanups around inalloca functionsReid Kleckner2015-10-082-18/+2
| | | | | | | | The backend restores the stack pointer after recovering from an exception. This is similar to r245879, but it doesn't try to use the normal cleanup mechanism, so hopefully it won't cause the same breakage. llvm-svn: 249640
* [WinEH] Don't use lifetime markers for MS catch parametersReid Kleckner2015-10-071-1/+7
| | | | | | | | | We don't have a good place to put them. Our previous spot was causing us to optimize loads from the exception object to undef, because it was after the catchpad instruction that models the write to the catch object. llvm-svn: 249616
* ASTMatchers: Keep AllCallbacks in a set instead of a vectorDaniel Jasper2015-10-071-6/+6
| | | | | | | | | | | AllCallbacks is currently only used to call onStartOfTranslationUnit and onEndOfTranslationUnit on them. In this (and any other scenario I can come up with), it is important (or at least better) not to have duplicates in this container. E.g. currently onEndOfTranslationUnit is called repeatedly on the same callback for every matcher that is registered with it. llvm-svn: 249598
* [VFS] Port driver tool chains to VFS.Benjamin Kramer2015-10-076-142/+155
| | | | | | | There are still some loose ends here but it's sufficient so we can detect GCC headers that are inside of a VFS. llvm-svn: 249556
* clang-format: Fixed missing space between Obj-C for/in and a typecast.Daniel Jasper2015-10-071-1/+2
| | | | | | | | | | | | | | | | | Fixes this bug: https://llvm.org/bugs/show_bug.cgi?id=24504 TokenAnnotator::spaceRequiredBetween was handling TT_ForEachMacro but not TT_ObjCForIn, so lines that look like: for (id nextObject in (NSArray *)myArray) would incorrectly turn into: for (id nextObject in(NSArray *)myArray) Patch by Kent Sutherland, thank you. llvm-svn: 249553
* [clang-format] Stop alignment sequences on open braces and parens whenDaniel Jasper2015-10-071-8/+28
| | | | | | | | | | | | | | | | | aligning assignments. This was done correctly when aligning the declarations, but not when aligning assignments. FIXME: The code between assignments and declarations alignment is roughly duplicated and would benefit from factorization. Bug 25090: https://llvm.org/bugs/show_bug.cgi?id=25090 Patch by Beren Minor. Thank you. llvm-svn: 249552
* Fix crash in codegen on casting to `bool &`.Alexey Bataev2015-10-071-1/+1
| | | | | | | | Currently codegen crashes trying to emit casting to bool &. It happens because bool type is converted to i1 and later then lvalue for reference is converted to i1*. But when codegen tries to load this lvalue it crashes trying to load value from this i1*. Differential Revision: http://reviews.llvm.org/D13325 llvm-svn: 249534
* [VFS] Refactor VFSFromYAML a bit.Benjamin Kramer2015-10-071-60/+57
| | | | | | | | | | - Rename it to RedirectingFileSystem. This is what it does, YAML is just a serialization format for it. - Consistently use unique_ptr for memory management. No functional change intended. llvm-svn: 249532
* [VFS] Also drop '.' when adding files to an in-memory FS.Benjamin Kramer2015-10-071-0/+7
| | | | | | Otherwise we won't be able to find them later. llvm-svn: 249525
* Make clang-format actually respect custom brace wrapping flags.Daniel Jasper2015-10-071-0/+4
| | | | | | This fixes llvm.org/PR25073. llvm-svn: 249519
* clang-format: Fix false ObjC block detection.Daniel Jasper2015-10-071-0/+5
| | | | | | | | | | | Before: inline A operator^(const A &lhs, const A &rhs) {} int i; After: inline A operator^(const A &lhs, const A &rhs) {} int i; llvm-svn: 249517
* clang-format: Understand array reference types.Daniel Jasper2015-10-071-1/+1
| | | | | | | | | | | | Before: void f(Type(&parameter)[10]) {} void f(Type (*parameter)[10]) {} After: void f(Type (&parameter)[10]) {} void f(Type (*parameter)[10]) {} llvm-svn: 249502
* clang-format: Fix false positive in pointer/reference detection.Daniel Jasper2015-10-071-1/+3
| | | | | | | | | | Before: return options != nullptr &&operator==(*options); After: return options != nullptr && operator==(*options); llvm-svn: 249501
* [SEH] Fix x64 __exception_code in __except blocksReid Kleckner2015-10-071-8/+15
| | | | | | | Use llvm.eh.exceptioncode to get the code out of EAX for x64. For 32-bit, the filter is responsible for storing it to memory for us. llvm-svn: 249497
* Fix Clang-tidy modernize-use-nullptr warnings in source directories; other ↵Hans Wennborg2015-10-0615-157/+98
| | | | | | | | | | minor cleanups Patch by Eugene Zelenko! Differential Revision: http://reviews.llvm.org/D13406 llvm-svn: 249484
* [Tooling] Don't run a tool invocation without a FileManager.Benjamin Kramer2015-10-061-1/+3
| | | | | | Fixes a crash regression from r249410. llvm-svn: 249413
* [Tooling] Reuse FileManager in ASTUnit.Benjamin Kramer2015-10-062-15/+11
| | | | | | | | ASTUnit was creating multiple FileManagers and throwing them away. Reuse the one from Tooling. No functionality change now but necessary for VFSifying tooling. llvm-svn: 249410
* [VFS] Put the incoming name in the file status to make InMemoryFS behave ↵Benjamin Kramer2015-10-061-1/+1
| | | | | | more like a real FS. llvm-svn: 249409
* [Tooling] Remove dead code.Benjamin Kramer2015-10-061-9/+1
| | | | | | | | | | It took me some time to figure out why this is not working as expected: std:error_code converts to true if there is an error. This means we never ever took the generated absolute path, which happens to be the right thing anyways as it properly works with virtual files. Just remove the whole thing, relative paths are covered by existing tooling tests. llvm-svn: 249408
* clang-format: Make IncludeCategories configurable in .clang-format file.Daniel Jasper2015-10-061-3/+12
| | | | | | | | | This was made much easier by introducing an IncludeCategory struct to replace the previously used std::pair. Also, cleaned up documentation and added examples. llvm-svn: 249392
* Adds a way for tools to deduce the target config from a compiler name.Manuel Klimek2015-10-061-0/+26
| | | | | | | | | | | | | Adds `addTargetAndModeForProgramName`, a utility function that will add appropriate `-target foo` and `--driver-mode=g++` tokens to a command line for driver invocations of the form `a/b/foo-g++`. It is intended to support tooling: for example, should a compilation database record some invocation of `foo-g++` without these implicit flags, a Clang tool may use this function to add them back. Patch by Luke Zarko. llvm-svn: 249391
* [VFS] Port SimpleFormatContext to InMemoryFileSystem.Benjamin Kramer2015-10-061-6/+6
| | | | llvm-svn: 249389
* [VFS] Port applyAllReplacements to InMemoryFileSystem.Benjamin Kramer2015-10-061-8/+7
| | | | llvm-svn: 249388
* [VFS] Transition clang-format to use an in-memory FS.Benjamin Kramer2015-10-062-8/+23
| | | | | | | | | | | Apart from being cleaner this also means that clang-format no longer has access to the host file system. This isn't necessary because clang-format never reads includes :) Includes minor tweaks and bugfixes found in the VFS implementation while running clang-format tests. llvm-svn: 249385
* Remove duplicated default arguments. NFC.Benjamin Kramer2015-10-051-10/+8
| | | | llvm-svn: 249355
* Revert r107690 (for PR7417) and add a testcase that it breaks. The approach ofRichard Smith2015-10-052-50/+1
| | | | | | | | | that change turns out to not be reasonable: mutating the AST of a parsed template during instantiation is not a sound thing to do, does not work across chained PCH / modules builds, and is in any case a special-case workaround to a more general problem that should be solved centrally. llvm-svn: 249342
* [sanitizer] Enable lsan for AArch64Adhemerval Zanella2015-10-051-1/+1
| | | | llvm-svn: 249338
* Re-introduce the unique_ptr removed in r249328 and just makeAdrian Prantl2015-10-051-4/+3
| | | | | | | | ~CodeGenABITypes out-of-line, which should have the same effect. Thanks to David Blaikie for pointing this out! llvm-svn: 249336
* Undo the unique_ptr'fication of CodeGenABITypes::CGM introduced in r248762.Adrian Prantl2015-10-051-0/+5
| | | | | | | | | | include/clang/CodeGenABITypes.h is in meant to be included by external users, but using a unique_ptr on the private CodeGenModule introduces a dependency on the type definition that prevents such a use. NFC llvm-svn: 249328
* Adding a narrowing AST matcher for FunctionDecl::isVariadic(), plus tests ↵Aaron Ballman2015-10-051-0/+1
| | | | | | and documentation. llvm-svn: 249321
* [VFS] Fix the windows build by including the right headers.Benjamin Kramer2015-10-051-0/+8
| | | | llvm-svn: 249319
* [VFS] Fix compilation on systems where time_t is not int64_t.Benjamin Kramer2015-10-051-4/+4
| | | | | | No functional change intended. llvm-svn: 249318
* [VFS] Add working directories to every virtual file system.Benjamin Kramer2015-10-051-8/+65
| | | | | | | | | | | | For RealFileSystem this is getcwd()/chdir(), the synthetic file systems can make up one for themselves. OverlayFileSystem now synchronizes the working directories when a new FS is added to the overlay or the overlay working directory is set. This allows purely artificial file systems that have zero ties to the underlying disks. Differential Revision: http://reviews.llvm.org/D13430 llvm-svn: 249316
* [VFS] Add an in-memory file system implementation.Benjamin Kramer2015-10-051-0/+246
| | | | | | | | | | This is a simple file system tree of memory buffers that can be filled by a client. In conjunction with an OverlayFS it can be used to make virtual files accessible right next to physical files. This can be used as a replacement for the virtual file handling in FileManager and which I intend to remove eventually. llvm-svn: 249315
* [VFS] Move class out of method so it looks less like Java.Benjamin Kramer2015-10-051-26/+28
| | | | | | No functionality change. llvm-svn: 249314
* [VFS] Remove setName from the file interface.Benjamin Kramer2015-10-051-36/+62
| | | | | | | This streamlines the interface a bit and makes Status more immutable. No functional change intended. llvm-svn: 249310
* The Driver does not set the +strict-align flag when targetingAlexandros Lamprineas2015-10-052-5/+2
| | | | | | | | [ARM] armv6m + netbsd. Tests are misssing for armv6m + darwin as well. Differential Revision: http://reviews.llvm.org/D13217 llvm-svn: 249308
* [mips][p5600] Add -mcpu=p5600 option.Daniel Sanders2015-10-052-1/+2
| | | | | | | | | | | | Summary: Reviewers: vkalintiris, atanasyan Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D12234 llvm-svn: 249306
* Use llvm::errc instead of std::errc.Rafael Espindola2015-10-051-1/+1
| | | | llvm-svn: 249302
* [OpenCL] Fix casting a true boolean to an integer vector.Anastasia Stulova2015-10-051-4/+22
| | | | | | | | | | | | | OpenCL v1.1 s6.2.2: for the boolean value true, every bit in the result vector should be set. This change treats the i1 value as signed for the purposes of performing the cast to integer, and therefore sign extend into the result. Patch by Neil Hickey! http://reviews.llvm.org/D13349 llvm-svn: 249301
* Remove support for the mips-mti-linux toolchain.Vasileios Kalintiris2015-10-056-254/+25
| | | | | | | There are two remaining buildbot failures that we'll have to investigate before submitting this again. llvm-svn: 249298
* Re-commit "Add support for the new mips-mti-linux toolchain."Vasileios Kalintiris2015-10-056-25/+254
| | | | | | | | | | | r249137 added support for the new mips-mti-linux toolchain. However, the new tests of that commit, broke some buildbots because they didn't use the correct regular expressions to capture the filename of Clang & LLD. This commit re-applies the changes of r249137 and fixes the tests in r249137 in order to match the filenames of the Clang and LLD executable. llvm-svn: 249294
* Module Debugging: Emit (ObjC) function declarations in the module scopeAdrian Prantl2015-10-041-1/+1
| | | | | | when building a module. llvm-svn: 249282
* Add -f[no-]declspec to control recognition of __declspec as a keywordSaleem Abdulrasool2015-10-045-7/+21
| | | | | | | | | | | | | | | In versions of clang prior to r238238, __declspec was recognized as a keyword in all modes. It was then changed to only be enabled when Microsoft or Borland extensions were enabled (and for CUDA, as a temporary measure). There is a desire to support __declspec in Playstation code, and possibly other environments. This commit adds a command-line switch to allow explicit enabling/disabling of the recognition of __declspec as a keyword. Recognition is enabled by default in Microsoft, Borland, CUDA, and PS4 environments, and disabled in all other environments. Patch by Warren Ristow! llvm-svn: 249279
* SourceRanges are small and trivially copyable, don't them by reference.Craig Topper2015-10-0418-55/+52
| | | | llvm-svn: 249259
* Diagnose const atomics in __atomic builtins.Eric Fiselier2015-10-041-3/+10
| | | | | | | | | | | Diagnose when a pointer to const T is used as the first argument in at atomic builtin unless that builtin is a load operation. This is already checked for C11 atomics builtins but not for __atomic ones. This patch was given the LGTM by rsmith when it was part of a larger review. (See http://reviews.llvm.org/D10407) llvm-svn: 249252
* Replace double negation of !FileID.isInvalid() with FileID.isValid().Yaron Keren2015-10-0316-26/+26
| | | | | | +couple more of double-negated !SourceLocation.isInvalid() unfixed in r249228. llvm-svn: 249235
* Replace double-negated !SourceLocation.isInvalid() with ↵Yaron Keren2015-10-0310-15/+15
| | | | | | SourceLocation.isValid(). llvm-svn: 249228
OpenPOWER on IntegriCloud