]>
granicus.if.org Git - clang/log
David Blaikie [Thu, 15 Aug 2013 21:42:43 +0000 (21:42 +0000)]
DebugInfo: Make CGDebugInfo::getStaticDataMemberDeclaration's argument type match the semantics
Rather than having a cast immediately inside the function, push that
type requirement out to the callers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188492
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 15 Aug 2013 21:21:19 +0000 (21:21 +0000)]
DebugInfo: Add a FIXME, remove a FIXME.
(the removed FIXME no longer applies since we made this debug info
optimization not apply to C)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188491
91177308 -0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Thu, 15 Aug 2013 20:54:45 +0000 (20:54 +0000)]
make arm-use-movt available for all ARM
This updates clang according to a pending patch for llvm to
rename of the -arm-darwin-use-movt to arm-use-movt to make
it available for all of ARM.
note: please apply this close to the llvm change.
Patch by Jeroen Hofstee.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188488
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 15 Aug 2013 20:49:17 +0000 (20:49 +0000)]
DebugInfo: Unify & optimize the lazy addition of record types
Rather than going through the whole getOrCreateType machinery to
manifest a type, cut straight to the implementation because we know we
have to do work.
While the previous implementation was sufficient for the two cases
(completeness and required completeness) we have already (the general
machinery could inspect the type for those attributes & go down the full
definition path), a pending change (to emit info for types when we emit
their vtables) won't have that luxury & we'll need to force the creation
rather than relying on the general purpose routine.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188486
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 15 Aug 2013 20:17:25 +0000 (20:17 +0000)]
DebugInfo: Revert change to the return type of createRecordFwdDecl
It still does only return DICompositeType, but I've no need to make that
change right now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188482
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Thu, 15 Aug 2013 19:59:14 +0000 (19:59 +0000)]
CodeGen: __uuidof should work even with an incomplete _GUID type
Summary:
We would crash in CodeGen::CodeGenModule::EmitUuidofInitializer
because our attempt to enter CodeGen::CodeGenModule::EmitConstantValue
will be foiled: the type of the constant value is incomplete.
Instead, create an unnamed type with the proper layout on all platforms.
Punt the problem of wrongly defined struct _GUID types to the user.
(It's impossible because the TU may never get to see the type and thus
we can't verify that it is suitable.)
This fixes PR16856.
Reviewers: rsmith, rnk, thakis
Reviewed By: rnk
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1375
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188481
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 15 Aug 2013 19:27:42 +0000 (19:27 +0000)]
Add another test to my last patch (NS_OPTION vs. NS_ENUM)
ObjectiveC migration.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188480
91177308 -0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Thu, 15 Aug 2013 19:22:36 +0000 (19:22 +0000)]
[autotools->cmake] Added variable CLANG_VENDOR_UTI.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188479
91177308 -0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Thu, 15 Aug 2013 19:22:33 +0000 (19:22 +0000)]
[autotools->cmake] Added CMake support for the preprocessor variable CLANG_REPOSITORY_STRING.
This is a patch in a longer series of patches to add
capabilities/definitions that are present in the Autotools build chain
and not in the CMake build chain to the CMake build chain.
*NOTE* I am hacking on this in my free time. I will annotate each commit
with the [autotools->cmake] header.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188478
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 15 Aug 2013 18:59:44 +0000 (18:59 +0000)]
DebugInfo: remove unnecessary type registration
This happens in the caller a few frames up anyway.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188475
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 15 Aug 2013 18:59:40 +0000 (18:59 +0000)]
DebugInfo: Don't create duplicate forward declaration metadata unnecessarily.
No functionality change, at best a slight (questionable) optimization,
but necessary for correctness of future work.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188474
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 15 Aug 2013 18:58:00 +0000 (18:58 +0000)]
Fixes a gross conditional in my last patch.
- This line, and those below, will be ignored--
M lib/ARCMigrate/ObjCMT.cpp
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188473
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 15 Aug 2013 18:46:37 +0000 (18:46 +0000)]
ObjectiveC migrator: In deciding NS_OPTION over
NS_ENUM, at least one power of 2 enumerator
must be greater than two.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188470
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jordan Rose [Thu, 15 Aug 2013 17:22:06 +0000 (17:22 +0000)]
[analyzer] If realloc fails on an escaped region, that region doesn't leak.
When a region is realloc()ed, MallocChecker records whether it was known
to be allocated or not. If it is, and the reallocation fails, the original
region has to be freed. Previously, when an allocated region escaped,
MallocChecker completely stopped tracking it, so a failed reallocation
still (correctly) wouldn't require freeing the original region. Recently,
however, MallocChecker started tracking escaped symbols, so that if it were
freed we could check that the deallocator matched the allocator. This
broke the reallocation model for whether or not a symbol was allocated.
Now, MallocChecker will actually check if a symbol is owned, and only
require freeing after a failed reallocation if it was owned before.
PR16730
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188468
91177308 -0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Thu, 15 Aug 2013 15:31:25 +0000 (15:31 +0000)]
Thread safety analysis: move warnings within lock/unlock functions out of beta.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188465
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jack Carter [Thu, 15 Aug 2013 15:16:57 +0000 (15:16 +0000)]
[Mips][msa] Add support for half
Add support for half (a.k.a. __fp16) in builtin descriptions.
The second argument to BUILTIN() now accepts 'h' to represent half.
Patch by Daniel Sanders
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188464
91177308 -0d34-0410-b5e6-
96231b3b80d8
Joerg Sonnenberger [Thu, 15 Aug 2013 15:08:33 +0000 (15:08 +0000)]
Build unwind tables by default on NetBSD.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188463
91177308 -0d34-0410-b5e6-
96231b3b80d8
Joerg Sonnenberger [Thu, 15 Aug 2013 15:04:56 +0000 (15:04 +0000)]
Use the integrated assembler on NetBSD/powerpc by default.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188462
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jack Carter [Thu, 15 Aug 2013 14:47:02 +0000 (14:47 +0000)]
[Mips][msa] Added most builtins from add.a to xori
Includes:
add.a, adds_a, adds_s, adds_u, addv, addvi, andi.b, asub_[su], ave_[su],
aver_[su], bclr, bclri, bins[lr], bins[lr]i, bmnzi, bmzi, bneg, bnegi, bset,
bseti, c(eq|ne), c(eq|ne)i, cl[et]_[su], cl[et]i_[su], copy_[su].[bhw],
div_[su], dotp_[su], dpadd_[su], dpsub_[su], fadd, fceq, fclass, fcl[et], fcne,
fdiv, fexp2, ffint_[su], ffql, ffqr, fill, flog2, fmadd, fmax, fmax_a, fmin,
fmin_a, fmsub, fmul, frint, fseq, fsle, fslt, fsne, fsqr, fsub, ftint_[su],
ftq, ilvev, ilvl, ilvod, ilvr, ldi, frcp, frsqrt, madd_q, maddr_q, maddv,
max_[asu], maxi_[su], min_[asu], mini_[su], mod_[su], msub_q, msubr_q, msubv,
mul_q, mulr_q, mulv, nloc, nlzc, nori, ori, pckev, pckod, pcnt, sat_[su], shf,
sld, sldi, sll, slli, splat, splati, sr[al], sr[al]i, subs_[su], subv, subvi,
xori
Patch by Daniel Sanders
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188461
91177308 -0d34-0410-b5e6-
96231b3b80d8
Evgeniy Stepanov [Thu, 15 Aug 2013 13:57:11 +0000 (13:57 +0000)]
Update sanitizer attribute documentation to match behaviour change in r187967.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188459
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hao Liu [Thu, 15 Aug 2013 11:38:54 +0000 (11:38 +0000)]
Fix the build failure of Realease version
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188456
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Thu, 15 Aug 2013 08:34:07 +0000 (08:34 +0000)]
Add back a test that was removed in r188450
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188453
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hao Liu [Thu, 15 Aug 2013 08:26:30 +0000 (08:26 +0000)]
Clang and AArch64 backend patches to support shll/shl and vmovl instructions and ACLE functions
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188452
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Thu, 15 Aug 2013 08:13:23 +0000 (08:13 +0000)]
[-cxx-abi microsoft] Mangle member pointers better
Summary:
There were several things going wrong:
- We mangled in useless qualifiers like "volatile void" return types.
- We didn't propagate 64-bit pointer markers sufficiently.
- We mangled qualifiers belonging to the pointee incorrectly.
This fixes PR16844 and PR16848.
Reviewers: rnk, whunt
Reviewed By: rnk
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1353
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188450
91177308 -0d34-0410-b5e6-
96231b3b80d8
Stephen Lin [Thu, 15 Aug 2013 06:47:53 +0000 (06:47 +0000)]
CHECK-LABEL-ify some code gen tests to improve diagnostic experience when tests fail.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188447
91177308 -0d34-0410-b5e6-
96231b3b80d8
Stefanus Du Toit [Thu, 15 Aug 2013 00:35:46 +0000 (00:35 +0000)]
Add a bit of explanation for FrontendActionFactory.
Also use the more common "derive from" in place of "extend" in another
comment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188440
91177308 -0d34-0410-b5e6-
96231b3b80d8
Stefanus Du Toit [Thu, 15 Aug 2013 00:33:08 +0000 (00:33 +0000)]
Add ctorInitializer to the dynamic AST Matcher registry.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188439
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 14 Aug 2013 23:58:55 +0000 (23:58 +0000)]
ObjectiveC [Sema]. This patch makes sure that all inherited
properties (direct or indirect) setter/getter (or declared
methods as well) are seen by the method implementation type
matching logic before declaration of method in super class
is seen. This fixes the warning coming out of that method mismatch.
// rdar://
14650159
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188438
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 14 Aug 2013 23:41:49 +0000 (23:41 +0000)]
[static analyzer] add a simple "CallEffects" API to query the retain count semantics of a method.
This is intended to be a simplified API, whose internals are
deliberately less efficient for the purpose of a simplified interface,
for use with clients that want to query the analyzer's heuristics for
determining retain count semantics.
There are no immediate clients, but it is intended to be used
by the ObjC modernizer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188433
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 14 Aug 2013 23:41:46 +0000 (23:41 +0000)]
[static analyzer] Factor out ArgEffect and RetEffect into public header file.
This is a WIP change to allow other clients to query the retain count
heuristics of the static analyzer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188432
91177308 -0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Wed, 14 Aug 2013 22:10:17 +0000 (22:10 +0000)]
Relax testcase for r188400 to not test for forward-slashes as path separators.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188414
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 14 Aug 2013 20:16:31 +0000 (20:16 +0000)]
PR16875: The return type of a dependent function type is visible when it's
referenced as a member of the current instantiation. In that case, deduce the
type of the function to a dependent type rather than exposing an undeduced auto
type to the rest of the current instantiation.
The standard doesn't really say that the type is dependent in this case; I'll
bring this up with CWG.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188410
91177308 -0d34-0410-b5e6-
96231b3b80d8
Larisse Voufo [Wed, 14 Aug 2013 20:15:02 +0000 (20:15 +0000)]
Bug fix: note diagnosis on expression narrowing should say "variable template" instead of "static data member" when appropriate
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188409
91177308 -0d34-0410-b5e6-
96231b3b80d8
Shuxin Yang [Wed, 14 Aug 2013 20:07:23 +0000 (20:07 +0000)]
Fix grammar mistake.
Thank Richard Smith for figuring out this problem.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188408
91177308 -0d34-0410-b5e6-
96231b3b80d8
Shuxin Yang [Wed, 14 Aug 2013 19:45:49 +0000 (19:45 +0000)]
Do no use -emit-llvm for -flto.
Tested on multiple OSes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188406
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 14 Aug 2013 19:45:27 +0000 (19:45 +0000)]
Testcase for r188400.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188405
91177308 -0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Wed, 14 Aug 2013 18:54:18 +0000 (18:54 +0000)]
Add support for -fsanitize-blacklist and default blacklists for DFSan.
Also add some documentation.
Differential Revision: http://llvm-reviews.chandlerc.com/D1346
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188403
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 14 Aug 2013 18:38:51 +0000 (18:38 +0000)]
Enhance the clang -v gcc debug printing to skip obviously bad and duplicate paths.
Otherwise it lists all files (e.g. shared libraries) that happen to be in the
same paths the GCC installations usually reside in.
On a x86_64 Debian 7 system with i386 multilibs.
before: clang -v 2>&1|wc -l
3059
after: clang -v 2>&1|wc -l
10
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188400
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 14 Aug 2013 16:32:20 +0000 (16:32 +0000)]
[tests] Reapply r188354, ensure subsitution string is ascii.
- Now fixed to ensure substitution value isn't of unicode type on Python 2.6-7.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188384
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 14 Aug 2013 14:57:01 +0000 (14:57 +0000)]
Revert r188354, "[tests] Ensure subsitution string is ascii."
It caused "shell parser error" on win32 internal shell. ShParser doesn't expect unicode, but str.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188373
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 14 Aug 2013 05:05:39 +0000 (05:05 +0000)]
[tests] Ensure subsitution string is ascii.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188354
91177308 -0d34-0410-b5e6-
96231b3b80d8
Shuxin Yang [Wed, 14 Aug 2013 04:47:39 +0000 (04:47 +0000)]
revert 188352
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188353
91177308 -0d34-0410-b5e6-
96231b3b80d8
Shuxin Yang [Wed, 14 Aug 2013 04:36:53 +0000 (04:36 +0000)]
Driver::IsUsingLTO() no longer return true when seeing -emit-llvm.
The rationale for this change is to differentiate following two situations:
1) clang -c -emit-llvm a.c
2) clang -c -flto a.c
Reviewed by Eric Christopher. Thanks a lot!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188352
91177308 -0d34-0410-b5e6-
96231b3b80d8
Larisse Voufo [Wed, 14 Aug 2013 03:09:19 +0000 (03:09 +0000)]
Bug fix: disallow a variable template to be redeclared as a non-templated variable
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188350
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Wed, 14 Aug 2013 01:24:35 +0000 (01:24 +0000)]
Driver: Forward -Wl, and -Xlink arguments when using windows linker
Differential Revision: http://llvm-reviews.chandlerc.com/D1394
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188346
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 14 Aug 2013 00:07:10 +0000 (00:07 +0000)]
Refine diagnostics in my last patch.
// rdar://
14303083
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188335
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 14 Aug 2013 00:00:44 +0000 (00:00 +0000)]
Don't produce duplicate notes if we have deduction failure notes when resolving
the address of an overloaded function template.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188334
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 13 Aug 2013 23:44:55 +0000 (23:44 +0000)]
ObjectiveC [QoI] issue warning if an element of an nsarray
expresison is a concatenated nsstring element.
// rdar://
14303083
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188332
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 13 Aug 2013 23:38:57 +0000 (23:38 +0000)]
clang-cl: Support /link option and set target to win32
This adds support for the /link option, which forwards
subsequent arguments to the linker.
The test for this will only work when targetting win32.
Since that's the only target where clang-cl makes sense,
use that target by default.
Differential Revision: http://llvm-reviews.chandlerc.com/D1388
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188331
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 13 Aug 2013 23:38:34 +0000 (23:38 +0000)]
Fix Altivec vector literal parser hack for C++11.
It doesn't make any sense to accept "..." in the argument to a C-style cast,
so use a separate expression list parsing routine which rejects it. PR16874.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188330
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 13 Aug 2013 22:32:35 +0000 (22:32 +0000)]
Link in the ubsan runtime when building shared objects.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188325
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 13 Aug 2013 22:26:42 +0000 (22:26 +0000)]
sizeof(void) etc. should be a hard error in C++.
PR16872.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188324
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 13 Aug 2013 21:32:29 +0000 (21:32 +0000)]
Handle "--" explicitly in the driver
Anything that comes after -- is treated as an input file. This
used to be handled automagically by the option parsing library,
but after LLVM r188314, we should handle it ourselves.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188316
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 13 Aug 2013 18:18:50 +0000 (18:18 +0000)]
Fix implementation of C11 6.2.7/4 and C++11 [dcl.array]p3:
When a local extern declaration redeclares some other entity, the type of that
entity is merged with the prior type if the prior declaration is visible (in C)
or is declared in the same scope (in C++).
- Make LookupRedeclarationWithLinkage actually work in C++, use it in the right
set of cases, and make it track whether it found a shadowed declaration.
- Track whether we found a declaration in the same scope (for C++) including
across serialization and template instantiation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188307
91177308 -0d34-0410-b5e6-
96231b3b80d8
Edwin Vane [Tue, 13 Aug 2013 18:11:16 +0000 (18:11 +0000)]
Have Range::overlapsWith use positive logic
Improved test to catch missing case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188304
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 13 Aug 2013 18:01:42 +0000 (18:01 +0000)]
ObjectiveC migrator: Fixes a crash and makes couple
of harmless changes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188303
91177308 -0d34-0410-b5e6-
96231b3b80d8
Edwin Vane [Tue, 13 Aug 2013 17:38:19 +0000 (17:38 +0000)]
Adding a vector version of tooling::applyAllReplacements
One day soon, tooling::Replacements will be changed from being implemented as
an std::set to being implemented as an std::vector. Until then, some new code
using vectors of Replacements would enjoy having a version of
applyAllReplacements that takes a vector.
Differential Revision: http://llvm-reviews.chandlerc.com/D1380
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188295
91177308 -0d34-0410-b5e6-
96231b3b80d8
Edwin Vane [Tue, 13 Aug 2013 16:26:44 +0000 (16:26 +0000)]
Fixing a conflict detection bug in tooling::deduplicate
If a Replacment is contained within the conflict range being built, the
conflict range would be erroneously shortened. Now fixed. Tests updated to
catch this case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188287
91177308 -0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Tue, 13 Aug 2013 15:46:23 +0000 (15:46 +0000)]
Move logic to enable the vectorizer to clang
We used to decide whether to really vectorize depending on the optimization
level in PassManagerBuilder.
This patch moves this decision to the clang driver. We look at the optimization
level and whether the f(no-)vectorize is set and decide whether to vectorize.
This allows us to simplify the logic in PassManagerBuilder to just a check for
whether the vectorizer should run or not.
We now do the right thing for:
$ clang -O1 -fvectorize
$ clang -fno-vectorize -O3
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188280
91177308 -0d34-0410-b5e6-
96231b3b80d8
Samuel Benzaquen [Tue, 13 Aug 2013 14:54:51 +0000 (14:54 +0000)]
Refactor "MatcherList" into "VariantMatcher" and abstract the notion of a list of matchers for the polymorphic case.
Summary:
Refactor "MatcherList" into "VariantMatcher" and abstract the notion of a list of matchers for the polymorphic case.
This work is to support future changes needed for eachOf/allOf/anyOf matchers. We will add a new type on VariantMatcher.
Reviewers: klimek
CC: cfe-commits, revane
Differential Revision: http://llvm-reviews.chandlerc.com/D1365
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188272
91177308 -0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Tue, 13 Aug 2013 14:51:38 +0000 (14:51 +0000)]
Fix xcore tests to use regex.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188271
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 13 Aug 2013 10:58:30 +0000 (10:58 +0000)]
clang-format: Add option for the offset of constructor initializers.
Some coding styles use a different indent for constructor initializers.
Patch by Klemens Baum. Thank you.
Review: http://llvm-reviews.chandlerc.com/D1360
Post review changes: Changed data type to unsigned as a negative indent
width does not make sense and added test for configuration parsing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188260
91177308 -0d34-0410-b5e6-
96231b3b80d8
Robert Lytton [Tue, 13 Aug 2013 09:43:10 +0000 (09:43 +0000)]
Add XCore target
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188258
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 13 Aug 2013 09:17:25 +0000 (09:17 +0000)]
Fix typo in comment.
Thanks Kim Gräsman!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188257
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 13 Aug 2013 09:09:09 +0000 (09:09 +0000)]
clang-format: Improve boolean expression formatting in macros.
Before:
#define IF(a, b, c) if (a&&(b == c))
After:
#define IF(a, b, c) if (a && (b == c))
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188256
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 13 Aug 2013 08:29:26 +0000 (08:29 +0000)]
clang-format: Activate WebKit-style tests for MS compilers.
They were accidentally placed in the #if.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188255
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 13 Aug 2013 06:50:04 +0000 (06:50 +0000)]
clang-format: Slightly adapt line break penalties.
Before:
aaaaaaaaaaaaaaaaaaaaaaaa (
aaaaaaaaaaaaa (
aaaaaaaaaaaaaaaaaaaaaaaaa )
->
aaaaaaaaa ());
After:
aaaaaaaaaaaaaaaaaaaaaaaa (
aaaaaaaaaaaaa (
aaaaaaaaaaaaaaaaaaaaaaaaa )->
aaaaaaaaa ());
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188253
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 13 Aug 2013 06:32:20 +0000 (06:32 +0000)]
[-cxx-abi microsoft] Mangle __uuidof correctly into template parameters
Summary:
It seems that __uuidof introduces a global extern "C" declaration of
type __s_GUID. However, our implementation of __uuidof does not provide
such a declaration and thus must open-code the mangling for __uuidof in
template parameters.
This allows us to codegen scoped COM pointers and other such things.
This fixes PR16836.
Depends on D1356.
Reviewers: rnk, cdavis5x, rsmith
Reviewed By: rnk
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1357
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188252
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Tue, 13 Aug 2013 04:21:38 +0000 (04:21 +0000)]
Drive by cleanup
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188251
91177308 -0d34-0410-b5e6-
96231b3b80d8
Larisse Voufo [Tue, 13 Aug 2013 02:02:26 +0000 (02:02 +0000)]
variable templates updated for PCH serialization... Still working on test cases...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188249
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Tue, 13 Aug 2013 01:53:21 +0000 (01:53 +0000)]
AnalysisBasedWarnings.cpp:: Prune "\param VariableName", possibly copypasto, in comments. [-Wdocumentation]
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188248
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 13 Aug 2013 01:25:35 +0000 (01:25 +0000)]
[-cxx-abi microsoft] Mangle TemplateArgument::Declaration for references
Summary:
Properly mangle declarations showing up in template arguments that are
reference parameters. Fun-fact: undname cannot handle these!
Reviewers: rnk, cdavis5x
Reviewed By: rnk
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1356
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188245
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Tue, 13 Aug 2013 00:11:59 +0000 (00:11 +0000)]
Silence a warning from MSVC about not returning a value
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188237
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Mon, 12 Aug 2013 23:49:39 +0000 (23:49 +0000)]
Remove Sema includes from Analysis code to fix layering
This moves a header-only class from Sema to Analysis and puts the option
check in Sema.
Patch by Chris Wailes!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188230
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 12 Aug 2013 23:26:25 +0000 (23:26 +0000)]
clang-cl: Sink /Fe and /Fo diagnostic code into BuildActions
Differential Revision: http://llvm-reviews.chandlerc.com/D1370
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188226
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 12 Aug 2013 23:17:13 +0000 (23:17 +0000)]
ObjectiveC migration. Add couple of routine
, currently unused, for future cf-annotation work.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188224
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 12 Aug 2013 23:14:36 +0000 (23:14 +0000)]
DebugInfo: Simplify declaration building code - relying on the limit debug info checking already in CreateType(RecordType)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188222
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 12 Aug 2013 22:24:20 +0000 (22:24 +0000)]
DebugInfo: simplify some limited/declaration creation APIs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188214
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 12 Aug 2013 22:19:13 +0000 (22:19 +0000)]
clang-cl: Consolidate tests for /Fo and /Fe into cl-outputs.c
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188213
91177308 -0d34-0410-b5e6-
96231b3b80d8
Kaelyn Uhrain [Mon, 12 Aug 2013 22:11:14 +0000 (22:11 +0000)]
Add hooks to ExternalSemaSource for after-the-fact diagnosis of
incomplete types, courtesy of Luke Zarko.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188212
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 12 Aug 2013 22:02:09 +0000 (22:02 +0000)]
Speculative build fix for r188206.
The cmake-clang-x86_64 was upset:
error: 'template<class ImplClass, class RetTy> class clang::ConstStmtVisitor' used without template parameters
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188211
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 12 Aug 2013 21:56:42 +0000 (21:56 +0000)]
clang-cl: Support the /Fe option
This is used to name the linked output file.
Differential Revision: http://llvm-reviews.chandlerc.com/D1344
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188210
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 12 Aug 2013 21:54:04 +0000 (21:54 +0000)]
Fix pretty-printing for unnamed unions.
This is just a couple of minor fixes to account for the existence
of ElaboratedType.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188209
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 12 Aug 2013 21:54:01 +0000 (21:54 +0000)]
Fix crash w/BlockDecl and invalid qualified decl.
I'm not really satisfied with the ad-hoc nature of
Sema::diagnoseQualifiedDeclaration, but I'm not sure how to fix it.
Fixes <rdar://problem/
14639501 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188208
91177308 -0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Mon, 12 Aug 2013 21:20:55 +0000 (21:20 +0000)]
Patch by Chris Wailes <chris.wailes@gmail.com>.
Reviewed by delesley, dblaikie.
Add the annotations and code needed to support a basic 'consumed' analysis.
Summary:
This new analysis is based on academic literature on linear types. It tracks
the state of a value, either as unconsumed, consumed, or unknown. Methods are
then annotated as CallableWhenUnconsumed, and when an annotated method is
called while the value is in the 'consumed' state a warning is issued. A value
may be tested in the conditional statement of an if-statement; when this occurs
we know the state of the value in the different branches, and this information
is added to our analysis. The code is still highly experimental, and the names
of annotations or the algorithm may be subject to change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188206
91177308 -0d34-0410-b5e6-
96231b3b80d8
Kaelyn Uhrain [Mon, 12 Aug 2013 19:57:06 +0000 (19:57 +0000)]
Forgot to add unittests/Sema/ before committing r188196 :(
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188197
91177308 -0d34-0410-b5e6-
96231b3b80d8
Kaelyn Uhrain [Mon, 12 Aug 2013 19:54:38 +0000 (19:54 +0000)]
Add hooks for typo correction to ExternalSemaSource, courtesy of Luke Zarko.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188196
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 12 Aug 2013 18:34:17 +0000 (18:34 +0000)]
clang-cl: Expand warning about /TC and /TP override, and expand test
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188190
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jack Carter [Mon, 12 Aug 2013 17:20:29 +0000 (17:20 +0000)]
[Mips] MSA frontend option support
This patch adds -mmsa and -mno-msa to the options supported by
clang to enable and disable support for MSA.
When MSA is enabled, a predefined macro '__mips_msa' is defined to 1.
Patch by Daniel Sanders
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188184
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 12 Aug 2013 16:29:25 +0000 (16:29 +0000)]
This test passes on freebsd after r188178. Not exactly sure why.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188182
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 12 Aug 2013 13:46:52 +0000 (13:46 +0000)]
SourceManager intialization tweaks.
- Open files before calling stat on them.
- Go through FileManager for getting the buffer of named pipes. It has the
necessary plumbing to deal with "volatile" files.
- Print the cause when stdin reading fails. The only case I can imagine where
this happens is when stdin is wired to a device file, so no test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188178
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Mon, 12 Aug 2013 12:58:05 +0000 (12:58 +0000)]
clang-format: Improve stream-formatting.
Before:
CHECK(controller->WriteProto(FLAGS_row_key, FLAGS_proto)) << "\""
<< FLAGS_proto
<< "\"";
After:
SemaRef.Diag(Loc, diag::note_for_range_begin_end)
<< BEF << IsTemplate << Description << E->getType();
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188175
91177308 -0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Mon, 12 Aug 2013 12:51:05 +0000 (12:51 +0000)]
Fix FileCheck --check-prefix lines.
Various tests had sprung up over the years which had --check-prefix=ABC on the
RUN line, but "CHECK-ABC:" later on. This happened to work before, but was
strictly incorrect. FileCheck is getting stricter soon though.
Patch by Ron Ofir.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188174
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Mon, 12 Aug 2013 12:16:34 +0000 (12:16 +0000)]
clang-format: Correctly format alias declarations.
Before:
template <class CallbackClass>
using MyCallback = void(CallbackClass::*)(SomeObject * Data);");
After:
template <class CallbackClass>
using MyCallback = void (CallbackClass::*)(SomeObject *Data);");
Also fix three wrong indentations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188172
91177308 -0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Mon, 12 Aug 2013 11:48:05 +0000 (11:48 +0000)]
Use new llvm::SpecialCaseList API in CodeGenModule
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188170
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Mon, 12 Aug 2013 03:51:17 +0000 (03:51 +0000)]
This change fixes the formatting of statements such as catch (E& e).
Previously these were formatting as catch (E & e) because the inner parenthesis
was being marked as an expression.
Patch by Thomas Gibson-Robinson.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188153
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 12 Aug 2013 02:53:18 +0000 (02:53 +0000)]
Fix misindentation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188151
91177308 -0d34-0410-b5e6-
96231b3b80d8
Robert Wilhelm [Sat, 10 Aug 2013 13:29:01 +0000 (13:29 +0000)]
Omit llvm:: before StringRef and SmallString. We have using directive in include/clang/Basic/LLVM.h.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188139
91177308 -0d34-0410-b5e6-
96231b3b80d8
Robert Wilhelm [Sat, 10 Aug 2013 12:33:24 +0000 (12:33 +0000)]
Omit llvm:: before SmallVector and SmallVectorImpl. We have using directive in include/clang/Basic/LLVM.h.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188138
91177308 -0d34-0410-b5e6-
96231b3b80d8
Serge Pavlov [Sat, 10 Aug 2013 12:00:21 +0000 (12:00 +0000)]
Fix to PR16225 (Assert-on-invalid: isa<LabelDecl>(D) && "declaration not instantiated in this scope")
Differential Revision: http://llvm-reviews.chandlerc.com/D920
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188137
91177308 -0d34-0410-b5e6-
96231b3b80d8