]> granicus.if.org Git - clang/log
clang
9 years agoRename {Hexagon,NaCl}_TC to {Hexagon,NaCl}ToolChain respectively. NFC
Douglas Katzman [Mon, 27 Jul 2015 16:53:08 +0000 (16:53 +0000)]
Rename {Hexagon,NaCl}_TC to {Hexagon,NaCl}ToolChain respectively. NFC

Also rename XCore (the toolchain) to XCoreToolChain since XCore is
also a namespace for its tools.

Differential Revision: http://reviews.llvm.org/D10609

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

9 years ago[OpenMP] Add capture for threadprivate variables used in copyin clause
Samuel Antao [Mon, 27 Jul 2015 16:38:06 +0000 (16:38 +0000)]
[OpenMP] Add capture for threadprivate variables used in copyin clause
if TLS is enabled in OpenMP code generation.

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

9 years agoAnalysis: Fix example usage comment in CFG.cpp. NFC
Jonathan Roelofs [Mon, 27 Jul 2015 16:05:36 +0000 (16:05 +0000)]
Analysis: Fix example usage comment in CFG.cpp. NFC

Patch by Vedant Kumar!

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

9 years agoSetting ARM dynamic linker name from commandline
Renato Golin [Mon, 27 Jul 2015 09:56:37 +0000 (09:56 +0000)]
Setting ARM dynamic linker name from commandline

Currently trigger to select hard-float linker is only based of -gnueabihf
appearing in target triplet, but we should also select it when hardfloat
is requested via cmdline.

Patch by Khem Raj.

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

9 years ago[clang-cl] Handle -O correctly
David Majnemer [Mon, 27 Jul 2015 07:32:11 +0000 (07:32 +0000)]
[clang-cl] Handle -O correctly

We had multiple bugs here:
- We didn't support multiple optimization options in one argument.
  e.g. -O2y-
- We didn't correctly expand -O[12dx] to their respective options.
- We treated -O1 as clang -O1 instead of clang -Os.
- We treated -Ox as clang -O3 instead of clang -O2.  In fact, cl's -Ox
  option is *less* powerful than cl's -O2 option despite -Ox described
  as "Full Optimization".

This fixes PR24003.

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

9 years agoRename highly-confusing isWhitespace that returns false on \n to
Yaron Keren [Mon, 27 Jul 2015 06:35:22 +0000 (06:35 +0000)]
Rename highly-confusing isWhitespace that returns false on \n to
isWhitespaceExceptNL. If that's wasn't bad enough, we have an identically
named function in Basic/CharInfo.h.

While at it, remove unnecessary includes, .str() calls and #ifdef.

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

9 years ago[modules] Add an assert for redeclarations that we never added to their redecl
Richard Smith [Mon, 27 Jul 2015 05:40:23 +0000 (05:40 +0000)]
[modules] Add an assert for redeclarations that we never added to their redecl
chain and fix the cases where it fires.

 * Handle the __va_list_tag as a predefined decl. Previously we failed to merge
   sometimes it because it's not visible to name lookup. (In passing, remove
   redundant __va_list_tag typedefs that we were creating for some ABIs. These
   didn't affect the mangling or representation of the type.)

 * For Decls derived from Redeclarable that are not in fact redeclarable
   (implicit params, function params, ObjC type parameters), remove them from
   the list of expected redeclarable decls.

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

9 years ago[Targets] Define _M_AMD64 and _M_X64 to a more appropriate value
David Majnemer [Sun, 26 Jul 2015 23:17:29 +0000 (23:17 +0000)]
[Targets] Define _M_AMD64 and _M_X64 to a more appropriate value

We used to define them to 1, we should have defined them to 100.

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

9 years ago[AST] It should be impossible to get Int128 or UInt128 into VisitIntegerLiteral
David Majnemer [Sun, 26 Jul 2015 18:33:32 +0000 (18:33 +0000)]
[AST] It should be impossible to get Int128 or UInt128 into VisitIntegerLiteral

These cases should now be impossible as of r243243.

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

9 years ago[MS Extensions] Remove support for the i128 integer literal suffix
David Majnemer [Sun, 26 Jul 2015 09:02:26 +0000 (09:02 +0000)]
[MS Extensions] Remove support for the i128 integer literal suffix

There is currently no support in MSVC for using i128 as an integer
literal suffix.  In fact, there appears to be no evidence that they have
ever supported this feature in any of their compilers.  This was an over
generalization of their actual feature and is a nasty source of bugs.
Why is it a source of bugs?  Because most code in clang expects that
evaluation of an integer constant expression won't give them something
that 'long long' can't represent.  Instead of providing a meaningful
feature, i128 gives us cute ways of exploding the compiler.

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

