summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
* Test commitRachel Craik2015-09-141-2/+2
| | | | | | Remove some trailing whitespace llvm-svn: 247560
* [CMake] r247548 introduced llvm-readobj.NAKAMURA Takumi2015-09-141-1/+1
| | | | llvm-svn: 247554
* [CMake] Reformat CLANG_TEST_DEPS.NAKAMURA Takumi2015-09-141-1/+2
| | | | llvm-svn: 247553
* [mips] Add test case to check ABI flag emissions in case of inline assemblerSimon Atanasyan2015-09-141-0/+12
| | | | | | Follow up to r247546. The test case reproduces the problem fixed by this commit. llvm-svn: 247548
* [Sema] Reject value-initialization of function typesDavid Majnemer2015-09-143-0/+13
| | | | | | | | | T in the expression T() must be a non-array complete object type or the void type. Function types are neither. This fixes PR24798. llvm-svn: 247535
* [Static Analyzer] Remove a redundant file.Gabor Horvath2015-09-131-623/+0
| | | | llvm-svn: 247533
* [Static Analyzer] Merge the Objective-C Generics Checker into Dynamic Type ↵Gabor Horvath2015-09-134-58/+673
| | | | | | | | Propagation checker. Differential Revision: http://reviews.llvm.org/D12381 llvm-svn: 247532
* [docs] NFC: Fix line formatting in INSTALL.txtVedant Kumar2015-09-131-3/+3
| | | | | | | | Patch by beltex! Differential Revision: http://reviews.llvm.org/D12684 llvm-svn: 247530
* Use -f instead of -d flag for testing existing of clang executable ↵Ted Kremenek2015-09-121-2/+2
| | | | | | (http://reviews.llvm.org/D12827). llvm-svn: 247510
* Test commit.Kelvin Li2015-09-121-1/+0
| | | | llvm-svn: 247503
* [CodeGen] Remove wrapper-free always_inline functions from COMDATsDavid Majnemer2015-09-122-13/+17
| | | | | | always_inline functions without a wrapper don't need to be in a COMDAT. llvm-svn: 247500
* Clean up trailing whitespace in the builtin headersSean Silva2015-09-1213-103/+103
| | | | llvm-svn: 247498
* clang/test/Driver/stackrealign.c REQUIRES clang-driver.NAKAMURA Takumi2015-09-121-0/+1
| | | | | | GCC driver, for example cygwin, both "-mstackrealign" "-mno-stackrealign" are passed. llvm-svn: 247496
* Always_inline codegen rewrite.Evgeniy Stepanov2015-09-1216-28/+361
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current implementation may end up emitting an undefined reference for an "inline __attribute__((always_inline))" function by generating an "available_externally alwaysinline" IR function for it and then failing to inline all the calls. This happens when a call to such function is in dead code. As the inliner is an SCC pass, it does not process dead code. Libc++ relies on the compiler never emitting such undefined reference. With this patch, we emit a pair of 1. internal alwaysinline definition (called F.alwaysinline) 2a. A stub F() { musttail call F.alwaysinline } -- or, depending on the linkage -- 2b. A declaration of F. The frontend ensures that F.inlinefunction is only used for direct calls, and the stub is used for everything else (taking the address of the function, really). Declaration (2b) is emitted in the case when "inline" is meant for inlining only (like __gnu_inline__ and some other cases). This approach, among other nice properties, ensures that alwaysinline functions are always internal, making it impossible for a direct call to such function to produce an undefined symbol reference. This patch is based on ideas by Chandler Carruth and Richard Smith. llvm-svn: 247494
* Revert "Specify target triple in alwaysinline tests."Evgeniy Stepanov2015-09-1116-355/+28
| | | | | | | | | Revert "Always_inline codegen rewrite." Breaks gdb & lldb tests. Breaks on Fedora 22 x86_64. llvm-svn: 247491
* Add new test file missing from r247486.Richard Smith2015-09-111-0/+6
| | | | llvm-svn: 247488
* [modules] When picking one of two template declarations as a lookup result,Richard Smith2015-09-114-1/+25
| | | | | | | | it's not sufficient to prefer the declaration with more default arguments, or the one that's visible; they might both be visible, but one of them might have a visible default argument where the other has a hidden default argument. llvm-svn: 247486
* When comparing two block captures for layout, don't crashJohn McCall2015-09-112-1/+10
| | | | | | | | if they have the same alignment and one was 'this'. Fixes PR24780. llvm-svn: 247482
* Let selector-expr-lvalue.mm actually test something.Nico Weber2015-09-111-8/+15
| | | | | | | I accidentally introduced a bug locally, and noticed that none of the tests caught it. No longer! llvm-svn: 247477
* [Static Analyzer] Properly cash the configuration option for lambda support. Gabor Horvath2015-09-111-1/+3
| | | | llvm-svn: 247476
* [Shave]: pass -isystem dirs and "-Wa," args to moviAsmDouglas Katzman2015-09-112-7/+9
| | | | llvm-svn: 247474
* Specify target triple in alwaysinline tests.Evgeniy Stepanov2015-09-112-6/+6
| | | | | | This should fix the tests on Windows (failing due to mangling differencies). llvm-svn: 247473
* Simplify logic introduced in r247464.David Majnemer2015-09-111-3/+3
| | | | llvm-svn: 247472
* [tooling] In CompileCommand, Expose the 'file' that was associated with the ↵Argyrios Kyrtzidis2015-09-117-8/+37
| | | | | | command. llvm-svn: 247468
* [CMake] [Darwin] Add support for building bootstrap builds with -fltoChris Bieneman2015-09-111-2/+13
| | | | | | When building with LTO the bootstrap builds need to depend on libLTO, llvm-ar, and llvm-ranlib, which all need to be passed into the bootstrap build. This functionality only works on Darwin. llvm-svn: 247467
* [analyzer] Improve behavior if Clang not found.Anton Yartsev2015-09-111-31/+33
| | | | | | | - Eliminate 'No such file or directory at scan-build line ...' error if '$RealBin/bin/clang' or '$RealBin/clang' directory does not exist. - Eliminate 'Use of uninitialized value $Clang in concatenation (.) or string at scan-build line ...' error if help is displayed while $Clang was not found. llvm-svn: 247466
* Always_inline codegen rewrite.Evgeniy Stepanov2015-09-1116-28/+355
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current implementation may end up emitting an undefined reference for an "inline __attribute__((always_inline))" function by generating an "available_externally alwaysinline" IR function for it and then failing to inline all the calls. This happens when a call to such function is in dead code. As the inliner is an SCC pass, it does not process dead code. Libc++ relies on the compiler never emitting such undefined reference. With this patch, we emit a pair of 1. internal alwaysinline definition (called F.alwaysinline) 2a. A stub F() { musttail call F.alwaysinline } -- or, depending on the linkage -- 2b. A declaration of F. The frontend ensures that F.inlinefunction is only used for direct calls, and the stub is used for everything else (taking the address of the function, really). Declaration (2b) is emitted in the case when "inline" is meant for inlining only (like __gnu_inline__ and some other cases). This approach, among other nice properties, ensures that alwaysinline functions are always internal, making it impossible for a direct call to such function to produce an undefined symbol reference. This patch is based on ideas by Chandler Carruth and Richard Smith. llvm-svn: 247465
* [MS ABI] Select an inheritance model in template argumentsDavid Majnemer2015-09-112-3/+16
| | | | | | | | | | | | We used to only select an inheritance model if the pointer to member was nullptr. Instead, select a model regardless of the member pointer's value. N.B. This bug was exposed by making member pointers report true for isIncompleteType but has been latent since the member pointer scheme's inception. llvm-svn: 247464
* [analyzer] Add -analyzer-config option for function size the inliner ↵Devin Coughlin2015-09-115-7/+41
| | | | | | | | | | | | | | | | | | | considers as large Add an option (-analyzer-config min-blocks-for-inline-large=14) to control the function size the inliner considers as large, in relation to "max-times-inline-large". The option defaults to the original hard coded behaviour, which I believe should be adjustable with the other inlining settings. The analyzer-config test has been modified so that the analyzer will reach the getMinBlocksForInlineLarge() method and store the result in the ConfigTable, to ensure it is dumped by the debug checker. A patch by Sean Eveson! Differential Revision: http://reviews.llvm.org/D12406 llvm-svn: 247463
* [Edit] Fix issue with tracking what macro argument inputs have been edited.Argyrios Kyrtzidis2015-09-114-16/+84
| | | | | | This was not working correctly, leading to erroneously rejecting valid edits. llvm-svn: 247462
* Record function attribute "stackrealign" instead of using backend optionAkira Hatanaka2015-09-117-25/+21
| | | | | | | | | | | | -force-align-stack. Also, make changes to the driver so that -mno-stack-realign is no longer an option exposed to the end-user that disallows stack realignment in the backend. Differential Revision: http://reviews.llvm.org/D11815 llvm-svn: 247451
* Fix a typo and make this test stricter.Adrian Prantl2015-09-111-2/+5
| | | | llvm-svn: 247449
* Remove an unnecessary check. NFCAdrian Prantl2015-09-111-1/+1
| | | | llvm-svn: 247448
* Remove a redundant check from CGDebugInfo::shouldOmitDefinition() (NFC).Adrian Prantl2015-09-111-7/+1
| | | | llvm-svn: 247447
* Cleanup: Get rid of a bunch of unnecessary invocations of internString()Adrian Prantl2015-09-111-21/+14
| | | | | | in CGDebugInfo.cpp: MDString::get() copies its arguments. llvm-svn: 247445
* [Static Analyzer] Fixed a typo in a diagnostic message.Gabor Horvath2015-09-111-1/+1
| | | | llvm-svn: 247444
* Extend the Token visualizer used by MSVC to display the identifier text for ↵Aaron Ballman2015-09-111-7/+8
| | | | | | | | tok::identifier tokens. Patch by Mike Spertus. llvm-svn: 247442
* Use Itanium C++ ABI triple for new modules+debug testReid Kleckner2015-09-111-1/+4
| | | | llvm-svn: 247438
* [test] Specify exception object type in two testsVedant Kumar2015-09-112-2/+2
| | | | | | | | | | | | | Replace: 'try { throw 0; } catch (...)' with 'try { throw 0; } catch (int e)' in two test cases. Differential Revision: http://reviews.llvm.org/D12743 llvm-svn: 247437
* [CMake] Making the bootstrap-clear target always delete the boostrap build ↵Chris Bieneman2015-09-111-1/+0
| | | | | | directories. llvm-svn: 247436
* Update test expectations for LLVM asm printing changeReid Kleckner2015-09-111-4/+7
| | | | llvm-svn: 247434
* Module Debugging: Emit forward declarations for types that are defined inAdrian Prantl2015-09-114-12/+157
| | | | | | | | | clang modules, if -dwarf-ext-refs (DebugTypesExtRefs) is specified. This reimplements r247369 in about a third of the amount of code. Thanks to David Blaikie pointing this out in post-commit review! llvm-svn: 247432
* Revert "Module Debugging: Emit forward declarations for types that are ↵Adrian Prantl2015-09-114-259/+10
| | | | | | | | defined in" This reverts commit r247369 to facilitate reviewing of the following patch. llvm-svn: 247431
* [Static Analyzer] Properly clean up the dynamic type information for dead ↵Gabor Horvath2015-09-117-57/+137
| | | | | | | | regions. Differential Revision: http://reviews.llvm.org/D12767 llvm-svn: 247430
* [Static Analyzer] Lambda support.Gabor Horvath2015-09-1110-13/+495
| | | | | | Differential Revision: http://reviews.llvm.org/D12652 llvm-svn: 247426
* [SEH] Port __try / __leave test to new IRReid Kleckner2015-09-111-0/+347
| | | | | | | It turns out that the IR we already generate for __leave is fine, so no code changes were needed. llvm-svn: 247424
* [Static Analyzer] Minor cleanups for the nullability checker.Gabor Horvath2015-09-111-46/+40
| | | | | | Differential Revision: http://reviews.llvm.org/D12619 llvm-svn: 247423
* [CodeGen] Teach SimplifyPersonality about the updated LandingPadInstVedant Kumar2015-09-113-28/+70
| | | | | | | | | | | | | | | When uses of personality functions were moved from LandingPadInst to Function, we forgot to update SimplifyPersonality(). This patch corrects that. Note: SimplifyPersonality() is an optimization which replaces personality functions with the default C++ personality when possible. Without this update, some ObjC++ projects fail to link against C++ libraries (seeing as the exception ABI had effectively changed). rdar://problem/22155434 llvm-svn: 247421
* This test requires UTF-8 output to print the UT-8 characters.Yaron Keren2015-09-111-0/+1
| | | | llvm-svn: 247410
* Fixed HasDeclarationMatcher to properly convert all types into decls where ↵Aaron Ballman2015-09-115-8/+213
| | | | | | | | | | | | | | possible. Added objcObjectPointerType(), objcInterfaceDecl(), templateTypeParmType(), injectedClassNameType(), and unresolvedUsingTypenameDecl(). Updated documentation for pointerType() to call out that it does not match ObjCObjectPointerType types. Changed pointsTo() to handle ObjCObjectPointerType as well as PointerType. While this may seem like a lot of unrelated changes, they all relate back to fixing HasDeclarationMatcher. This now allows us to write a matcher like: varDecl(hasType(namedDecl(hasName("Foo")))) that matches code using typedefs, objc interfaces, template type parameters, injected class names, or unresolved using typenames. llvm-svn: 247404
OpenPOWER on IntegriCloud