]> granicus.if.org Git - clang/log
clang
10 years agoPreload module maps in normal user directories, too.
Douglas Gregor [Fri, 1 Nov 2013 23:08:38 +0000 (23:08 +0000)]
Preload module maps in normal user directories, too.

... in case someone decides to -I/usr/include <rdar://problem/15235948>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193893 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd non-type template parameter test for disabled -Wtautological-compare
Richard Trieu [Fri, 1 Nov 2013 22:12:15 +0000 (22:12 +0000)]
Add non-type template parameter test for disabled -Wtautological-compare
warning in template specializations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193890 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoObjectiveC. Define a new cc1 flag
Fariborz Jahanian [Fri, 1 Nov 2013 21:58:17 +0000 (21:58 +0000)]
ObjectiveC. Define a new cc1 flag
-fobjc-subscripting-legacy-runtime which is off
by default and on only when using ObjectiveC
legacy runtime. Use this flag to allow
array and dictionary subscripting and disallow
objectiveC pointer arithmatic in ObjectiveC
legacy runtime. // rdar://15363492

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193889 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDisable -Wtautological-compare in template instantiations.
Richard Trieu [Fri, 1 Nov 2013 21:47:19 +0000 (21:47 +0000)]
Disable -Wtautological-compare in template instantiations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193888 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDisable -Wtautological-constant-out-of-range-compare in template instantiations.
Richard Trieu [Fri, 1 Nov 2013 21:19:43 +0000 (21:19 +0000)]
Disable -Wtautological-constant-out-of-range-compare in template instantiations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193887 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSanitizerArgs: add ability to filter/diagnose unsupported sanitizers.
Peter Collingbourne [Fri, 1 Nov 2013 18:16:25 +0000 (18:16 +0000)]
SanitizerArgs: add ability to filter/diagnose unsupported sanitizers.

The thread, memory, dataflow and function sanitizers are now diagnosed if
enabled explicitly on an unsupported platform.  Unsupported sanitizers which
are enabled implicitly (as part of a larger group) are silently disabled.  As a
side effect, this makes SanitizerArgs parsing toolchain-dependent (and thus
essentially reverts r188058), and moves SanitizerArgs ownership to ToolChain.