9 years ago[Sema] Refactor AddAlignedAttr to reduce indentation
David Majnemer [Sun, 26 Jul 2015 09:02:21 +0000 (09:02 +0000)]
[Sema] Refactor AddAlignedAttr to reduce indentation

No functionality change intended, just a tidy-up.

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

9 years agoThis test failed on ninja-x64-msvc-RA-centos6.
Yaron Keren [Sun, 26 Jul 2015 05:15:24 +0000 (05:15 +0000)]
This test failed on ninja-x64-msvc-RA-centos6.
We could probably get this and the previous three disabled in r243237
working on these builders if MSYS was updated to current MSYS2.

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

9 years agoRevert three tests enabled on r243236, they fail on clang-x86-win2008-selfhost.
Yaron Keren [Sun, 26 Jul 2015 04:59:52 +0000 (04:59 +0000)]
Revert three tests enabled on r243236, they fail on clang-x86-win2008-selfhost.

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

9 years agoEnable passing clang tests on Windows/MSYS.
Yaron Keren [Sun, 26 Jul 2015 04:36:39 +0000 (04:36 +0000)]
Enable passing clang tests on Windows/MSYS.

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

9 years agoFix test running under mingw.
Yaron Keren [Sun, 26 Jul 2015 04:09:41 +0000 (04:09 +0000)]
Fix test running under mingw.

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

9 years agoTry to make the buildbots happy
David Majnemer [Sun, 26 Jul 2015 02:16:35 +0000 (02:16 +0000)]
Try to make the buildbots happy

This test was missing a triple causing it to error out on windows
targets.  They accept a much smaller alignment value.

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

9 years ago[Sema] The alignment of an object has an upper bound from the object file format
David Majnemer [Sun, 26 Jul 2015 01:48:59 +0000 (01:48 +0000)]
[Sema] The alignment of an object has an upper bound from the object file format

Don't use the spelling of the alignment attribute to determine whether
or not an alignment amount makes sense.

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

9 years ago[libclang] Use lambdas instead of explicit structs when storing arguments.
Benjamin Kramer [Sat, 25 Jul 2015 20:55:44 +0000 (20:55 +0000)]
[libclang] Use lambdas instead of explicit structs when storing arguments.

This boilerplate code was necessary to move arguments between threads in
C++98, lambdas make this much easier. No functionality change intended.

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

9 years ago[AST] Rename RecordLayoutBuilder to ItaniumRecordLayoutBuilder
David Majnemer [Sat, 25 Jul 2015 20:18:14 +0000 (20:18 +0000)]
[AST] Rename RecordLayoutBuilder to ItaniumRecordLayoutBuilder

RecordLayoutBuilder is an inaccruate name because it does not build all
records.  It only builds layouts for targets using the Itanium C++ ABI.

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

9 years agoEnable clang tests requiring "clang-driver" on mingw.
Yaron Keren [Sat, 25 Jul 2015 20:05:21 +0000 (20:05 +0000)]
Enable clang tests requiring "clang-driver" on mingw.
At least on my mingw system they do pass, let's see what the bots think.

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

9 years ago[VTableBuilder] Use range-based for loops. No functional change intended
Benjamin Kramer [Sat, 25 Jul 2015 17:10:49 +0000 (17:10 +0000)]
[VTableBuilder] Use range-based for loops. No functional change intended

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

9 years ago[VTableBuilder] Turn functors into lambdas
Benjamin Kramer [Sat, 25 Jul 2015 16:31:30 +0000 (16:31 +0000)]
[VTableBuilder] Turn functors into lambdas

No functional change intended.

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

9 years agoCapture 'this' so GCC 4.7 can find a static members.
Benjamin Kramer [Sat, 25 Jul 2015 15:27:04 +0000 (15:27 +0000)]
Capture 'this' so GCC 4.7 can find a static members.

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

9 years ago[AST] Turn the callbacks of lookupInBases and forallBases into a function_ref
Benjamin Kramer [Sat, 25 Jul 2015 15:07:25 +0000 (15:07 +0000)]
[AST] Turn the callbacks of lookupInBases and forallBases into a function_ref

This lets us pass functors (and lambdas) without void * tricks. On the
downside we can't pass CXXRecordDecl's Find* members (which are now type
safe) to lookupInBases directly, but a lambda trampoline is a small
price to pay. No functionality change intended.

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

9 years ago[Modules] Wrap the main ModuleManager visitor in a function_ref.
Benjamin Kramer [Sat, 25 Jul 2015 12:14:04 +0000 (12:14 +0000)]
[Modules] Wrap the main ModuleManager visitor in a function_ref.

