summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
* Dropping some else-after-returns. No functional changes intended.Aaron Ballman2014-08-011-7/+7
| | | | llvm-svn: 214526
* Add IR Mangler for more stable mangling.Eli Bendersky2014-08-012-13/+29
| | | | llvm-svn: 214520
* The GNU-style aligned attribute has an optional expression, but the ↵Aaron Ballman2014-08-012-3/+12
| | | | | | | | generated pretty printing logic was unaware of this. Fixed the pretty printing logic, and added a test to ensure it no longer asserts. Added a FIXME to the code about eliding the parenthesis when pretty printing such a construct. llvm-svn: 214513
* Revert r214497: [mips] Defer va_arg expansion to the backend.Daniel Sanders2014-08-012-30/+33
| | | | | | | | It appears that the backend does not handle all cases that were handled by clang. In particular, it does not handle structs as used in SingleSource/UnitTests/2003-05-07-VarArgs. llvm-svn: 214512
* Replacing some more complex logic with a helper function call to ↵Aaron Ballman2014-08-012-18/+8
| | | | | | ObjCMethod::getReturnTypeSourceRange. No functional changes intended. llvm-svn: 214511
* Xcore target: Fix CXXStdlibIncludeArgs to check 'nostdinc++' flag too.Robert Lytton2014-08-011-1/+2
| | | | | | | | | | Summary: There are no tests as it is dependant upon the environment variables XCC_C_INCLUDE_PATH & XCC_CPLUS_INCLUDE_PATH being set. Differential Revision: http://reviews.llvm.org/D4621 llvm-svn: 214510
* clang-format: Add a space in ObjC protocols.Daniel Jasper2014-08-012-6/+7
| | | | | | | | | | Before: @interface Foo (HackStuff)<MyProtocol> After: @interface Foo (HackStuff) <MyProtocol> llvm-svn: 214508
* Improving diagnostic source ranges for the nonnull attribute. Now it ↵Aaron Ballman2014-08-013-9/+39
| | | | | | highlights the attribute and the faulty nonpointer type when possible. llvm-svn: 214507
* Fix a memory leak - dispose of the CXString after printing it in mangling.Eli Bendersky2014-08-011-0/+1
| | | | | | Thanks to kcc@ for noticing. llvm-svn: 214506
* Initializing the loop hint option token again.Aaron Ballman2014-08-011-0/+1
| | | | llvm-svn: 214504
* Initializing the loop hint option token.Aaron Ballman2014-08-011-1/+3
| | | | llvm-svn: 214502
* [mips] Defer va_arg expansion to the backend.Daniel Sanders2014-08-012-33/+30
| | | | | | | | | | | | | | | | | | | | | | | Summary: This patch causes clang to emit va_arg instructions to the backend instead of expanding them into an implementation itself. The backend already implements va_arg since this is necessary for NaCl so this patch is removing redundant code. Together with the llvm patch (D4556) that accounts for the effect of endianness on the expansion of va_arg, this fixes PR19612. Depends on D4556 Reviewers: sstankovic, dsanders Reviewed By: dsanders Subscribers: rnk, cfe-commits Differential Revision: http://reviews.llvm.org/D4742 llvm-svn: 214497
* [modules] Remove IRGen special case for emitting implicit special members ifRichard Smith2014-08-014-15/+11
| | | | | | | | | | | they're somehow missing a body. Looks like this was left behind when the loop was generalized, and it's not been problematic before because without modules, a used, implicit special member function declaration must be a definition. This was resulting in us trying to emit a constructor declaration rather than a definition, and producing a constructor missing its member initializers. llvm-svn: 214473
* Add comments to debug info testing case.Manman Ren2014-08-011-0/+1
| | | | llvm-svn: 214472
* Remove this pointer that is converted to bool. In well-defined contexts, theRichard Trieu2014-08-011-3/+7
| | | | | | | | this pointer is always non-null. If the this pointer is null, it is undefined and the compiler may optimize it away by assuming it is non-null. The null checks are pushed into the callers. llvm-svn: 214471
* clang-format vs plugin: claim support for VS 14 CTP tooHans Wennborg2014-08-011-0/+3
| | | | llvm-svn: 214461
* Fix buildbot: work around missing GCC C++11 feature.Richard Smith2014-07-311-0/+2
| | | | llvm-svn: 214459
* [modules] Maintain an AST invariant across module load/save: if any declarationRichard Smith2014-07-316-50/+189
| | | | | | | | | | | | | | | of a function has a resolved exception specification, then all declarations of the function do. We should probably improve the AST representation to make this implicit (perhaps only store the exception specification on the canonical declaration), but this fixes things for now. The testcase for this (which used to assert) also exposes the actual bug I was trying to reduce here: we sometimes fail to emit the body of an imported special member function definition. Fix for that to follow. llvm-svn: 214458
* Factor out exception specification information fromRichard Smith2014-07-3116-190/+186
| | | | | | | | FunctionProtoType::ExtProtoInfo. Most of the users of these fields don't care about the other ExtProtoInfo bits and just want to talk about the exception specification. llvm-svn: 214450
* Loop hint pragmas sometimes do not contain an identifier option (such as ↵Aaron Ballman2014-07-311-1/+5
| | | | | | | | #pragma unroll(4)). Check explicitly that the token we stored was an identifier. Amends r214432 llvm-svn: 214446
* Implemented a diagnostic to handle multiple, distinct ownership_return ↵Aaron Ballman2014-07-313-2/+24
| | | | | | attributes on the same declaration. This removes a FIXME from the code. llvm-svn: 214436
* Add a state variable to the loop hint attribute.Tyler Nowicki2014-07-3110-120/+158
| | | | | | | | | | This patch is necessary to support constant expressions which replaces the integer value in the loop hint attribute with an expression. The integer value was also storing the pragma’s state for options like vectorize(enable/disable) and the pragma unroll and nounroll directive. The state variable is introduced to hold the state of those options/pragmas. This moves the validation of the state (keywords) from SemaStmtAttr handler to the loop hint annotation token handler. Resubmit with changes to try to fix the build-bot issue. Reviewed by Aaron Ballman llvm-svn: 214432
* Local extern redeclarations of dllimport variables stay dllimport even if ↵Hans Wennborg2014-07-313-2/+15
| | | | | | they don't specify the attribute llvm-svn: 214425
* Reformat docstring to 80-colEli Bendersky2014-07-311-3/+3
| | | | llvm-svn: 214412
* Removing an outdated FIXME. No functional changes.Aaron Ballman2014-07-311-4/+0
| | | | llvm-svn: 214411
* Exposes a C API to name mangling for a given cursor.Eli Bendersky2014-07-315-0/+79
| | | | | | | | | Inspired by https://gist.github.com/tritao/2766291, and was previously discussed on cfe-dev: http://lists.cs.uiuc.edu/pipermail/cfe-dev/2014-June/037577.html Adding testing capability via c-index-test. llvm-svn: 214410
* Obective-C. Patch to fix the incorrect ObjcMessageExpr argument source ranges, Fariborz Jahanian2014-07-313-2/+25
| | | | | | | when arguments are structures or classes. PR16392. patch by Karlis Senko llvm-svn: 214409
* Delay check for prototype on __fastcall functions until after MergeFunctionDecl.Nico Weber2014-07-313-17/+27
| | | | | | | In C, it is only known after merging decls if a function with 0 arguments has a prototype. Fixes PR20386, see that for more notes. llvm-svn: 214408
* Automate attribute argument count semantic checking when there are variadic ↵Aaron Ballman2014-07-316-72/+73
| | | | | | | | or optional arguments present. With this, the only time you should have to manually check attribute argument counts is when HasCustomParsing is set to true, or when you have variadic arguments that aren't really variadic (like ownership_holds and friends). Updating the diagnostics in the launch_bounds test since they have been improved in that case. Adding a test for nonnull since it has little test coverage, but has truly variadic arguments. llvm-svn: 214407
* ms-inline-asm: Add a test to ensure that call doesn't clobber eax.Ehsan Akhgari2014-07-311-0/+6
| | | | | | | | | | | | | Note that it's not clear whether this is the right behavior, please see the review for the discussion. Reviewers: rnk Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4577 llvm-svn: 214401
* Fix parsing of classes where the class name is an absolute nested name ↵Manuel Klimek2014-07-312-4/+3
| | | | | | specifier. llvm-svn: 214393
* PR18097: Support initializing an _Atomic(T) from an object of C++ class type TRichard Smith2014-07-318-15/+172
| | | | | | | or a class derived from T. We already supported this when initializing _Atomic(T) from T for most (and maybe all) other reasonable values of T. llvm-svn: 214390
* Sema: Disallow taking the address of a bitfield coming from preincrementDavid Majnemer2014-07-312-2/+6
| | | | | | | | | | | | | | Clang forgot that '++s.m' was a bitfield l-value and permit it's address to be taken; this would crash at CodeGen-time. Instead, propagate the object-kind when we see the prefix increment/decrement. This fixes PR20496. Differential Revision: http://reviews.llvm.org/D4733 llvm-svn: 214386
* [AVX512] Add unaligned FP load intrinsicsAdam Nemet2014-07-312-0/+32
| | | | | | Part of <rdar://problem/17688758> llvm-svn: 214380
* Revert r214333, "Add a state variable to the loop hint attribute."NAKAMURA Takumi2014-07-3110-157/+120
| | | | | | It brought undefined behavior. llvm-svn: 214376
* Rename this test so that it actually runs, and fix it so that it passes.Richard Smith2014-07-311-1/+1
| | | | llvm-svn: 214369
* Updating a comment related to the implementation of -Woverloaded-virtual, ↵Aaron Ballman2014-07-302-3/+28
| | | | | | | | and adding a FIXME to a test case. (Drive-by removal of trailing whitespace in the test case as well.) No functional changes. llvm-svn: 214362
* Update for llvm change.Rafael Espindola2014-07-306-17/+17
| | | | llvm-svn: 214356
* Add a state variable to the loop hint attribute.Tyler Nowicki2014-07-3010-120/+157
| | | | | | | | This patch is necessary to support constant expressions which replaces the integer value in the loop hint attribute with an expression. The integer value was also storing the pragma’s state for options like vectorize(enable/disable) and the pragma unroll and nounroll directive. The state variable is introduced to hold the state of those options/pragmas. This moves the validation of the state (keywords) from SemaStmtAttr handler to the loop hint annotation token handler. Reviewed by Aaron Ballman llvm-svn: 214333
* [AVX512] Add intrinsic for knotAdam Nemet2014-07-303-0/+16
| | | | | | Part of <rdar://problem/17688758> llvm-svn: 214316
* [AVX512] Add some of the FP cast intrinsicsAdam Nemet2014-07-302-0/+34
| | | | | | Part of <rdar://problem/17688758> llvm-svn: 214315
* [AVX512] Add set1 intrinsicsAdam Nemet2014-07-302-0/+40
| | | | | | | | | (Dropped the byte and word variants from the patch. Turns out these are not part of AVX512F but only AVX512BW/VL.) Part of <rdar://problem/17688758> llvm-svn: 214314
* Add OpenCL/SPIR kernel_arg_base_type metadata nodeFraser Cormack2014-07-302-0/+40
| | | | | | | | | | | | | | As defined in the SPIR 1.2 specification, this node behaves similarly to kernel_arg_type but will print the underlying type name, e.g., without typedefs. Example: typedef unsigned int myunsignedint; would report: 'myunsignedint' in the kernel_arg_type node 'uint' in the kernel_arg_base_type node llvm-svn: 214308
* [SKX] Enabling SKX target (Skylake server chip) Robert Khasanov2014-07-304-5/+179
| | | | | | | | | a) add SKX support to Clang driver; b) add tests for SKX target and AVX512BW, AVX512DQ, AVX512VL features into clang driver tests Patch by Zinovy Nis <zinovy.y.nis@intel.com> llvm-svn: 214306
* Fix OpenCL/SPIR kernel_arg_type metadata nodeFraser Cormack2014-07-302-2/+11
| | | | | | | | | | | | This fixes a bug where kernel_arg_type was always changing 'unsigned ' to 'u' for any parameter type, including non-canonical types. Example: typedef unsigned int myunsignedint; would report: "myunt" llvm-svn: 214305
* Suppress clang/test/Sema/struct-packed-align.c also on msvc for investigating.NAKAMURA Takumi2014-07-301-0/+3
| | | | | | FIXME: This test is incompatible to MS compat mode. FIXME: Don't suppress this also on mingw. :-p llvm-svn: 214301
* clang-format: Understand 'typename' in placement new.Daniel Jasper2014-07-302-1/+4
| | | | | | | | | | | | Before: new (aaaaaaaaaaaaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaa)) typename aaaaaaaaaaaaaaaaaaaaaaaa(); After: new (aaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaa)) typename aaaaaaaaaaaaaaaaaaaaaaaa(); llvm-svn: 214300
* Suppress clang/test/Sema/struct-packed-align.c for targeting LLP64.NAKAMURA Takumi2014-07-301-0/+1
| | | | llvm-svn: 214298
* [Driver][Mips] Add function-wrapper so simplify creation of `Multilib` objects.Simon Atanasyan2014-07-301-74/+27
| | | | | | No functional changes. llvm-svn: 214294
* AST: Simplify some codeDavid Majnemer2014-07-301-6/+7
| | | | | | | | | | Iterator invalidation issues already force us to do one lookup and one insert. Don't use the particular bit-pattern of the 'Align' field to determine whether or not we have already inserted into the TypeInfo DenseMap; instead ask for an iterator to the TypeInfo entry. llvm-svn: 214293
OpenPOWER on IntegriCloud