Differential Revision: http://llvm-reviews.chandlerc.com/D1990

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193875 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAArch64: Fix wildcard matching on CHECK lines. Now recognises arch64--.
Amara Emerson [Fri, 1 Nov 2013 12:53:57 +0000 (12:53 +0000)]
AArch64: Fix wildcard matching on CHECK lines. Now recognises arch64--.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193858 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSema: Make helper function static.
Benjamin Kramer [Fri, 1 Nov 2013 11:50:55 +0000 (11:50 +0000)]
Sema: Make helper function static.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193857 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSimplify computation of visible module set.
Richard Smith [Fri, 1 Nov 2013 02:19:14 +0000 (02:19 +0000)]
Simplify computation of visible module set.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193850 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSupport return type deduction for templates in -fdelayed-template-parsing (microsoft...
Faisal Vali [Fri, 1 Nov 2013 02:01:01 +0000 (02:01 +0000)]
Support return type deduction for templates in -fdelayed-template-parsing (microsoft) mode

Please see http://llvm-reviews.chandlerc.com/D2053 for discussion and Richard's stamp.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193849 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoObjectiveC migrator. When inferring readwrite property,
Fariborz Jahanian [Fri, 1 Nov 2013 00:26:48 +0000 (00:26 +0000)]
ObjectiveC migrator. When inferring readwrite property,
do not remove the setter if its availability differs
from availability of the getter (which is now turned into
a property). Otherwise, synthesized setter will
inherit availability of the property (which is incorrect).
// rdar://15300059

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193837 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[AArch64] Add support for NEON scalar fixed-point convert to floating-point instructions.
Chad Rosier [Thu, 31 Oct 2013 22:37:08 +0000 (22:37 +0000)]
[AArch64] Add support for NEON scalar fixed-point convert to floating-point instructions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193817 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoClang modules: collect exports recursively
Dmitri Gribenko [Thu, 31 Oct 2013 22:24:10 +0000 (22:24 +0000)]
Clang modules: collect exports recursively

This change makes Module::buildVisibleModulesCache() collect exported modules
recursively.

While computing a set of exports, getExportedModules() iterates over the set of
imported modules and filters it.  But it does not consider the set of exports
of those modules -- it is the responsibility of the caller to do this.

Here is a certain instance of this issue.  Module::isModuleVisible says that
CoreFoundation.CFArray submodule is not visible from Cocoa.  Why?

- Cocoa imports Foundation.
- Foundation has an export restriction: "export *".
- Foundation imports CoreFoundation.  (Just the top-level module.)
- CoreFoundation exports CoreFoundation.CFArray.

To decide which modules are visible from Cocoa, we collect all exported modules
from immediate imports in Cocoa:

> visibleModulesFro(Cocoa) = exported(Foundation) + exported(CoreData) + exported(AppKit)

To find out which modules are exported, we filter imports according to
restrictions:

> exported(Foundation) = filterByModuleMapRestrictions(imports(Foundation))

Because Foundation imports CoreFoundation (not CoreFoundation.CFArray), the
CFArray submodule is considered not exported from Foundation, and is not
visible from Cocoa (according to Module::isModuleVisible).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193815 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoStore a TypeArgument on an attribute as a TypeSourceInfo*, rather than as a
Richard Smith [Thu, 31 Oct 2013 21:23:20 +0000 (21:23 +0000)]
Store a TypeArgument on an attribute as a TypeSourceInfo*, rather than as a
QualType with a SourceLocation stashed alongside.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193803 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix a C struct diagnostic regression introduced by r187504 (PR17762).
Kaelyn Uhrain [Thu, 31 Oct 2013 20:32:56 +0000 (20:32 +0000)]
Fix a C struct diagnostic regression introduced by r187504 (PR17762).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193799 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[AArch64] Add support for NEON scalar shift immediate instructions.
Chad Rosier [Thu, 31 Oct 2013 19:29:05 +0000 (19:29 +0000)]
[AArch64] Add support for NEON scalar shift immediate instructions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193791 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse StringRef::endswith_lower. No functionality change.
Rui Ueyama [Thu, 31 Oct 2013 19:12:53 +0000 (19:12 +0000)]
Use StringRef::endswith_lower. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193788 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[analyzer] Don't crash when a path goes through a 'delete' destructor call.
Jordan Rose [Thu, 31 Oct 2013 18:41:15 +0000 (18:41 +0000)]
[analyzer] Don't crash when a path goes through a 'delete' destructor call.

This was just left unimplemnted from r191381; the fix is to report this call
location as the location of the 'delete' expr.

PR17746

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193783 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoiboutletcollection really does have custom parsing.
Aaron Ballman [Thu, 31 Oct 2013 17:44:01 +0000 (17:44 +0000)]
iboutletcollection really does have custom parsing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193777 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove unused diagnostic.
Benjamin Kramer [Thu, 31 Oct 2013 17:36:01 +0000 (17:36 +0000)]
Remove unused diagnostic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193774 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoObjectiveC migrator. Change naming hueristic for
Fariborz Jahanian [Thu, 31 Oct 2013 16:10:44 +0000 (16:10 +0000)]
ObjectiveC migrator. Change naming hueristic for
deprecated categories, fixes a typo reported by
Jordan.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193759 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agosizeof... a parameter pack should be an unevaluated context.
Faisal Vali [Thu, 31 Oct 2013 15:58:51 +0000 (15:58 +0000)]
sizeof... a parameter pack should be an unevaluated context.

- can't think of a way to test this without generic lambda captures, but will include a test once that patch is made commit-ready.

patch was ok'd by Doug.
http://llvm-reviews.chandlerc.com/D2029

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193757 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFixed bug with checking the kind of types.
Chris Wailes [Thu, 31 Oct 2013 15:38:12 +0000 (15:38 +0000)]
Fixed bug with checking the kind of types.

The isLValueReferenceType function checks to see if the QualType's
canonical type is an LValue reference, and not if the QualType
itself is an LValue reference.  This caused a segfault when trying
to cast the QualType's Type to a LValueReference.  This is now
fixed by casting the result of getCanonicalType().

In addition, a test was added to isConsumableType to prevent
segfaults when a type being tested by the analysis is a reference
to a pointer or a pointer to a reference.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193751 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[AArch64] Add some CPU targets for "generic", A-53 and A-57.
Amara Emerson [Thu, 31 Oct 2013 09:32:33 +0000 (09:32 +0000)]
[AArch64] Add some CPU targets for "generic", A-53 and A-57.

Enables the clang driver to begin targeting specific CPUs. Introduced a
"generic" CPU which will ensure that the optional FP feature is enabled
by default when it gets to LLVM, without needing any extra arguments.
Cortex-A53 and A-57 are also introduced with tests, although backend
handling of them does not yet exist.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193740 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFactor out custom parsing for iboutletcollection and vec_type_hint attributes
Richard Smith [Thu, 31 Oct 2013 01:56:18 +0000 (01:56 +0000)]
Factor out custom parsing for iboutletcollection and vec_type_hint attributes
into a separate "parse an attribute that takes a type argument" codepath. This
results in both codepaths being a lot cleaner and simpler, and fixes some bugs
where the type argument handling bled into the expression argument handling and
caused us to both accept invalid and reject valid attribute arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193731 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoObjectiveC migrator: annotate all protocols/methods in
Fariborz Jahanian [Thu, 31 Oct 2013 00:06:58 +0000 (00:06 +0000)]
ObjectiveC migrator: annotate all protocols/methods in
a category with NSxxxDeprecated name with deprecated
annotation. // rdar://15337661

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193726 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[libclang/python] Add __contains__ to SourceRange class.
Argyrios Kyrtzidis [Thu, 31 Oct 2013 00:03:33 +0000 (00:03 +0000)]
[libclang/python] Add __contains__ to SourceRange class.

Patch by Loïc Jaquemet!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193725 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix Windows build by including CGFunctionInfo.h.
Mark Lacey [Wed, 30 Oct 2013 23:40:28 +0000 (23:40 +0000)]
Fix Windows build by including CGFunctionInfo.h.

CodeGenTypes.h instantiates llvm::FoldingSet<> with CGFunctionInfo,
and VC++ doesn't like the static_cast from FoldingSetImpl::Node* to
CGFunctionInfo* since it hasn't seen the definition of CGFunctionInfo
and that it inherits from FoldingSetImpl::Node.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193722 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd CodeGenABITypes.h for use in LLDB.
Mark Lacey [Wed, 30 Oct 2013 21:53:58 +0000 (21:53 +0000)]
Add CodeGenABITypes.h for use in LLDB.

CodeGenABITypes is a wrapper built on top of CodeGenModule that exposes
some of the functionality of CodeGenTypes (held by CodeGenModule),
specifically methods that determine the LLVM types appropriate for
function argument and return values.

I addition to CodeGenABITypes.h, CGFunctionInfo.h is introduced, and the
definitions of ABIArgInfo, RequiredArgs, and CGFunctionInfo are moved
into this new header from the private headers ABIInfo.h and CGCall.h.

Exposing this functionality is one part of making it possible for LLDB
to determine the actual ABI locations of function arguments and return
values, making it possible for it to determine this for any supported
target without hard-coding ABI knowledge in the LLDB code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193717 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-cl: Parse the /arch, /Yu and /Fp options (PR17736)
Hans Wennborg [Wed, 30 Oct 2013 17:36:27 +0000 (17:36 +0000)]
clang-cl: Parse the /arch, /Yu and /Fp options (PR17736)

We don't support these options, but should at least parse them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193702 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips][msa] Correct definition of bins[lr] and CHECK-DAG-ize related tests
Daniel Sanders [Wed, 30 Oct 2013 15:45:42 +0000 (15:45 +0000)]
[mips][msa] Correct definition of bins[lr] and CHECK-DAG-ize related tests

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193695 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips][msa] Added support for matching bmnz, bmnzi, bmz, and bmzi from normal IR...
Daniel Sanders [Wed, 30 Oct 2013 15:20:38 +0000 (15:20 +0000)]
[mips][msa] Added support for matching bmnz, bmnzi, bmz, and bmzi from normal IR (i.e. not intrinsics)