Avoids the awkward passing of an opaque void *UserData argument. No
functional change intended.

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

9 years ago[clang-cl] Add fallback support for /Zl
David Majnemer [Sat, 25 Jul 2015 06:07:59 +0000 (06:07 +0000)]
[clang-cl] Add fallback support for /Zl

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

9 years ago[CodeGen] Don't UBSan-ize the argument to __builtin_frame_address
David Majnemer [Sat, 25 Jul 2015 05:57:24 +0000 (05:57 +0000)]
[CodeGen] Don't UBSan-ize the argument to __builtin_frame_address

__builtin_frame_address requires its argument to be a constant
expression which already implies that it cannot have undefined behavior.
However, we used EmitScalarExpr to emit the argument causing UBSan to
try to check for overflow.

Instead, use the constant expression emission system.

This fixes PR24256.

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

9 years ago[SemaTemplate] Detect instantiation of unparsed exceptions.
Davide Italiano [Sat, 25 Jul 2015 01:19:32 +0000 (01:19 +0000)]
[SemaTemplate] Detect instantiation of unparsed exceptions.

This fixes the clang crash reported in PR24000.

Differential Revision: http://reviews.llvm.org/D11341

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

9 years agoFix test case.
Akira Hatanaka [Sat, 25 Jul 2015 00:33:57 +0000 (00:33 +0000)]
Fix test case.

This is a follow-up to r243185, which made changes to pass subtarget
feature "+reserve-x18" instead of backend option "-aarch64-reserve-x18".

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

9 years ago[AArch64] Pass subtarget feature "+reserve-x18" instead of passing backend
Akira Hatanaka [Sat, 25 Jul 2015 00:18:00 +0000 (00:18 +0000)]
[AArch64] Pass subtarget feature "+reserve-x18" instead of passing backend
option "-aarch64-reserve-x18".

This change is needed since backend options do not make it to the backend
when doing LTO and are not capable of changing the behavior of code-gen
passes on a per-function basis.

rdar://problem/21529937

Differential Revision: http://reviews.llvm.org/D11462

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

9 years agoReplacing some diagnostic string literals with tablegen equivalents because the wordi...
Aaron Ballman [Fri, 24 Jul 2015 21:49:29 +0000 (21:49 +0000)]
Replacing some diagnostic string literals with tablegen equivalents because the wording is identical; NFC.

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

9 years agoDI: Make getOrCreateLimitedType() return DICompositeType, NFC
Duncan P. N. Exon Smith [Fri, 24 Jul 2015 20:34:41 +0000 (20:34 +0000)]
DI: Make getOrCreateLimitedType() return DICompositeType, NFC

Change `getOrCreateLimitedType()` to return a `DICompositeType` and
remove the casts from its callers.  Inside, I've strengthened a `cast`
from `DICompositeTypeBase`, but the casts in the callers already prove
that this is safe.  There should be no functionality change here.

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

9 years agoSelect the highest version of the mingw toolchain found using Generic_GCC::GCCVersion
Yaron Keren [Fri, 24 Jul 2015 20:18:27 +0000 (20:18 +0000)]
Select the highest version of the mingw toolchain found using Generic_GCC::GCCVersion
similar to the way Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple works.

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

9 years agoBase the sys-root/mingw/include path on sysroot and not on /usr.
Yaron Keren [Fri, 24 Jul 2015 19:18:17 +0000 (19:18 +0000)]
Base the sys-root/mingw/include path on sysroot and not on /usr.

Thanks to Richard Smith for pointing this out!

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

9 years agoCorrect x86_64 Android fp128 mangled name
Chih-Hung Hsieh [Fri, 24 Jul 2015 18:12:54 +0000 (18:12 +0000)]
Correct x86_64 Android fp128 mangled name

These changes are for Android x86_64 targets to be compatible with current Android g++.
https://llvm.org/bugs/show_bug.cgi?id=23897
Use 'g' and 'Cg' for "long double" and "long double _Complex" mangled type names.

Differential Revision: http://reviews.llvm.org/D11466

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

9 years agoDI: Make StaticDataMemberCache type-safe, NFC
Duncan P. N. Exon Smith [Fri, 24 Jul 2015 18:05:58 +0000 (18:05 +0000)]
DI: Make StaticDataMemberCache type-safe, NFC

Change `StaticDataMemberCache` to store references to `DIDerivedType`
directly, and remove now-unnecessary casts from the accessors.

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

9 years agoTest commit.
Chih-Hung Hsieh [Fri, 24 Jul 2015 17:39:13 +0000 (17:39 +0000)]
Test commit.

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

