summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
* clang-format: Simplify and improve stop condition for formattingDaniel Jasper2015-11-022-4/+22
| | | | | | | | | | | | | | | | | | | | | | | | unaffected lines with incorrect initial indent. Starting from: namespace { int i; // There shouldn't be indentation here. int j; // <- call clang-format on this line. } Before: namespace { int i; int j; } After: namespace { int i; int j; } llvm-svn: 251824
* Fix va_arg on watchOS.Tim Northover2015-11-022-6/+15
| | | | | | As in other contexts, alignments can go up to 16 bytes in a va_list. llvm-svn: 251821
* Clang format a few prior patches (NFC)Teresa Johnson2015-11-022-2/+4
| | | | | | | I had clang formatted my earlier patches using the wrong style. Reformatted with the LLVM style. llvm-svn: 251813
* Sink some PTHManager includes out of Preprocessor.hReid Kleckner2015-11-025-1/+5
| | | | | | | This reduces the number of .cpp files needed to be rebuilt after touching OnDiskHashTable from 120 to 21 for me. llvm-svn: 251810
* [x86] Front-end part of MCU psABI supportAndrey Bokhanko2015-11-023-1/+16
| | | | | | | | | | | This patch implements two things in front-end for MCU psABI support: 1) "long double type is the same as double." 2) "New predefined C/C++ pre-processor symbols: iamcu and iamcu__. Differential Revision: http://reviews.llvm.org/D14205 llvm-svn: 251786
* [MS ABI] Don't zero-initialize vbptrs in basesDavid Majnemer2015-11-025-14/+108
| | | | | | | | | | | | Certain CXXConstructExpr nodes require zero-initialization before a constructor is called. We had a bug in the case where the constructor is called on a virtual base: we zero-initialized the base's vbptr field. A complementary bug is present in MSVC where no zero-initialization occurs for the subobject at all. This fixes PR25370. llvm-svn: 251783
* clang-format: Be slightly more cautious when formatting subsequent lines ↵Daniel Jasper2015-11-012-4/+40
| | | | | | | | | | | | | | | | | after a change. With r251474, clang-format could indent the entire rest of the file, if there is a missing closing brace, e.g. while writing code in an editor. Summary: With this change, clang-format stops formatting when either it leaves the current scope or when it comes back to the initial scope after going into a nested one. Reviewers: klimek Subscribers: cfe-commits, klimek Differential Revision: http://reviews.llvm.org/D14213 llvm-svn: 251760
* [MSVC Compat] Permit conversions from pointer-to-function to ↵David Majnemer2015-10-314-11/+22
| | | | | | | | | | | pointer-to-object iff -fms-compatibility We permit implicit conversion from pointer-to-function to pointer-to-object when -fms-extensions is specified. This is rather unfortunate, move this into -fms-compatibility and only permit it within system headers unless -Wno-error=microsoft-cast is specified. llvm-svn: 251738
* [CodeGen] Call SetInternalFunctionAttributes to attach functionAkira Hatanaka2015-10-316-16/+38
| | | | | | | | | | | | | | | | | attributes to internal functions. This patch fixes CodeGenModule::CreateGlobalInitOrDestructFunction to use SetInternalFunctionAttributes instead of SetLLVMFunctionAttributes to attach function attributes to internal functions. Also, make sure the correct CGFunctionInfo is passed instead of always passing what arrangeNullaryFunction returns. rdar://problem/20828324 Differential Revision: http://reviews.llvm.org/D13610 llvm-svn: 251734
* Sema: correct typo recovery with blocksSaleem Abdulrasool2015-10-312-0/+14
| | | | | | | | | | Handle blocks in the tree transform for the typo correction as otherwise, the capture may miss. This would trigger an assertion. Thanks to Doug Gregor for the help with this! Fixes PR25001. llvm-svn: 251729
* CGExprConstant.cpp: Appease Modules.NAKAMURA Takumi2015-10-301-1/+1
| | | | llvm-svn: 251713
* Support watchOS and tvOS in compiler-rt buildsTim Northover2015-10-301-3/+36
| | | | | | | Hopefully autotools will be deprecated soon and this entire file can go away, but until then... llvm-svn: 251712
* Support tvOS and watchOS availability attributesTim Northover2015-10-306-0/+140
| | | | llvm-svn: 251711
* ARMv7k: implement ABI changes for watchOS from standard iOS.Tim Northover2015-10-309-18/+473
| | | | llvm-svn: 251710
* Disable SjLj exceptions for watchOSTim Northover2015-10-305-9/+22
| | | | llvm-svn: 251709
* Watch and TV OS: wire up basic ABI choicesTim Northover2015-10-3015-9/+68
| | | | | | | This sets the mostly expected Darwin default ABI options for these two platforms. Active changes from these defaults for watchOS are in a later patch. llvm-svn: 251708
* Preprocessor: define correct tvOS and watchOS version macrosTim Northover2015-10-302-1/+38
| | | | llvm-svn: 251707
* Support watchOS and tvOS driver optionsTim Northover2015-10-3015-40/+353
| | | | | | | | This patch should add support for almost all command-line options and driver tinkering necessary to produce a correct "clang -cc1" invocation for watchOS and tvOS. llvm-svn: 251706
* Modules: Add a declaration in clang/Serialization/GlobalModuleIndex.h.NAKAMURA Takumi2015-10-301-0/+1
| | | | llvm-svn: 251703
* Reapply r251621 "[Analyzer] Widening loops which do not exit"Sean Eveson2015-10-309-3/+332
| | | | | | It was not the cause of the build bot failure. llvm-svn: 251702
* clang/module.modulemap: Exclude Frontend/PCHContainerOperations.h in ↵NAKAMURA Takumi2015-10-301-0/+3
| | | | | | | Clang_Frontend. FIXME: It should be dissolved to interface and impl. llvm-svn: 251701
* Revert "[mips] Add support for the new mips-mti-linux toolchain."Vasileios Kalintiris2015-10-3017-298/+27
| | | | | | | This reverts commits r251633. I'll investigate the test failure off trunk in order to keep the buildbots clean. llvm-svn: 251698
* Revert r251621 "[Analyzer] Widening loops which do not exit" (bot failure)Sean Eveson2015-10-309-332/+3
| | | | | | | | Seems to be causing clang-cmake-mips build bot to fail (timeout) http://lab.llvm.org:8011/builders/clang-cmake-mips/builds/10299 llvm-svn: 251697
* Revert "Try to run and investigate the mips-mti-linux.c test failure on ARM ↵Renato Golin2015-10-302-20/+6
| | | | | | | | | buildbots." This reverts commit r251695. Debug is meant to be done off tree, not use the buildbots experiments. I'll help investigate this problem off trunk. llvm-svn: 251696
* Try to run and investigate the mips-mti-linux.c test failure on ARM buildbots.Vasileios Kalintiris2015-10-302-6/+20
| | | | | | | | This should be a NFC for every toolchain other than mips-mti-linux (where we print the list of directories searched for crt files). It will soon be reverted once we hit the clang-cmake-armv7-a15-selfhost-neon buildbot. llvm-svn: 251695
* Add "equalsNode" for types and "isCopyAssignmentOperator" matchers.Angel Garcia Gomez2015-10-302-1/+52
| | | | | | | | | | | | Summary: This matchers are going to be used in modernize-use-default, but are generic enough to be placed in ASTMatchers.h. Reviewers: klimek Subscribers: alexfh, cfe-commits, klimek Differential Revision: http://reviews.llvm.org/D14152 llvm-svn: 251693
* Update debug-info-scope test to remove "FIXME", which is fixed in r251689Dehao Chen2015-10-301-4/+0
| | | | llvm-svn: 251691
* Format: support inline namespacesSaleem Abdulrasool2015-10-302-1/+8
| | | | | | | | Correct handling for C++17 inline namespaces. We would previously fail to identify the inline namespaces as a namespace name since multiple ones may be concatenated now with C++17. llvm-svn: 251690
* Initialize @catch variables correctly in fragile-runtime ARC.John McCall2015-10-304-22/+70
| | | | llvm-svn: 251677
* Fix the emission of ARC ivar layouts in the non-fragile Mac runtime.John McCall2015-10-292-17/+36
| | | | | | | My previous change in this area accidentally broke the rule when InstanceBegin was not a multiple of the word size. llvm-svn: 251666
* Mark InternalDebugOpt driver options as CoreOptions.Nico Weber2015-10-291-1/+1
| | | | | | Mostly has the effect of making -ccc-print-phases usable from clang-cl. llvm-svn: 251653
* Add support for __builtin_{add,sub,mul}_overflow.John McCall2015-10-297-3/+382
| | | | | | Patch by David Grayson! llvm-svn: 251651
* Suppress uninteresting output from crash-recovery-modules.mNico Weber2015-10-291-4/+4
| | | | | | No behavior change, but it makes this test a bit easier to debug when it fails. llvm-svn: 251650
* clang-format: [JS] Add goog.setTestOnly to the list of stuff thatDaniel Jasper2015-10-292-3/+6
| | | | | | is import-statement-like and shouldn't be wrapped. llvm-svn: 251643
* add support of the latest Ubuntu (Xenial Xerus)Sylvestre Ledru2015-10-291-1/+3
| | | | llvm-svn: 251639
* Add a link to the DXR projectEhsan Akhgari2015-10-291-0/+11
| | | | | | | | DXR is a project developed at Mozilla that implements a code indexing and browsing utility on top of libclang that has features such as call graph querying. llvm-svn: 251638
* [mips] Add support for the new mips-mti-linux toolchain.Vasileios Kalintiris2015-10-2917-27/+298
| | | | | | | | | | The original commit in r249137 added the mips-mti-linux toolchain. However, the newly added tests of that commit failed in few buildbots. This commit re-applies the original changes but XFAILs the test file which caused the buildbot failures. This will allow us to examine what's going wrong without having to commit/revert large changes. llvm-svn: 251633
* [Analyzer] Widening loops which do not exitSean Eveson2015-10-299-3/+332
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Dear All, We have been looking at the following problem, where any code after the constant bound loop is not analyzed because of the limit on how many times the same block is visited, as described in bugzillas #7638 and #23438. This problem is of interest to us because we have identified significant bugs that the checkers are not locating. We have been discussing a solution involving ranges as a longer term project, but I would like to propose a patch to improve the current implementation. Example issue: ``` for (int i = 0; i < 1000; ++i) {...something...} int *p = 0; *p = 0xDEADBEEF; ``` The proposal is to go through the first and last iterations of the loop. The patch creates an exploded node for the approximate last iteration of constant bound loops, before the max loop limit / block visit limit is reached. It does this by identifying the variable in the loop condition and finding the value which is “one away” from the loop being false. For example, if the condition is (x < 10), then an exploded node is created where the value of x is 9. Evaluating the loop body with x = 9 will then result in the analysis continuing after the loop, providing x is incremented. The patch passes all the tests, with some modifications to coverage.c, in order to make the ‘function_which_gives_up’ continue to give up, since the changes allowed the analysis to progress past the loop. This patch does introduce possible false positives, as a result of not knowing the state of variables which might be modified in the loop. I believe that, as a user, I would rather have false positives after loops than do no analysis at all. I understand this may not be the common opinion and am interested in hearing your views. There are also issues regarding break statements, which are not considered. A more advanced implementation of this approach might be able to consider other conditions in the loop, which would allow paths leading to breaks to be analyzed. Lastly, I have performed a study on large code bases and I think there is little benefit in having “max-loop” default to 4 with the patch. For variable bound loops this tends to result in duplicated analysis after the loop, and it makes little difference to any constant bound loop which will do more than a few iterations. It might be beneficial to lower the default to 2, especially for the shallow analysis setting. Please let me know your opinions on this approach to processing constant bound loops and the patch itself. Regards, Sean Eveson SN Systems - Sony Computer Entertainment Group Reviewers: jordan_rose, krememek, xazax.hun, zaks.anna, dcoughlin Subscribers: krememek, xazax.hun, cfe-commits Differential Revision: http://reviews.llvm.org/D12358 llvm-svn: 251621
* Fix a soon to be invalid testXinliang David Li2015-10-291-1/+0
| | | | | | | Remove a check that won't be valid when LLVM stops emitting runtime hook user function. llvm-svn: 251611
* test: fix overzealous matchSaleem Abdulrasool2015-10-291-1/+1
| | | | | | Accidentally made the test too strict. llvm-svn: 251603
* Driver: CrossWindows sanitizers link supportSaleem Abdulrasool2015-10-292-0/+29
| | | | | | | Add the required libraries to the linker invocation when building with sanitizers. llvm-svn: 251600
* Driver: inline some small arraysSaleem Abdulrasool2015-10-291-10/+4
| | | | | | Use an initializer list to remove a couple of small static arrays. NFC. llvm-svn: 251599
* Driver: tweak CrossWindows sanitizer supportSaleem Abdulrasool2015-10-293-0/+20
| | | | | | | Indicate support for ASAN on the CrossWindows toolchain. Although this is insufficient, this at least permits the handling of the driver flag. llvm-svn: 251598
* [analyzer] Update analyzer website for release of checker-277.Devin Coughlin2015-10-294-3/+33
| | | | llvm-svn: 251591
* [Sema] Implement -Wdouble-promotion for clang.George Burgess IV2015-10-294-0/+46
| | | | | | | | | | | | | | | GCC has a warning called -Wdouble-promotion, which warns you when an implicit conversion increases the width of a floating point type. This is useful when writing code for architectures that can perform hardware FP ops on floats, but must fall back to software emulation for larger types (i.e. double, long double). This fixes PR15109 <https://llvm.org/bugs/show_bug.cgi?id=15109>. Thanks to Carl Norum for the patch! llvm-svn: 251588
* [WinEH] Mark calls inside cleanups as noinlineReid Kleckner2015-10-284-21/+41
| | | | | | | | | | | | | | | This works around PR25162. The MSVC tables make it very difficult to correctly inline a C++ destructor that contains try / catch. We've attempted to address PR25162 in LLVM's backend, but it feels pretty infeasible. MSVC and ICC both appear to avoid inlining such complex destructors. Long term, we want to fix this by making the inliner smart enough to know when it is inlining into a cleanup, so it can inline simple destructors (~unique_ptr and ~vector) while avoiding destructors containing try / catch. llvm-svn: 251576
* Fix the calling convention of Mingw64 long double valuesReid Kleckner2015-10-283-21/+67
| | | | | | | | | | GCC uses the x87DoubleExtended model for long doubles, and passes them indirectly by address through function calls. Also replace the existing mingw-long-double assembly emitting test with an IR-level test. llvm-svn: 251567
* Fix missing builtin identifier infos with PCH+modulesBen Langmuir2015-10-284-2/+15
| | | | | | | | | | | | | | Use the *current* state of "is-moduleness" rather than the state at serialization time so that if we read a builtin identifier from a module that wasn't "interesting" to that module, we will still write it out to a PCH that imports that module. Otherwise, we would get mysterious "unknown builtin" errors when using PCH+modules. rdar://problem/23287656 llvm-svn: 251565
* [analyzer] Preserve the order checkers were enabled/disabled.Anton Yartsev2015-10-281-4/+19
| | | | | | | In addition to r251524: preserve the order the checkers were enabled/disabled to be deterministic. Additionally return the number of arguments read by 'ProcessArgs' - for debug purpose. llvm-svn: 251552
* Move global classes into anonymous namespaces. NFC.Benjamin Kramer2015-10-282-2/+4
| | | | llvm-svn: 251528
OpenPOWER on IntegriCloud