Also corrected the definition of the intrinsics for these instructions (the
result register is also the first operand), and added intrinsics for bsel and
bseli to clang (they already existed in the backend).

These four operations are mostly equivalent to bsel, and bseli (the difference
is which operand is tied to the result). As a result some of the tests changed
as described below.

bitwise.ll:
- bsel.v test adapted so that the mask is unknown at compile-time. This stops
  it emitting bmnzi.b instead of the intended bsel.v.
- The bseli.b test now tests the right thing. Namely the case when one of the
  values is an uimm8, rather than when the condition is a uimm8 (which is
  covered by bmnzi.b)

compare.ll:
- bsel.v tests now (correctly) emits bmnz.v instead of bsel.v because this
  is the same operation (see MSA.txt).

i8.ll
- CHECK-DAG-ized test.
- bmzi.b test now (correctly) emits equivalent bmnzi.b with swapped operands
  because this is the same operation (see MSA.txt).
- bseli.b still emits bseli.b though because the immediate makes it
  distinguishable from bmnzi.b.

vec.ll:
- CHECK-DAG-ized test.
- bmz.v tests now (correctly) emits bmnz.v with swapped operands (see
  MSA.txt).
- bsel.v tests now (correctly) emits bmnz.v with swapped operands (see
  MSA.txt).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193693 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[AArch64] Add support for NEON scalar floating-point compare instructions.