9 years ago[test] Attempt to fix failing test in non-darwin bots.
Argyrios Kyrtzidis [Fri, 24 Jul 2015 17:18:25 +0000 (17:18 +0000)]
[test] Attempt to fix failing test in non-darwin bots.

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

9 years ago[code-completion] Strip outer nullability annotations when completing method implemen...
Argyrios Kyrtzidis [Fri, 24 Jul 2015 17:00:19 +0000 (17:00 +0000)]
[code-completion] Strip outer nullability annotations when completing method implementations.

The outer nullability is transferred from the declaration to the implementation so including them is redundant.
The inner ones are not transferred so they are kept to match the exact types. When we transfer the inner ones as well
adding them in the implementation will become redundant and we should strip those as well.

rdar://21737451

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

9 years agoLLVM API Change: the Module always owns the DataLayout
Mehdi Amini [Fri, 24 Jul 2015 16:04:29 +0000 (16:04 +0000)]
LLVM API Change: the Module always owns the DataLayout

From: Mehdi Amini <mehdi.amini@apple.com>

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

9 years agoCorrecting some comments. (1) the function is named throughUsingDecl() and not throug...
Aaron Ballman [Fri, 24 Jul 2015 15:47:32 +0000 (15:47 +0000)]
Correcting some comments. (1) the function is named throughUsingDecl() and not throughUsingDeclaration(). (2) Testing shows that this does work for shadowed variables as well as shadowed functions. I could not find an example where this matcher was failing. NFC.

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

9 years agoSilence a "not all control paths return a value" warning from MSVC. Should also silen...
Aaron Ballman [Fri, 24 Jul 2015 12:47:27 +0000 (12:47 +0000)]
Silence a "not all control paths return a value" warning from MSVC. Should also silence a -Wreturn-type warning. NFC intended.

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

9 years agoVisual Studio is more permissive than other compilers; amends r243107 to fix a compil...
Aaron Ballman [Fri, 24 Jul 2015 12:44:02 +0000 (12:44 +0000)]
Visual Studio is more permissive than other compilers; amends r243107 to fix a compile error.

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

9 years agoAdd an AST matcher, isFinal(), for testing whether a method or class declaration...
Aaron Ballman [Fri, 24 Jul 2015 12:35:41 +0000 (12:35 +0000)]
Add an AST matcher, isFinal(), for testing whether a method or class declaration are marked final.

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

9 years agoApparently some of the bots add .svn dirs inside the test/Driver/Inputs
Yaron Keren [Fri, 24 Jul 2015 11:01:45 +0000 (11:01 +0000)]
Apparently some of the bots add .svn dirs inside the test/Driver/Inputs
directory structure. Try to make mingw toolchain resilient to such surprises.

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

9 years agoTry to appease clang buildbot by forcing libstdc++ in mingw.cpp test.
Yaron Keren [Fri, 24 Jul 2015 09:31:57 +0000 (09:31 +0000)]
Try to appease clang buildbot by forcing libstdc++ in mingw.cpp test.

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

9 years agoAdd extensive tests for the mingw toolchain and remove trailing slash from Arch.
Yaron Keren [Fri, 24 Jul 2015 08:50:15 +0000 (08:50 +0000)]
Add extensive tests for the mingw toolchain and remove trailing slash from Arch.

Address Richard Smith comments: remove the trailing seperator from the Arch
variable, implement six mingw_* trees under tools/clangtest/Driver/Inputs
and merge linux and Windows tests into a universal test that uses these trees.

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

9 years ago[clang-cl] Implement support for the /Zl flag
David Majnemer [Fri, 24 Jul 2015 06:49:13 +0000 (06:49 +0000)]
[clang-cl] Implement support for the /Zl flag

The flag allows users to specify that they do not want the object file
to have any implicit /defaultlib directives.

This fixes PR24236.

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

9 years ago[AST] Perform additional canonicalization for DependentSizedArrayType
David Majnemer [Fri, 24 Jul 2015 05:54:19 +0000 (05:54 +0000)]
[AST] Perform additional canonicalization for DependentSizedArrayType

We treated DependentSizedArrayTypes with the same element type but
differing size expressions as equivalently canonical.  This would lead
to bizarre behavior during template instantiation.

This fixes PR24212.

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

9 years agoCleanup ObjCInterfaceDecl lookup for ObjC literals
Alex Denisov [Fri, 24 Jul 2015 05:09:40 +0000 (05:09 +0000)]
Cleanup ObjCInterfaceDecl lookup for ObjC literals

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