Chad Rosier [Wed, 30 Oct 2013 15:20:07 +0000 (15:20 +0000)]
[AArch64] Add support for NEON scalar floating-point compare instructions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193692 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAvoid diagnosing twice on non-x86 targets
Alp Toker [Wed, 30 Oct 2013 15:07:10 +0000 (15:07 +0000)]
Avoid diagnosing twice on non-x86 targets

The PowerPC and ARM native builders spotted this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193688 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips][msa] Added support for matching bins[lr]i.[bhwd] from normal IR (i.e. not...
Daniel Sanders [Wed, 30 Oct 2013 14:45:14 +0000 (14:45 +0000)]
[mips][msa] Added support for matching bins[lr]i.[bhwd] from normal IR (i.e. not intrinsics)

This required correcting the definition of the bins[lr]i intrinsics because
the result is also the first operand.

It also required removing the (arbitrary) check for 32-bit immediates in
MipsSEDAGToDAGISel::selectVSplat().

Currently using binsli.d with 2 bits set in the mask doesn't select binsli.d
because the constant is legalized into a ConstantPool. Similar things can
happen with binsri.d with more than 10 bits set in the mask. The resulting
code when this happens is correct but not optimal.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193687 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix triple / REQUIRES in test from r193685
Alp Toker [Wed, 30 Oct 2013 14:38:32 +0000 (14:38 +0000)]
Fix triple / REQUIRES in test from r193685

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193686 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRecover instead of crashing on MS assembly when no target is loaded
Alp Toker [Wed, 30 Oct 2013 14:29:28 +0000 (14:29 +0000)]
Recover instead of crashing on MS assembly when no target is loaded

It's possible to embed the frontend in applications that haven't initialized
backend targets so we need to handle this condition gracefully.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193685 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: Fix indenting corner case with comment and else.
Daniel Jasper [Wed, 30 Oct 2013 14:04:10 +0000 (14:04 +0000)]
clang-format: Fix indenting corner case with comment and else.

Before:
  if (a) {
    f();
  }
      // or else ..
      else {
    g();
  }

After:
  if (a) {
    f();
  }
  // or else ..
  else {
    g();
  }

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193684 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: Fix whitespaces in include directives.
Daniel Jasper [Wed, 30 Oct 2013 13:54:53 +0000 (13:54 +0000)]
clang-format: Fix whitespaces in include directives.

Before (clang-format wouldn't change):
  #include  "a.h"
  #include<a>

After:
  #include "a.h"
  #include <a>

This fixes llvm.org/PR16151.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193683 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMake thunk this/return adjustment ABI-specific. Also, fix the return adjustment when...
Timur Iskhodzhanov [Wed, 30 Oct 2013 11:55:43 +0000 (11:55 +0000)]
Make thunk this/return adjustment ABI-specific. Also, fix the return adjustment when using -cxx-abi microsoft

Reviewed at http://llvm-reviews.chandlerc.com/D2026

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193679 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: fix for \r\r\n produced in multiline block comments
Daniel Jasper [Wed, 30 Oct 2013 07:36:40 +0000 (07:36 +0000)]
clang-format: fix for \r\r\n produced in multiline block comments

Patch by Christopher Olsen. Thank you!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193678 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips] Delete unused functions.
Akira Hatanaka [Wed, 30 Oct 2013 02:38:17 +0000 (02:38 +0000)]
[mips] Delete unused functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193674 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPR17731: When determining whether a tag and a non-tag were declared in the same
Richard Smith [Wed, 30 Oct 2013 01:02:04 +0000 (01:02 +0000)]
PR17731: When determining whether a tag and a non-tag were declared in the same
scope, be careful about function-scope declarations (which are not declared in
their semantic context).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193671 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMinor efficiency refactor related to 193661. No functional change.
Warren Hunt [Wed, 30 Oct 2013 00:14:55 +0000 (00:14 +0000)]
Minor efficiency refactor related to 193661.  No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193665 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoActivating latent test case for r193661.
Warren Hunt [Wed, 30 Oct 2013 00:08:34 +0000 (00:08 +0000)]
Activating latent test case for r193661.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193664 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFixing code gen to handle microsoft layouts for which size % alignment
Warren Hunt [Tue, 29 Oct 2013 23:49:26 +0000 (23:49 +0000)]
Fixing code gen to handle microsoft layouts for which size % alignment
!= 0

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193661 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoChanged tests_typestate to test_typestate for consistency.
Chris Wailes [Tue, 29 Oct 2013 20:28:41 +0000 (20:28 +0000)]
Changed tests_typestate to test_typestate for consistency.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193648 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd -lm to sanitizer link arguments.
Evgeniy Stepanov [Tue, 29 Oct 2013 19:48:47 +0000 (19:48 +0000)]
Add -lm to sanitizer link arguments.

We'll need to intercept a few function in libm.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193644 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd support for the separate version of /FI.
Rafael Espindola [Tue, 29 Oct 2013 19:42:01 +0000 (19:42 +0000)]
Add support for the separate version of /FI.

Patch by Jeff Muizelaar.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193642 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips] Align the stack to 16-bytes for -mfp64.
Akira Hatanaka [Tue, 29 Oct 2013 19:00:35 +0000 (19:00 +0000)]
[mips] Align the stack to 16-bytes for -mfp64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193640 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips] Use the distance between the current argument's starting address and
Akira Hatanaka [Tue, 29 Oct 2013 18:41:15 +0000 (18:41 +0000)]
[mips] Use the distance between the current argument's starting address and
the previous argument's ending address to compute the type of the padding
argument.