9 years agoGenerating available_externally vtables for outline virtual functions
Piotr Padlewski [Fri, 24 Jul 2015 04:04:49 +0000 (04:04 +0000)]
Generating available_externally vtables for outline virtual functions

Generating available_externally vtables for optimizations purposes.
Unfortunatelly ItaniumABI doesn't guarantee that we will be able to
refer to virtual inline method by name.
But when we don't have any inline virtual methods, and key function is
not defined in this TU, we can generate that there will be vtable and
mark it as available_externally.

This is patch will help devirtualize better.
Differential Revision: http://reviews.llvm.org/D11441

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

9 years ago[Static Analyzer] Some tests do not turn on core checkers. Running the analyzers...
Gabor Horvath [Fri, 24 Jul 2015 03:25:13 +0000 (03:25 +0000)]
[Static Analyzer] Some tests do not turn on core checkers. Running the analyzers without the core checkers is not supported.

Differential Revision: http://reviews.llvm.org/D11432

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

9 years agoFix the cc1as crash when it outputs assembly
Steven Wu [Fri, 24 Jul 2015 02:12:43 +0000 (02:12 +0000)]
Fix the cc1as crash when it outputs assembly

In clang cc1as_main, when the output file type is “asm”, AsmStreamer
owns a formatted_raw_ostream which has a reference to FDOS
(raw_ostream), so AsmStreamer must be closed before FDOS is closed.

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

9 years agoFix the equal-vector-size rule for reinterpret_casts in C++
John McCall [Thu, 23 Jul 2015 23:54:07 +0000 (23:54 +0000)]
Fix the equal-vector-size rule for reinterpret_casts in C++
to consider the storage size of the vector instead of its
sizeof.  In other words, ban <3 x int> to <4 x int> casts,
which produced invalid IR anyway.

Also, attempt to be a little more rigorous, or at least
explicit, about when enums are allowed in these casts.

rdar://21901132

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

9 years agoInstrProf: Fix a typo in the test for r243066
Justin Bogner [Thu, 23 Jul 2015 23:34:26 +0000 (23:34 +0000)]
InstrProf: Fix a typo in the test for r243066

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

9 years agoInstrProf: Don't extend coverage regions into the catch keyword
Justin Bogner [Thu, 23 Jul 2015 23:24:21 +0000 (23:24 +0000)]
InstrProf: Don't extend coverage regions into the catch keyword

The catch keyword isn't really part of a region, so it's fairly
meaningless to extend into it. This was usually harmless, but it could
crash when catch blocks involved macros in strange ways.

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

9 years agoAdd documentation for the objc_boxable attribute
Alex Denisov [Thu, 23 Jul 2015 21:53:13 +0000 (21:53 +0000)]
Add documentation for the objc_boxable attribute

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

9 years agoSema: Avoid a stack overflow on large CFGs
Duncan P. N. Exon Smith [Thu, 23 Jul 2015 20:15:50 +0000 (20:15 +0000)]
Sema: Avoid a stack overflow on large CFGs

Large CFGs cause `checkForFunctionCall()` to overflow its stack.  Break
the recursion by manually managing the call stack instead.

Patch by Vedant Kumar!

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

9 years agoSema: Split out helper from checkForFunctionCall(), NFC
Duncan P. N. Exon Smith [Thu, 23 Jul 2015 20:11:47 +0000 (20:11 +0000)]
Sema: Split out helper from checkForFunctionCall(), NFC

Split out `hasRecursiveCallInPath()` from `checkForFunctionCall()` to
flatten nesting and clarify the code.  This also simplifies a follow-up
patch that refactors the other logic in `checkForFunctionCall()`.

Patch by Vedant Kumar!

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

9 years agoUpdating the documentation for the hasAttr AST matcher, which behaves somewhat differ...
Aaron Ballman [Thu, 23 Jul 2015 17:54:59 +0000 (17:54 +0000)]
Updating the documentation for the hasAttr AST matcher, which behaves somewhat differently when used within clang-query. Fixes PR24217.

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

9 years ago[Compiler-RT] Remove dependency on libgcc_s/eh
Renato Golin [Thu, 23 Jul 2015 17:24:41 +0000 (17:24 +0000)]
[Compiler-RT] Remove dependency on libgcc_s/eh

Currently, for --rtlib=compiler-rt on GNU systems, we're assuming
that one has libgcc_s and libgcc_eh as low-level libraries, which
when used in conjunction with -lunwind or -lc++abi, breaks that
assumption.

My original fix was wrong, and this patch reverts it to prepare for
a new flag to choose the unwinder/C++ libraries. For the time being,
people can use "-lgcc_s -lgcc_eh" or "-lunwind -lc++abi" or any
combination they need explicitly.

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