No intended functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193638 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips] Move setDescriptionString to base class MipsTargetInfoBase and call it
Akira Hatanaka [Tue, 29 Oct 2013 18:30:33 +0000 (18:30 +0000)]
[mips] Move setDescriptionString to base class MipsTargetInfoBase and call it
at the end of handleTargetFeatures.

No intended functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193636 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoR600: Add Sea Islands GPUs
Tom Stellard [Tue, 29 Oct 2013 16:38:29 +0000 (16:38 +0000)]
R600: Add Sea Islands GPUs

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193622 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: Option to control spacing in template argument lists.
Daniel Jasper [Tue, 29 Oct 2013 14:52:02 +0000 (14:52 +0000)]
clang-format: Option to control spacing in template argument lists.

Same as SpacesInParentheses, this option allows adding a space inside
the '<' and '>' of a template parameter list.

Patch by Christopher Olsen.

This fixes llvm.org/PR17301.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193614 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoResubmit "Refactor DynTypedMatcher into a value type class, just like Matcher<T>."
Samuel Benzaquen [Tue, 29 Oct 2013 14:37:15 +0000 (14:37 +0000)]
Resubmit "Refactor DynTypedMatcher into a value type class, just like Matcher<T>."

Summary: This resubmits r193100, plus a fix for a breakage with MSVC.

Reviewers: klimek, rnk

CC: cfe-commits, revane
Differential Revision: http://llvm-reviews.chandlerc.com/D2005

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193613 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix an assertion when handling a custom case of virtual inheritance; also reduce...
Timur Iskhodzhanov [Tue, 29 Oct 2013 14:13:45 +0000 (14:13 +0000)]
Fix an assertion when handling a custom case of virtual inheritance; also reduce code duplication

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193610 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd a missing lit-test expectation (forgotten to write initially?)
Timur Iskhodzhanov [Tue, 29 Oct 2013 13:29:32 +0000 (13:29 +0000)]
Add a missing lit-test expectation (forgotten to write initially?)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193608 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse LLVMLibsOptions intead of LDFLAGS when setting the libclang soname. This allows...
Sylvestre Ledru [Tue, 29 Oct 2013 13:01:41 +0000 (13:01 +0000)]
Use LLVMLibsOptions intead of LDFLAGS when setting the libclang soname. This allows 'make LDFLAGS=foo' to be set correctly (and matches the way it is done with libllvm and liblldb)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193607 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoARM: fix AST for __builtin_arm_strex call
Tim Northover [Tue, 29 Oct 2013 12:32:58 +0000 (12:32 +0000)]
ARM: fix AST for __builtin_arm_strex call

The AST was constructed so that this builtin returned the default BoolTy and
since I'd opted for custom SemaChecking, I should have set it properly at that
point.

This caused an assertion failure when the types didn't match up with what we
generated. This makes it return an IntTy, which is as good as anything.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193606 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: Fix overloaded operator for global-scoped conversions.
Daniel Jasper [Tue, 29 Oct 2013 12:24:23 +0000 (12:24 +0000)]
clang-format: Fix overloaded operator for global-scoped conversions.

Before:
  operator::A();

After:
  operator ::A();

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193605 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTeach the driver to not try to use 'lib32' multilib spellings on ARM
Chandler Carruth [Tue, 29 Oct 2013 10:27:30 +0000 (10:27 +0000)]
Teach the driver to not try to use 'lib32' multilib spellings on ARM
which doesn't use that multilib. As a consequence, fix Clang's support
for cross compiling environments that were relying on this quirk to
ensure the correct library search path ordering.

This also re-instates the new test cases from Rafael's r193528 for
cross-compiling to ARM on Ubuntu 13.10 without any of the changes to the
existing test cases (they were no longer needed).

This solution was the result of a lot of IRC debugging and trying to
understand *exactly* what quirk was being relied upon. It took some time
for me to figure out that it was the use of 'lib32' is a multilib that
was throwing a wrench in the works.

In case you are thinking that its silly to use a multilib of 'lib' at
all, entertainingly, GCC does so as well (you can see it with the
.../lib/../lib/crt1.o pattern it uses), and the 2-phase sequence of
search paths (multilib followed by non-multilib) has observable (if
dubious) consequences. =/ Yuck.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193601 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoARM: Add -m[no-]crc to dis/enable CRC subtargetfeature from clang
Bernard Ogden [Tue, 29 Oct 2013 09:47:51 +0000 (09:47 +0000)]
ARM: Add -m[no-]crc to dis/enable CRC subtargetfeature from clang

Allow users to disable or enable CRC subtarget feature.

Differential Revision: http://llvm-reviews.chandlerc.com/D2037

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193600 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDoh, got this turned around. This is in fact the consistent ordering.
Chandler Carruth [Tue, 29 Oct 2013 08:57:33 +0000 (08:57 +0000)]
Doh, got this turned around. This is in fact the consistent ordering.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193596 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoClean up the deeply misleading name of the "MultiLibSuffix". This is
Chandler Carruth [Tue, 29 Oct 2013 08:53:03 +0000 (08:53 +0000)]
Clean up the deeply misleading name of the "MultiLibSuffix". This is
actually a MIPS-only hack to shim in random ABI directory suffixes in
numerous places throughout the toolchain's path search. It shouldn't
appear to be anything more general or useful.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193595 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse Rewriter::overwriteChangedFiles() directly
Alp Toker [Tue, 29 Oct 2013 08:32:41 +0000 (08:32 +0000)]
Use Rewriter::overwriteChangedFiles() directly

This replaces the custom code in RefactoringTool::saveRewrittenFiles() which
lacked atomic file saving and error diagnostics, resolving an old FIXME from
r157331.

Landing this time with the proper return code, plus a very unhelpful comment
cleared up.

Rubber-stamped by Manuel Klimek.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193594 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert "Use Rewriter::overwriteChangedFiles() directly"
Alp Toker [Tue, 29 Oct 2013 07:56:03 +0000 (07:56 +0000)]
Revert "Use Rewriter::overwriteChangedFiles() directly"

This wasn't ready for prime time yet, seems to break tools-extra.

This reverts commit r193590.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193592 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove obsolete RewriteBuffer comment
Alp Toker [Tue, 29 Oct 2013 07:47:57 +0000 (07:47 +0000)]
Remove obsolete RewriteBuffer comment

The string buffer in question was replaced with RewriteRope in r43884
back in 2007.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193591 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse Rewriter::overwriteChangedFiles() directly
Alp Toker [Tue, 29 Oct 2013 07:47:49 +0000 (07:47 +0000)]
Use Rewriter::overwriteChangedFiles() directly

The old code in RefactoringTool::saveRewrittenFiles() lacked
atomic moves and diagnostics and had FIXME to this effect.

Rubber-stamped by Manuel Klimek.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193590 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd missing attributes [[gnu::no_sanitize_address]] and
Nick Lewycky [Tue, 29 Oct 2013 03:54:41 +0000 (03:54 +0000)]
Add missing attributes [[gnu::no_sanitize_address]] and
[[gnu::no_address_safety_analysis]].

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193583 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTreat [[gnu::__const]] the same as [[gnu::const]]. GCC's tokenizer can't tell
Nick Lewycky [Tue, 29 Oct 2013 03:33:57 +0000 (03:33 +0000)]
Treat [[gnu::__const]] the same as [[gnu::const]]. GCC's tokenizer can't tell
the difference.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193582 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix "existant" typos
Alp Toker [Tue, 29 Oct 2013 02:34:44 +0000 (02:34 +0000)]
Fix "existant" typos

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193578 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoCleanup comments and braces. No functionality changed, just trying to
Chandler Carruth [Tue, 29 Oct 2013 02:27:56 +0000 (02:27 +0000)]
Cleanup comments and braces. No functionality changed, just trying to
record what is *actually* going on here as the comments existing in the
code are confusing at best, and in places outright misleading.