9 years agoAdd missing files for objc_boxable feature.
Alex Denisov [Thu, 23 Jul 2015 14:45:41 +0000 (14:45 +0000)]
Add missing files for objc_boxable feature.

Original patch [r240761] is missing all new files because of committer's mistake.

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

9 years ago[X86][AVX512F] Add FP scalar intrinsics
Asaf Badouh [Thu, 23 Jul 2015 12:13:32 +0000 (12:13 +0000)]
[X86][AVX512F] Add FP scalar intrinsics
intrinsics for: add/sub/mul/div/min/max in their FP scalar versions

Differential Revision: http://reviews.llvm.org/D11418

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

9 years ago[X86][AVX512BW] add madd and maddubs intrinsics
Asaf Badouh [Thu, 23 Jul 2015 07:07:25 +0000 (07:07 +0000)]
[X86][AVX512BW] add madd and maddubs intrinsics

Differential Revision: http://reviews.llvm.org/D11420

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

9 years agoAdd test to verify we emit warning when the deprecated virtual function is overloaded.
Davide Italiano [Thu, 23 Jul 2015 02:54:59 +0000 (02:54 +0000)]
Add test to verify we emit warning when the deprecated virtual function is overloaded.

Suggested by Richard Smith.

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

9 years agoArrayRef-ize a pointer/length pair.
Richard Smith [Thu, 23 Jul 2015 00:53:59 +0000 (00:53 +0000)]
ArrayRef-ize a pointer/length pair.

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

9 years agoDowngrade error about adding 'dllimport' to used free function to warning (PR24215)
Hans Wennborg [Wed, 22 Jul 2015 23:54:51 +0000 (23:54 +0000)]
Downgrade error about adding 'dllimport' to used free function to warning (PR24215)

The code will still work as it can reference the function via its thunk.

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

9 years agoMove EHPersonality to CGCleanup
David Majnemer [Wed, 22 Jul 2015 23:46:21 +0000 (23:46 +0000)]
Move EHPersonality to CGCleanup

This makes it possible to use EHPersonality in other parts of CodeGen.

Differential Revision: http://reviews.llvm.org/D11440

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

9 years ago[MS Compat] Allow _Atomic(Type) and 'struct _Atomic' to coexist
David Majnemer [Wed, 22 Jul 2015 23:46:18 +0000 (23:46 +0000)]
[MS Compat] Allow _Atomic(Type) and 'struct _Atomic' to coexist

MSVC 2013 ships, as part of its STL implementation, a class named
'_Atomic'.  This is unfortunate because this keyword is in conflict with
the C11 keyword with the same name.  Our solution was to disable this
keyword when targeting MSVC 2013 and reenable it for 2015.

However, this makes it impossible for clang's headers to make use of
_Atomic.  This is problematic in the case of libc++ as it makes heavy
use of this keyword.

Let the keywordness of _Atomic float under certain circumstances:
the body of a class named _Atomic, or a class with a base specifier
named _Atomic, will not have the keyword variant of _Atomic for the
duration of the class body.  This is sufficient to allow us to correctly
handle _Atomic in the STL while permitting us to use _Atomic as a
keyword everywhere else.

Differential Revision: http://reviews.llvm.org/D11233

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

9 years agoFix dumb use-after-free bug introduced in r242868.
Richard Smith [Wed, 22 Jul 2015 22:51:15 +0000 (22:51 +0000)]
Fix dumb use-after-free bug introduced in r242868.

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

9 years ago[MSVC Compatibility] Use a better predicate for __BOOL_DEFINED
David Majnemer [Wed, 22 Jul 2015 22:36:26 +0000 (22:36 +0000)]
[MSVC Compatibility] Use a better predicate for __BOOL_DEFINED

Instead of using CPlusPlus, use Bool.  No functionality change is
intended, it just makes things a tad bit more clear.

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

9 years agoFix -Wextra-semi warnings.
Hans Wennborg [Wed, 22 Jul 2015 20:46:26 +0000 (20:46 +0000)]
Fix -Wextra-semi warnings.

Patch by Eugene Zelenko!

Differential Revision: http://reviews.llvm.org/D11401

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

9 years agoSomething was unbalanced, and it wasn't the parentheses. ;-) Reverts r242915.
Aaron Ballman [Wed, 22 Jul 2015 20:02:00 +0000 (20:02 +0000)]
Something was unbalanced, and it wasn't the parentheses. ;-) Reverts r242915.

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

9 years agoBalancing parenthesis in comments and documentation; NFC.
Aaron Ballman [Wed, 22 Jul 2015 17:51:42 +0000 (17:51 +0000)]
Balancing parenthesis in comments and documentation; NFC.

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

9 years agoAdd cygwin x86_64 target.
Yaron Keren [Wed, 22 Jul 2015 17:38:19 +0000 (17:38 +0000)]
Add cygwin x86_64 target.

Patch by Martell Malone!

http://reviews.llvm.org/D11349

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

9 years ago[OpenMP] Make target data directive generate unexpected directive diagnostic.
Samuel Antao [Wed, 22 Jul 2015 16:02:46 +0000 (16:02 +0000)]
[OpenMP] Make target data directive generate unexpected directive diagnostic.

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

9 years ago[mingw] Add support for -rtlib option and -stdlib option to the mingw driver
Reid Kleckner [Wed, 22 Jul 2015 16:01:38 +0000 (16:01 +0000)]
[mingw] Add support for -rtlib option and -stdlib option to the mingw driver

Now clang should be able to use compiler-rt and libc++ on mingw.

Based on a patch by Martell Malone.

Differential Revision: http://reviews.llvm.org/D11237

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

9 years agoPass -I options to integrates and external assemblers
Renato Golin [Wed, 22 Jul 2015 15:32:36 +0000 (15:32 +0000)]
Pass -I options to integrates and external assemblers

Fixes PR21000.

Patch by Artem Belevich.

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

9 years ago[CONCEPTS] Add diagnostics: non-defining function; non-namespace scope
Hubert Tong [Wed, 22 Jul 2015 13:32:36 +0000 (13:32 +0000)]
[CONCEPTS] Add diagnostics: non-defining function; non-namespace scope

Summary:
Create diagnostic for function concept declaration which is not a
definition.

Create diagnostic for concept declaration which isn't in namespace
scope.

Create associated tests.

Reviewers: rsmith, faisalv, fraggamuffin, hubert.reinterpretcast

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D11027

Patch by Nathan Wilson!

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

9 years agoStmtOpenMP.h: Fix a couple of \param(s) in r242785. [-Wdocumentation]
NAKAMURA Takumi [Wed, 22 Jul 2015 12:38:10 +0000 (12:38 +0000)]
StmtOpenMP.h: Fix a couple of \param(s) in r242785. [-Wdocumentation]

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

9 years ago[modules] Stop performing PCM lookups for all identifiers when building with C++...
Richard Smith [Wed, 22 Jul 2015 02:08:40 +0000 (02:08 +0000)]
[modules] Stop performing PCM lookups for all identifiers when building with C++ modules. Instead, serialize a list of interesting identifiers and mark those ones out of date on module import. Avoiding the identifier lookups here gives a 20-30% speedup in builds with large numbers of modules. No functionality change intended.

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

9 years ago[modules] Change module manager visitation order to be a bit more stable when
Richard Smith [Wed, 22 Jul 2015 01:28:05 +0000 (01:28 +0000)]
[modules] Change module manager visitation order to be a bit more stable when
more modules are added: visit modules depth-first rather than breadth-first.
The visitation is still (approximately) oldest-to-newest, and still guarantees
that a module is visited before anything it imports, so modules that are
imported by others sometimes need to jump to a later position in the visitation
order when more modules are loaded, but independent module trees don't
interfere with each other any more.

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

9 years ago[Sema] Diagnose use of declaration correctly.
Davide Italiano [Wed, 22 Jul 2015 00:30:58 +0000 (00:30 +0000)]
[Sema] Diagnose use of declaration correctly.

Before we skipped that for virtual functions not fully qualified (r81507).
This commit basically reverts this to the older behaviour, which seems
more consistent. We now also correctly consider ill-formed calls to deleted
member functions, which were silently passed before in some cases.
The review contains the whole discussion.

PR: 20268
Differential Revision:  http://reviews.llvm.org/D11334

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

9 years ago[modules] In C++, stop serializing and deserializing a list of declarations in
Richard Smith [Tue, 21 Jul 2015 23:54:07 +0000 (23:54 +0000)]
[modules] In C++, stop serializing and deserializing a list of declarations in
the identifier table. This is redundant, since the TU-scope lookups are also
serialized as part of the TU DeclContext, and wasteful in a number of ways. We
still emit the decls for PCH / preamble builds, since for those we want
identical results, not merely semantically equivalent ones.

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

9 years agoChange a test to follow the formatting of the rest of the tests in the file.
Richard Trieu [Tue, 21 Jul 2015 23:38:30 +0000 (23:38 +0000)]
Change a test to follow the formatting of the rest of the tests in the file.
No functional change.

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