The API is even more misleading. Yay.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193577 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSwitch %clang -cc1 tests to %clang_cc1
Alp Toker [Mon, 28 Oct 2013 23:47:09 +0000 (23:47 +0000)]
Switch %clang -cc1 tests to %clang_cc1

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193561 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert "Support cross linking to arm on ubuntu."
Rafael Espindola [Mon, 28 Oct 2013 23:14:34 +0000 (23:14 +0000)]
Revert "Support cross linking to arm on ubuntu."

This reverts commit r193528 (and fixes).

It broke Chandler's setup.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193554 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAllow a new syntax in a module requires-declaration:
Richard Smith [Mon, 28 Oct 2013 22:18:19 +0000 (22:18 +0000)]
Allow a new syntax in a module requires-declaration:

  requires ! feature

The purpose of this is to allow (for instance) the module map for /usr/include
to exclude <tgmath.h> and <complex.h> when building in C++ (these headers are
instead provided by the C++ standard library in this case, and the glibc C
<tgmath.h> header would otherwise try to include <complex.h>, resulting in a
module cycle).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193549 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix a parser crash when there are #pragmas in a context which requires a single
Richard Smith [Mon, 28 Oct 2013 22:04:30 +0000 (22:04 +0000)]
Fix a parser crash when there are #pragmas in a context which requires a single
statement (after a case label, if, etc). Patch by Olivier Goffart!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193545 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMore windows path handling.
Rafael Espindola [Mon, 28 Oct 2013 19:40:25 +0000 (19:40 +0000)]
More windows path handling.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193533 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRelax test to pass with windows paths.
Rafael Espindola [Mon, 28 Oct 2013 19:19:29 +0000 (19:19 +0000)]
Relax test to pass with windows paths.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193532 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSupport cross linking to arm on ubuntu.
Rafael Espindola [Mon, 28 Oct 2013 18:52:30 +0000 (18:52 +0000)]
Support cross linking to arm on ubuntu.

With this patch we correctly determine that ubuntu's ARM tree is not biarch
and use "lib" istead of "lib32".

Without this patch the search inside the arm tree for the crt files was failing
and we would end up trying to use the i686 ones in lib32.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193528 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[libsanitizer] configure+make: install include/sanitizer into Clang
Alexander Potapenko [Mon, 28 Oct 2013 08:21:35 +0000 (08:21 +0000)]
[libsanitizer] configure+make: install include/sanitizer into Clang

When building Clang with compiler-rt, copy the contents of compiler-rt/include/sanitizer into lib/clang/3.4/include/sanitizer

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193515 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoStaticAnalyzer/Checkers/DynamicTypePropagation.cpp: Fix in comments. 80-col and an...
NAKAMURA Takumi [Mon, 28 Oct 2013 04:14:33 +0000 (04:14 +0000)]
StaticAnalyzer/Checkers/DynamicTypePropagation.cpp: Fix in comments. 80-col and an utf8 char.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193513 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix typo in test's REQUIRES line
Alp Toker [Sun, 27 Oct 2013 19:03:12 +0000 (19:03 +0000)]
Fix typo in test's REQUIRES line

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193507 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDefine [U]LLONG_{MIN,MAX} for C++11, add tests.
JF Bastien [Sun, 27 Oct 2013 19:00:49 +0000 (19:00 +0000)]
Define [U]LLONG_{MIN,MAX} for C++11, add tests.

Add tests for limits.h, not just [U]LLONG_{MIN,MAX}.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193506 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix the inconsistent order of parameters in the GetVBaseOffsetFromVBPtr definition...
Timur Iskhodzhanov [Sun, 27 Oct 2013 17:10:27 +0000 (17:10 +0000)]
Fix the inconsistent order of parameters in the GetVBaseOffsetFromVBPtr definition and declaration

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193505 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix option typo.
Rafael Espindola [Sun, 27 Oct 2013 14:46:16 +0000 (14:46 +0000)]
Fix option typo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193504 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix option spelling.
Rafael Espindola [Sun, 27 Oct 2013 14:11:19 +0000 (14:11 +0000)]
Fix option spelling.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193503 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse -target instead of triple and use FileCheck.
Rafael Espindola [Sun, 27 Oct 2013 13:59:51 +0000 (13:59 +0000)]
Use -target instead of triple and use FileCheck.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193502 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd trunk revision number on the online HTML docs.
Bill Wendling [Sun, 27 Oct 2013 05:00:50 +0000 (05:00 +0000)]
Add trunk revision number on the online HTML docs.