9 years agoclang-format: Fix unary operator detection in for loops.
Daniel Jasper [Tue, 21 Jul 2015 22:51:00 +0000 (22:51 +0000)]
clang-format: Fix unary operator detection in for loops.

Before:
  for (;; * a = b) {}

After:
  for (;; *a = b) {}

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

9 years agoUse range-based for loops; NFC.
Aaron Ballman [Tue, 21 Jul 2015 22:33:52 +0000 (22:33 +0000)]
Use range-based for loops; NFC.

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

9 years agoARM: actually define __ARM_ARCH_7S__ for the armv7s slice
Tim Northover [Tue, 21 Jul 2015 21:47:33 +0000 (21:47 +0000)]
ARM: actually define __ARM_ARCH_7S__ for the armv7s slice

We ended up with the wrong predefine after the recent TargetParser shuffle, and
I accidentally solidified it with a test. This should fix it.

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

9 years agoUse a range-based for loop; NFC.
Aaron Ballman [Tue, 21 Jul 2015 21:18:29 +0000 (21:18 +0000)]
Use a range-based for loop; NFC.

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

9 years agoReplace some uses of Self.Context with the local variable C; NFC.
Aaron Ballman [Tue, 21 Jul 2015 21:07:11 +0000 (21:07 +0000)]
Replace some uses of Self.Context with the local variable C; NFC.

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

9 years agoFix GCC build due to shadowing
David Blaikie [Tue, 21 Jul 2015 18:59:10 +0000 (18:59 +0000)]
Fix GCC build due to shadowing

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

9 years agoPass an iterator range to EmitCallArgs
David Blaikie [Tue, 21 Jul 2015 18:37:18 +0000 (18:37 +0000)]
Pass an iterator range to EmitCallArgs

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

9 years ago[modules] Produce an error if -cc1 wants to implicitly build a module and no
Richard Smith [Tue, 21 Jul 2015 18:07:47 +0000 (18:07 +0000)]
[modules] Produce an error if -cc1 wants to implicitly build a module and no
module cache has been provided, rather than creating one in the current
directory.

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

9 years agoUpdate the documentation for "novtable" to match r242730.
Bob Wilson [Tue, 21 Jul 2015 16:40:03 +0000 (16:40 +0000)]
Update the documentation for "novtable" to match r242730.

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

9 years agoAdd missing parentheses to appease -Wlogical-op-parentheses.
Daniel Jasper [Tue, 21 Jul 2015 16:18:51 +0000 (16:18 +0000)]
Add missing parentheses to appease -Wlogical-op-parentheses.
Add missing case to appease -Wswitch.

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

9 years ago[X86][AVX512F] add FP arithmetic intrinsics
Asaf Badouh [Tue, 21 Jul 2015 15:27:28 +0000 (15:27 +0000)]
[X86][AVX512F] add FP arithmetic intrinsics
add/div/mul/sub include rounding versions

Differential Revision: http://reviews.llvm.org/D11354

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

9 years agoCommit for http://reviews.llvm.org/D10765
Michael Wong [Tue, 21 Jul 2015 13:44:28 +0000 (13:44 +0000)]
Commit for http://reviews.llvm.org/D10765
for OpenMP 4 target data directive parsing and sema.
This commit is on behalf of Kelvin Li.

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

9 years agoRemoving attribute documentation headings that are not required and do not add clarit...
Aaron Ballman [Tue, 21 Jul 2015 12:20:53 +0000 (12:20 +0000)]
Removing attribute documentation headings that are not required and do not add clarity; NFC.

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

9 years agoFix mingw toolchain to honor sysroot on Linux and add tests.
Yaron Keren [Tue, 21 Jul 2015 11:01:00 +0000 (11:01 +0000)]
Fix mingw toolchain to honor sysroot on Linux and add tests.

It should now support three mingw distributions running on Windows
and three Linux distributions. The include directories for each are
listed in the comments.

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

9 years ago[ARM] Pass subtarget feature "+reserve-r9" instead of passing backend
Akira Hatanaka [Tue, 21 Jul 2015 01:41:08 +0000 (01:41 +0000)]
[ARM] Pass subtarget feature "+reserve-r9" instead of passing backend
option "-arm-reserve-r9".

This recommits r242736, which had to be reverted because the llvm-side
change that was committed in r242737 caused the number of subtarget
features to go over the limit of 64.

This change is needed since backend options do not make it to the backend
when doing LTO and are not capable of changing the behavior of code-gen
passes on a per-function basis.

rdar://problem/21529937

Differential Revision: http://reviews.llvm.org/D11319

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