Patch by Vassil Vassilev.
PR13435

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193495 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove REQUIRES aarch64-registered-target from test
Alp Toker [Sat, 26 Oct 2013 21:42:32 +0000 (21:42 +0000)]
Remove REQUIRES aarch64-registered-target from test

Registered targets don't matter for Sema tests, this passes fine.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193485 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoCheck IR and don't use temporary files.
Rafael Espindola [Sat, 26 Oct 2013 20:55:05 +0000 (20:55 +0000)]
Check IR and don't use temporary files.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193484 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: Fix ObjC method exprs with variadic parameters.
Daniel Jasper [Sat, 26 Oct 2013 17:00:22 +0000 (17:00 +0000)]
clang-format: Fix ObjC method exprs with variadic parameters.

Before:
  _versionLabel.text = [
    NSString stringWithFormat:NSLocalizedString(@"version: %@", @"Label"),
    [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"]
  ];

After:
  _versionLabel.text =
      [NSString stringWithFormat:NSLocalizedString(@"version: %@", @"Label"),
          [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"]];

This fixed llvm.org/PR17695.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193475 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFileCheckize
Alp Toker [Sat, 26 Oct 2013 15:43:55 +0000 (15:43 +0000)]
FileCheckize

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193474 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoQuote wildcard in test's grep argument
Alp Toker [Sat, 26 Oct 2013 14:52:48 +0000 (14:52 +0000)]
Quote wildcard in test's grep argument

The * could otherwise cause shell pathname expansion.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193473 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove unused diagnostic.
Benjamin Kramer [Sat, 26 Oct 2013 10:12:33 +0000 (10:12 +0000)]
Remove unused diagnostic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193469 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSema: Emit a nicer diagnostic when IndirectFieldDecls show up inappropriately in...
David Majnemer [Sat, 26 Oct 2013 06:12:44 +0000 (06:12 +0000)]
Sema: Emit a nicer diagnostic when IndirectFieldDecls show up inappropriately in non-type template arguments

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193462 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSema: Correctly build pointer-to-member arguments from a template argument with an...
David Majnemer [Sat, 26 Oct 2013 05:02:13 +0000 (05:02 +0000)]
Sema: Correctly build pointer-to-member arguments from a template argument with an IndirectFieldDecl

We only considered FieldDecl and CXXMethodDecl as appropriate which
would cause us to believe the IndirectFieldDecl corresponded to an
argument of it's field type instead of a pointer-to-member type.

This fixes PR17696.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193461 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang/test/CodeGenCXX/debug-info-namespace.cpp: Suppress this also on msys, for now...
NAKAMURA Takumi [Sat, 26 Oct 2013 02:04:06 +0000 (02:04 +0000)]
clang/test/CodeGenCXX/debug-info-namespace.cpp: Suppress this also on msys, for now since r193116.

Clang confuses among dosish paths. In this case, "Input/foo.cpp" and "Input\foo.cpp" cannot be unified.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193456 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[analyzer] Don't emit an "Assuming x is <OP> y" if it's not a comparison op.
Jordan Rose [Sat, 26 Oct 2013 01:16:26 +0000 (01:16 +0000)]
[analyzer] Don't emit an "Assuming x is <OP> y" if it's not a comparison op.

We could certainly be more precise in many of our diagnostics, but before we
were printing "Assuming x is && y", which is just ridiculous.

<rdar://problem/15167979>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193455 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoObjectiveC arc. Warn when an implicitly 'strong' property
Fariborz Jahanian [Sat, 26 Oct 2013 00:35:39 +0000 (00:35 +0000)]
ObjectiveC arc. Warn when an implicitly 'strong' property
is redeclared as 'weak' in class extension.
// rdar://15304886

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193453 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDocument that -fsanitize=function is Linux-only.
Peter Collingbourne [Sat, 26 Oct 2013 00:21:57 +0000 (00:21 +0000)]
Document that -fsanitize=function is Linux-only.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193452 91177308-0d34-0410-b5e6-96231b3b80d8