chromium/src/tools/clang.git
2 days agoRoll Clang 204777:206155 master
hans@chromium.org [Wed, 16 Apr 2014 23:17:46 +0000 (23:17 +0000)]
Roll Clang 204777:206155

BUG=363667

Review URL: https://codereview.chromium.org/239243004

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@264340 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 days agoclang plugin: Fix tests when running on OS X 10.9
thakis@chromium.org [Wed, 16 Apr 2014 03:04:16 +0000 (03:04 +0000)]
clang plugin: Fix tests when running on OS X 10.9

On 10.9, trunk clang defaults to targeting libc++. Clang expects to bundle
the libc++ headers to be able to use libc++, but we don't currently do this.
Instead, tell the plugin tests to use libstdc++ and pass a sysroot flag.

(The blink oilpan plugin doesn't use and standard library includes, so it
doesn't need this change at the moment.)

BUG=none
TEST=tools/clang/plugins/tests/test.sh third_party/llvm-build/Release+Asserts
NOTRY=true

Review URL: https://codereview.chromium.org/239753005

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@264089 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 days agoClang update.py: tiny fix to the regexes
hans@chromium.org [Mon, 14 Apr 2014 18:53:10 +0000 (18:53 +0000)]
Clang update.py: tiny fix to the regexes

Remove erroneous word boundary marker. It seems "\b(make_clang_dir)=\b"
wouldn't match "make_clang_dir=../foo/bar".

Also, much less importantly, "\b(clang|asan)=1\b" wouldn't match "clang=10".

BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/237323003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@263687 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

10 days agoCheck that GC base classes are left-most derived and that RawPtr<T> are not used...
zerny@chromium.org [Tue, 8 Apr 2014 13:21:32 +0000 (13:21 +0000)]
Check that GC base classes are left-most derived and that RawPtr<T> are not used as fields.

BUG=334149
R=ager@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/228503002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@262387 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

13 days agoRevert "Turn on clang by default on linux."
thakis@chromium.org [Sat, 5 Apr 2014 20:06:28 +0000 (20:06 +0000)]
Revert "Turn on clang by default on linux."

We don't have 32bit clang binaries, but several 32bit builders.
(And since clang now needs a c++11 compiler newer than gcc4.6 to
compile, we can't tell these bots to just build clang themselves
either.)

BUG=360311

Review URL: https://codereview.chromium.org/227133002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@262030 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

13 days agoTurn on clang by default on linux.
thakis@chromium.org [Sat, 5 Apr 2014 18:27:00 +0000 (18:27 +0000)]
Turn on clang by default on linux.

This is mostly to collect performance and size data for now. Unless things
look really good, I'm going to revert this by end-of-day sunday.

BUG=360311
TBR=awong@chromium.org

Review URL: https://codereview.chromium.org/226253008

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@262025 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 weeks agoUpgrade blink plugin to pick up r261132.
thakis@chromium.org [Thu, 3 Apr 2014 04:15:07 +0000 (04:15 +0000)]
Upgrade blink plugin to pick up r261132.

BUG=334149
TBR=zerny@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/223043003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@261274 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 weeks agoclang update script cleanups: Remove Xcode 3.2 step, replace "cd -" with "popd".
thakis@chromium.org [Wed, 2 Apr 2014 15:53:23 +0000 (15:53 +0000)]
clang update script cleanups: Remove Xcode 3.2 step, replace "cd -" with "popd".

No intended behavior change.

BUG=none
NOTRY=true

Review URL: https://codereview.chromium.org/221273002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@261133 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 weeks agoAdd temporary exceptions for the TreeShared hierarchy to the Blink GC plugin.
zerny@chromium.org [Wed, 2 Apr 2014 15:48:28 +0000 (15:48 +0000)]
Add temporary exceptions for the TreeShared hierarchy to the Blink GC plugin.

While transitioning the Node hierarchy we allow Persistent fields from within the hierarchy and allow raw pointers to the hierarchy from stack-allocated objects.

Also, fixes a typo introduced in r260833.

BUG=334149
R=ager@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/220403003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@261132 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 weeks agoroll clang 202555:204777
thakis@chromium.org [Wed, 2 Apr 2014 03:37:33 +0000 (03:37 +0000)]
roll clang 202555:204777

BUG=357890
TBR=hans@chromium.org

Review URL: https://codereview.chromium.org/221623003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@261042 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 weeks agoroll clang 202554:202555
thakis@chromium.org [Tue, 1 Apr 2014 22:42:21 +0000 (22:42 +0000)]
roll clang 202554:202555

This rolls in just clang r202555, which is a formatting change -- so this change
doesn't modify the compiler itself.

It does deploy the following things:
1.) On Mac, clang now packages libc++. This will hopefully allow clang to
    continue running on OS X 10.6, even when clang is built with a dependency
    on a standard library that provides c++11 features. (http://crbug.com/202555)
2.) It picks up r260249 for the plugin, fixing a crash in the plugin
    (http://crbug.com/202555) and turning the warning off by default.
3.) It picks up oilplan plugin changes up to r260911.

This also changes the bundle build script to use the bootstrap compiler to
compile libc++ in bootstrap builds, and tweaks the script to keep clang
asan/android buildable with the r9d ndk (http://crbug.com/357890)

BUG=358500,356816,357890
TBR=hans@chromium.org

Review URL: https://codereview.chromium.org/217323005

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@260962 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 weeks agoclang/mac: Bundle libc++.dylib with clang.
thakis@chromium.org [Tue, 1 Apr 2014 18:28:25 +0000 (18:28 +0000)]
clang/mac: Bundle libc++.dylib with clang.

clang now uses c++11, which on OS X means it depends on libc++.
OS X 10.6 doesn't have libc++ yet, but some bots still are on 10.6 and
upgrading them will take a bit longer. Bundle libc++ with the clang package,
and set rpaths so that both clang and plugins refer to the bundled libc++
instead of /usr/lib/libc++.1.dylib.

(System libraries will still cause libstdc++ to be loaded as well. Since libc++
keeps its symbols in std::__1:: and aliases everything to that, loading libc++
and libstdc++ in the same process is safe.)

Also don't set MACOSX_DEPLOYMENT_TARGET while building the bootstrap
compiler (Xcode's clang complains when using -stdlib=libc++ when targeting
10.6 or older; open-source luckily doesn't for some reason).

Also pass -isysroot; when building on OS X 10.9, /usr/include doesn't exist
unless the command line tools are installed.

BUG=358500
TEST=Run package.sh (with a tweaked clang revision, to not clobber an
existing package). Upload produced tgz file somewhere, download it on
a 10.6 box. Clang should run.

R=hans@chromium.org

Review URL: https://codereview.chromium.org/218613009

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@260908 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 weeks agoAdd flag to gather statistics from the Blink points-to graph.
zerny@chromium.org [Tue, 1 Apr 2014 11:21:27 +0000 (11:21 +0000)]
Add flag to gather statistics from the Blink points-to graph.

This also fixes an error where the edge key of subclass edges was non-unique causing subclass edge entries to be incorrectly overwritten.

BUG=334149
NOTRY=true

Review URL: https://codereview.chromium.org/219213004

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@260833 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoRe-enable the clang check for enum constants.
tsepez@chromium.org [Fri, 28 Mar 2014 20:05:13 +0000 (20:05 +0000)]
Re-enable the clang check for enum constants.

The patch adds a flag to disable the feature, so as to avoid future reverts.
There is also a check to avoid mixed signed comparisons, as can
arise with enums from C files.  We need not bother checking these.

BUG=356816
R=mark@chromium.org
R=thakis@chromium.org

Re-enable flag.

patch from issue 150943005

Review URL: https://codereview.chromium.org/213403010

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@260249 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoAvoid updating clang if the user set make_clang_dir in GYP_DEFINES
rnk@chromium.org [Thu, 27 Mar 2014 19:01:17 +0000 (19:01 +0000)]
Avoid updating clang if the user set make_clang_dir in GYP_DEFINES

R=hans@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/214883004

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@259944 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoRemoving the misleading comments about mac-only.
mithro@mithis.com [Thu, 27 Mar 2014 15:50:01 +0000 (15:50 +0000)]
Removing the misleading comments about mac-only.

clang is regularly used on Linux too and work is going on to make Windows work.

BUG=

Review URL: https://codereview.chromium.org/212203002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@259882 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoCleanup of the Blink GC plugin code.
zerny@chromium.org [Thu, 27 Mar 2014 07:36:35 +0000 (07:36 +0000)]
Cleanup of the Blink GC plugin code.

- Add override to overridden methods.
- Move assert out of exhaustive switch to avoid compile warnings.
- Code formatting.

BUG=334149
R=ager@chromium.org, thakis@chromium.org

Review URL: https://codereview.chromium.org/212593004

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@259809 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoRevert of Add a check to the FindBadConstructs.cpp clang plugin for bad enum last...
thakis@chromium.org [Wed, 26 Mar 2014 20:46:51 +0000 (20:46 +0000)]
Revert of Add a check to the FindBadConstructs.cpp clang plugin for bad enum last values. (https://codereview.chromium.org/150943005/)

Reason for revert:
Caused crbug.com/356815 and crbug.com/356816 and doesn't have a flag to turn it off.

Original issue's description:
> Add a check to the FindBadConstructs.cpp clang plugin for bad enum last values.
>
> One common coding patern is to define an enum as in:
>   enum Color { RED, GREEN, BLUE, COLOR_LAST=BLUE };
> but this is fragile when someone adds a new constant and forgets
> to update the COLOR_LAST constant.
>
> This change looks for enums that have a xxx_LAST or xxxLast member,
> and warns if there are any higher-valued constants present.
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=251894

TBR=erg@google.com,darin@chromium.org,erg@chromium.org,tsepez@chromium.org
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/212673008

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@259675 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoDisallow Member fields in "unmanaged" classes.
zerny@chromium.org [Wed, 26 Mar 2014 14:25:02 +0000 (14:25 +0000)]
Disallow Member fields in "unmanaged" classes.

An unmanaged class is a class that is allocated on the non-managed C++ heap. In other words, an "unmanaged" object is not GC allocated, stack allocated, inline allocated in a collection, or allocated as a part of a GC allocated object.

BUG=334149
R=ager@chromium.org, haraken@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/212943002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@259574 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoVerify inner classes in the Blink GC plugin.
zerny@chromium.org [Wed, 26 Mar 2014 14:15:06 +0000 (14:15 +0000)]
Verify inner classes in the Blink GC plugin.

Checks of inner classes were missing due to incorrect code for ignoring non-blink namespaces.

BUG=334149
R=ager@chromium.org

Review URL: https://codereview.chromium.org/210203003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@259568 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoAdd ignore-cycles and pickle-graph flags to the process-graph script.
zerny@chromium.org [Wed, 26 Mar 2014 11:44:36 +0000 (11:44 +0000)]
Add ignore-cycles and pickle-graph flags to the process-graph script.

The ignore-cycles takes a file containing the output of cycles that are to be ignored.
The pickle-graph takes a file name that the completed graph will be read from or saved to.

BUG=334149
R=ager@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/211063003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@259554 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoclang roll 198389:202554 revolutions
thakis@chromium.org [Wed, 26 Mar 2014 00:14:35 +0000 (00:14 +0000)]
clang roll 198389:202554 revolutions

First try: https://codereview.chromium.org/195623002
Second try: https://codereview.chromium.org/211213004

Difference from "second try" is passing --enable-libedit=no to
configure, to not depend on libedit.3.dylib (which doesn't exist on
OS X 10.6), see diff from patch set 1 to 2.

The linux package wasn't rebuilt, so it's configured without that flag.
That shouldn't cause issues hopefully.

BUG=351479, 287029, 341352, 333968, 335325
R=hans@chromium.org
TBR=hans@chromium.org

Review URL: https://codereview.chromium.org/211733007

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@259411 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoRevert 259371 "clang roll 198389:202554 reloaded"
thakis@chromium.org [Tue, 25 Mar 2014 22:56:20 +0000 (22:56 +0000)]
Revert 259371 "clang roll 198389:202554 reloaded"

Even though the libc++ dependency is gone, clang still depends on
/usr/lib/libedit.3.dylib suddently, which doesn't exist on 10.6. Backing out
while I investigate...

> clang roll 198389:202554 reloaded
>
> The first try is at https://codereview.chromium.org/195623002/ . Patch set 1
> is identical to that CL, patch set 2 has what changed.
>
> The big change is that clang/mac is built in gnu++98 mode and doesn't link
> to libc++, to buy us time until the next roll for upgrading our bots to 10.7.
> This includes blink plugin changes up to r256229 (inclusive).
>
> BUG=351479, 287029, 341352, 333968, 335325
> R=hans@chromium.org
> TBR=hans@chromium.org
>
> Review URL: https://codereview.chromium.org/211213004

TBR=thakis@chromium.org

Review URL: https://codereview.chromium.org/211493005

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@259378 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoclang roll 198389:202554 reloaded
thakis@chromium.org [Tue, 25 Mar 2014 22:42:36 +0000 (22:42 +0000)]
clang roll 198389:202554 reloaded

The first try is at https://codereview.chromium.org/195623002/ . Patch set 1
is identical to that CL, patch set 2 has what changed.

The big change is that clang/mac is built in gnu++98 mode and doesn't link
to libc++, to buy us time until the next roll for upgrading our bots to 10.7.
This includes blink plugin changes up to r256229 (inclusive).

BUG=351479, 287029, 341352, 333968, 335325
R=hans@chromium.org
TBR=hans@chromium.org

Review URL: https://codereview.chromium.org/211213004

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@259371 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoRename Blink GC plugin flag from detect-cycles to dump-graph.
zerny@chromium.org [Tue, 25 Mar 2014 16:29:35 +0000 (16:29 +0000)]
Rename Blink GC plugin flag from detect-cycles to dump-graph.

BUG=334149
R=ager@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/210803002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@259231 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoDon't allow raw pointers to GC allocated objects in stack allocated objects.
zerny@chromium.org [Mon, 24 Mar 2014 12:45:09 +0000 (12:45 +0000)]
Don't allow raw pointers to GC allocated objects in stack allocated objects.

BUG=334149
R=haraken@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/197583012

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@258915 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoGlobal cycle detection analysis.
zerny@chromium.org [Mon, 24 Mar 2014 09:38:08 +0000 (09:38 +0000)]
Global cycle detection analysis.

This adds a detect-cycles flag to the plugin which will cause each compilation unit to output a .graph.json file describing the points-to graph of that compilation unit. The process-graph.py script can then be used to process the graph files to detect cycles involving GC roots.

BUG=334149
R=ager@chromium.org

Review URL: https://codereview.chromium.org/207913002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@258898 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 weeks agoOnly check GC dispatch methods for GC derived types.
zerny@chromium.org [Mon, 24 Mar 2014 07:18:43 +0000 (07:18 +0000)]
Only check GC dispatch methods for GC derived types.

BUG=334149
R=haraken@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/209803002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@258885 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoAdd checks for stack-allocated types and their uses in fields.
zerny@chromium.org [Thu, 20 Mar 2014 18:07:49 +0000 (18:07 +0000)]
Add checks for stack-allocated types and their uses in fields.

- If A derives B, then A is stack allocated iff B is stack allocated.
- Fields to stack allocated types can only appear in stack allocated classes.

BUG=334149
R=ager@chromium.org

Review URL: https://codereview.chromium.org/206123004

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@258346 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoRename finalize to finalizeGarbageCollectedObject and strengthen its tests.
zerny@chromium.org [Thu, 20 Mar 2014 15:11:45 +0000 (15:11 +0000)]
Rename finalize to finalizeGarbageCollectedObject and strengthen its tests.

We now require that:
- Classes with a finalize dispatch have no vtable.
- Classes with a finalize dispatch define a trace dispatch.
- Classes with a finalize dispatch have a finalized GC base.
- Finalized classes with a trace dispatch define a finalize dispatch.

BUG=352755
R=ager@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/206263006

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@258307 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoCheck consistency of manual trace and finalization dispatching.
zerny@chromium.org [Tue, 18 Mar 2014 19:09:42 +0000 (19:09 +0000)]
Check consistency of manual trace and finalization dispatching.

This adds checks that overridden trace methods are always virtual and that manual implementations are always on non-virtual/polymorphic classes.
At each subclass definition of a class implementing manual trace/finalize dispatching, the plugin checks for a dispatch to the subclass if possible.

BUG=334149
R=ager@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/197863003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@257710 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoRevert 257618 "roll clang 198389:202554"
thakis@chromium.org [Tue, 18 Mar 2014 11:57:13 +0000 (11:57 +0000)]
Revert 257618 "roll clang 198389:202554"

A bunch of mac builder bots are still on 10.6 (http://crbug.com/353529)

> roll clang 198389:202554
>
> This change contains several big changes, many of the caused by upstream
> llvm enabling c++11 in their codebase and thus having higher minimum
> requirements for their toolchain and runtime environment:
>
> * clang on OS X now requires libc++, which means it'll only run on OS X 10.7+,
>   so change the deployment target from 10.5 to 10.7 (we were planning on
>   requiring 10.8 or 10.9, see bug 335325, but since several people are waiting
>   on a new clang, let's go to 10.7 only for now and do more as a follow-up)
> * On OS X, the compiler is only usable with libc++ if libc++ is checked out
>   and `make install` is run, so do that for the phase 1 compiler.
>   (Chrome doesn't use libc++ yet, so we don't do that for the bootstrapped
>   compiler.)
> * clang on linux now needs libstdc++ 4.7+ which isn't present on precise.
>   So we now include a newer libstdc++ in the compiler bundle (meaning
>   this clang should still run on precise).
> * clang is broken for android at r202554. To unblock oilpan, merge three
>   later changes into this roll, llvm r202793, r203601, and r203635
>
> Regular, less tricky clang roll stuff:
> * Disable the new warning -Wabsolute-value for now (crbug.com/351479
>   for turning it on)
> * Disable -Wno-tautological-pointer-compare for libxml where it now
>   fires.
> * Since this bundles a new version of the oilpan plugin, bump its suffix to _3
> * Change plugin code to track upstream api change
> * Remove plugin flag check-url-directory as that's now always on
>
> Due to the c++11 stuff, it's likely that this change will get reverted a few times.
>
> BUG=351479, 287029,341352,333968,335325
> TBR=hans@chromium.org
>
> Review URL: https://codereview.chromium.org/195623002

TBR=thakis@chromium.org

Review URL: https://codereview.chromium.org/203313004

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@257620 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 weeks agoroll clang 198389:202554
thakis@chromium.org [Tue, 18 Mar 2014 10:53:25 +0000 (10:53 +0000)]
roll clang 198389:202554

This change contains several big changes, many of the caused by upstream
llvm enabling c++11 in their codebase and thus having higher minimum
requirements for their toolchain and runtime environment:

* clang on OS X now requires libc++, which means it'll only run on OS X 10.7+,
  so change the deployment target from 10.5 to 10.7 (we were planning on
  requiring 10.8 or 10.9, see bug 335325, but since several people are waiting
  on a new clang, let's go to 10.7 only for now and do more as a follow-up)
* On OS X, the compiler is only usable with libc++ if libc++ is checked out
  and `make install` is run, so do that for the phase 1 compiler.
  (Chrome doesn't use libc++ yet, so we don't do that for the bootstrapped
  compiler.)
* clang on linux now needs libstdc++ 4.7+ which isn't present on precise.
  So we now include a newer libstdc++ in the compiler bundle (meaning
  this clang should still run on precise).
* clang is broken for android at r202554. To unblock oilpan, merge three
  later changes into this roll, llvm r202793, r203601, and r203635

Regular, less tricky clang roll stuff:
* Disable the new warning -Wabsolute-value for now (crbug.com/351479
  for turning it on)
* Disable -Wno-tautological-pointer-compare for libxml where it now
  fires.
* Since this bundles a new version of the oilpan plugin, bump its suffix to _3
* Change plugin code to track upstream api change
* Remove plugin flag check-url-directory as that's now always on

Due to the c++11 stuff, it's likely that this change will get reverted a few times.

BUG=351479, 287029,341352,333968,335325
TBR=hans@chromium.org

Review URL: https://codereview.chromium.org/195623002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@257618 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoRename NO_TRACE_CHECKING to GC_PLUGIN_IGNORE and add support for annotating classes...
zerny@chromium.org [Fri, 14 Mar 2014 21:18:10 +0000 (21:18 +0000)]
Rename NO_TRACE_CHECKING to GC_PLUGIN_IGNORE and add support for annotating classes as ignored.

BUG=334149
R=ager@chromium.org

Review URL: https://codereview.chromium.org/196023018

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@257202 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoRelax the check on access to GC managed fields in destructors.
zerny@chromium.org [Fri, 14 Mar 2014 14:38:52 +0000 (14:38 +0000)]
Relax the check on access to GC managed fields in destructors.

We would like to allow safe usage, such as checking that a Member contains null in an assert. With this CL, we disallow the use of the -> and [] operators on fields and also disallow fields to occur as arguments to calls.

BUG=334149
R=ager@chromium.org

Review URL: https://codereview.chromium.org/200033002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@257098 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoCheck that classes with non-trivial destructors have finalization support.
zerny@chromium.org [Fri, 14 Mar 2014 10:45:14 +0000 (10:45 +0000)]
Check that classes with non-trivial destructors have finalization support.

Uses clang's notion of when a class has a 'trivial destructor' to determine when garbage-collected types need finalization.

BUG=334149
NOTRY=true

Review URL: https://codereview.chromium.org/192933002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@257072 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoOnly require tracing of immediate bases if they inherit a non-pure trace method.
zerny@chromium.org [Tue, 11 Mar 2014 15:03:25 +0000 (15:03 +0000)]
Only require tracing of immediate bases if they inherit a non-pure trace method.

This change also checks the formal parameter type is Visitor when identifying tracing methods.

R=ager@chromium.org
BUG=334149
NOTRY=true

Review URL: https://codereview.chromium.org/190543011

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@256229 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 weeks agoRemove check_url_directory flag from clang plugin.
tfarina@chromium.org [Tue, 11 Mar 2014 11:07:38 +0000 (11:07 +0000)]
Remove check_url_directory flag from clang plugin.

This is now always on.

BUG=287029
TEST=url_unittets builds under clang plugin without warnings/errors.
R=thakis@chromium.org

Review URL: https://codereview.chromium.org/185543003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@256191 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoCheck some finalization properties.
zerny@chromium.org [Wed, 5 Mar 2014 18:59:31 +0000 (18:59 +0000)]
Check some finalization properties.

  - Classes that have a user-declared destructor must inherit from a finalized GC base.
  - Destructors in GC derived class must not access GC managed fields.

BUG=334149
R=ager@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/187483004

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@255109 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoUpdate oilpan plugin, now includes plugin code as of r255054.
thakis@chromium.org [Wed, 5 Mar 2014 18:45:46 +0000 (18:45 +0000)]
Update oilpan plugin, now includes plugin code as of r255054.

As described on https://code.google.com/p/chromium/wiki/UpdatingClang ,
lower part.

We replaced the existing clang-198389.tgz package on googlestorage
with a new one that's identical to the old one (same compiler binary) except
that there's now a libBlinkPlugin_2.so in the package too. That so isn't used
yet, so this shouldn't have a behavior change (except that it'll cause runhooks
to update everyone's clang packages to the one including the plugin.)

BUG=334149
R=zerny@chromium.org

Review URL: https://codereview.chromium.org/185943005

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@255100 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoAdd GarbageCollectedMixin as a GC base.
zerny@chromium.org [Wed, 5 Mar 2014 10:19:59 +0000 (10:19 +0000)]
Add GarbageCollectedMixin as a GC base.

BUG=334149
R=ager@chromium.org, vegorov@chromium.org, thakis@chromium.org

Review URL: https://codereview.chromium.org/177653011

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@254998 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoCheck correct smart-pointer usage.
zerny@chromium.org [Wed, 5 Mar 2014 01:32:36 +0000 (01:32 +0000)]
Check correct smart-pointer usage.

 * Check that OwnPtr, RefPtr and raw-pointer fields don't point to GC derived types.
 * Inside GC derived class, check that fields don't define GC roots.

BUG=334149
R=ager@chromium.org, vegorov@chromium.org, thakis@chromium.org

Review URL: https://codereview.chromium.org/184103014

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@254902 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoAdded edge hierarchy describing the pointer structure of record fields.
zerny@chromium.org [Tue, 4 Mar 2014 08:52:05 +0000 (08:52 +0000)]
Added edge hierarchy describing the pointer structure of record fields.

BUG=334149

Review URL: https://codereview.chromium.org/178663009

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@254736 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 weeks agoTurn on clang plugin checks for //url directory.
tfarina@chromium.org [Mon, 3 Mar 2014 14:51:09 +0000 (14:51 +0000)]
Turn on clang plugin checks for //url directory.

Once this sticks, the check can be removed entirely.

BUG=287029
R=thakis@chromium.org

Review URL: https://codereview.chromium.org/183763018

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@254463 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks agoMake TracingStatus an immutable value.
zerny@chromium.org [Fri, 28 Feb 2014 15:39:36 +0000 (15:39 +0000)]
Make TracingStatus an immutable value.

This change also removes weakness related code which will be implemented differently in a subsequent CL.

BUG=334149
R=ager@chromium.org

Review URL: https://codereview.chromium.org/182313006

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@254131 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks agoCleanup Blink GC config and add support for persistent heap collections.
zerny@chromium.org [Thu, 27 Feb 2014 17:18:21 +0000 (17:18 +0000)]
Cleanup Blink GC config and add support for persistent heap collections.

BUG=334149
R=ager@chromium.org

Review URL: https://codereview.chromium.org/182703002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@253850 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks agoCheck tracing of fields and base classes in trace-method bodies.
zerny@chromium.org [Wed, 26 Feb 2014 19:49:53 +0000 (19:49 +0000)]
Check tracing of fields and base classes in trace-method bodies.

Errors are described at:
http://www.chromium.org/developers/blink-gc-plugin-errors

BUG=334149
R=thakis@chromium.org, ager@chromium.org

Review URL: https://codereview.chromium.org/179873005

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@253562 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks agoRequire trace methods on structures with fields that need tracing.
zerny@chromium.org [Wed, 26 Feb 2014 07:27:00 +0000 (07:27 +0000)]
Require trace methods on structures with fields that need tracing.

This CL checks that trace methods are declared based on the class/struct fields.
Errors are described at:
http://www.chromium.org/developers/blink-gc-plugin-errors

To avoid erroneous checks, the STACK_ALLOCATED macro can be used to
mark a structure as only allocated on the stack, and the
NO_TRACE_CHECKING macro can be used to ignore a field for the
purpose of trace checking.

BUG=334149
R=haraken@chromium.org, thakis@chromium.org, vegorov@chromium.org, wibling@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/163603002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@253389 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks agoClang-on-Windows update script: track HEAD
hans@chromium.org [Tue, 25 Feb 2014 18:14:41 +0000 (18:14 +0000)]
Clang-on-Windows update script: track HEAD

During this phase we want to use the latest and greatest Clang,
and get notified about build regressions as soon as possible.

BUG=82385
R=rnk@chromium.org

Review URL: https://codereview.chromium.org/177533015

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@253202 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks agoRoll Clang on Windows to r202097
hans@chromium.org [Tue, 25 Feb 2014 01:10:55 +0000 (01:10 +0000)]
Roll Clang on Windows to r202097

This picks up the fix for aggregate return values from functions that
take inalloca arguments.

BUG=none
TBR=rnk@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/179193002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@253047 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks agoRoll Clang on Windows 201860:202050
hans@chromium.org [Mon, 24 Feb 2014 19:11:10 +0000 (19:11 +0000)]
Roll Clang on Windows 201860:202050

This picks up Warren's CGRecordLayoutBuilder rewrite.

BUG=none
TBR=rnk@chromium.org

Review URL: https://codereview.chromium.org/178343003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@252959 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 weeks agoClang-on-Windows update script: fix regex
hans@chromium.org [Mon, 24 Feb 2014 17:43:29 +0000 (17:43 +0000)]
Clang-on-Windows update script: fix regex

Need to check word boundaries. syzyasan=1 should not match the asan=1 check,
for example.

BUG=82385
TBR=thakis@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/178233002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@252938 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

8 weeks agoStart landing build support for Clang-style ASan on Windows
hans@chromium.org [Sat, 22 Feb 2014 00:27:11 +0000 (00:27 +0000)]
Start landing build support for Clang-style ASan on Windows

If this breaks your SyzyASan build, make sure you're passing syzyasan=1
in GYP_DEFINES instead of asan=1. I have updated all affected buildbots
I know about.

BUG=82385
R=thakis@chromium.org, timurrrr@chromium.org

Review URL: https://codereview.chromium.org/137823014

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@252707 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

8 weeks agoRoll Clang for Windows 201742:201859
hans@chromium.org [Fri, 21 Feb 2014 18:43:20 +0000 (18:43 +0000)]
Roll Clang for Windows 201742:201859

BUG=none
TBR=rnk@chromium.org

Review URL: https://codereview.chromium.org/167953004

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@252603 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

8 weeks agoChanges to the Clang packaging script:
glider@chromium.org [Fri, 21 Feb 2014 15:33:03 +0000 (15:33 +0000)]
Changes to the Clang packaging script:
 - package the iOS simulator ASan runtime and set the correct LC_ID_DYLIB for it
 - declare gcc_toolchain to fix the "unbound variable" errors

BUG=170629,344836
R=thakis@chromium.org

Review URL: https://codereview.chromium.org/170873008

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@252561 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

8 weeks agoAdd revision suffix to plugin shared library and allow updating the plugin independen...
zerny@chromium.org [Fri, 21 Feb 2014 15:25:03 +0000 (15:25 +0000)]
Add revision suffix to plugin shared library and allow updating the plugin independently of clang.

Added repackage.sh script to download and update the current clang package with a new plugin revision.

BUG=334151

Review URL: https://codereview.chromium.org/166703002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@252558 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

8 weeks agoRoll Clang on Windows to r201742 to fix more net_unittests etc.
hans@chromium.org [Thu, 20 Feb 2014 00:07:44 +0000 (00:07 +0000)]
Roll Clang on Windows to r201742 to fix more net_unittests etc.

BUG=none
TBR=rnk@chromium.org

Review URL: https://codereview.chromium.org/171423010

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@252132 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

8 weeks agoRoll clang on Windows to r201612 for vdtor fix
rnk@chromium.org [Wed, 19 Feb 2014 02:55:56 +0000 (02:55 +0000)]
Roll clang on Windows to r201612 for vdtor fix

TBR=hans@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/171643002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@251940 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

8 weeks agoAdd a check to the FindBadConstructs.cpp clang plugin for bad enum last values.
tsepez@chromium.org [Wed, 19 Feb 2014 00:20:19 +0000 (00:20 +0000)]
Add a check to the FindBadConstructs.cpp clang plugin for bad enum last values.

One common coding patern is to define an enum as in:
  enum Color { RED, GREEN, BLUE, COLOR_LAST=BLUE };
but this is fragile when someone adds a new constant and forgets
to update the COLOR_LAST constant.

This change looks for enums that have a xxx_LAST or xxxLast member,
and warns if there are any higher-valued constants present.

Review URL: https://codereview.chromium.org/150943005

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@251894 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

8 weeks agoUpdate Windows Clang version to r201604
hans@chromium.org [Tue, 18 Feb 2014 22:12:47 +0000 (22:12 +0000)]
Update Windows Clang version to r201604

BUG=none
NOTRY=true
TBR=rnk

Review URL: https://codereview.chromium.org/171363002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@251854 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 months agoWrappers to collect declaration information for the Blink GC clang plugin.
zerny@chromium.org [Wed, 12 Feb 2014 18:48:08 +0000 (18:48 +0000)]
Wrappers to collect declaration information for the Blink GC clang plugin.

R=thakis@chromium.org, vegorov@chromium.org
BUG=334149

Review URL: https://codereview.chromium.org/160393002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@250762 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 months agoClang update script: nuke .obj files, not .o.d files.
hans@chromium.org [Wed, 12 Feb 2014 00:17:07 +0000 (00:17 +0000)]
Clang update script: nuke .obj files, not .o.d files.

On Windows, we want to nuke .obj files when clobbering the build.
We don't generate .o.d files anymore, so don't try to delete those.

BUG=82385
NOTRY=true
TBR=thakis

Review URL: https://codereview.chromium.org/150203013

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@250567 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 months agoClang update script: look for CMake in standard dir
hans@chromium.org [Tue, 11 Feb 2014 19:17:00 +0000 (19:17 +0000)]
Clang update script: look for CMake in standard dir

This allows the script to find it even if it's not on PATH.

BUG=82385
NOTRY=true
TBR=rnk

Review URL: https://codereview.chromium.org/159983002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@250466 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 months agoClang update script: use GYP's mechanism for finding MSVS
hans@chromium.org [Tue, 11 Feb 2014 19:04:06 +0000 (19:04 +0000)]
Clang update script: use GYP's mechanism for finding MSVS

Developers and buildbots don't generally have Visual Studio on PATH. Use
the mechanism from GYP to find it when building Clang.

BUG=82385
NOTRY=true
TBR=rnk

Review URL: https://codereview.chromium.org/159923003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@250462 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 months agoFix update.py crash when GYP_DEFINES isn't present in the environment.
grt@chromium.org [Tue, 11 Feb 2014 17:42:54 +0000 (17:42 +0000)]
Fix update.py crash when GYP_DEFINES isn't present in the environment.

BUG=none
R=hans@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/158323004

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@250442 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 months agoAdd configuration code for the GC types and transition types.
zerny@chromium.org [Tue, 11 Feb 2014 14:36:20 +0000 (14:36 +0000)]
Add configuration code for the GC types and transition types.

The interpretation of transition types is governed by the plugin flag: oilpan-enabled.
This change also adds blink_gc_plugin to the default chrome tools in update.sh.

BUG=334149

Review URL: https://codereview.chromium.org/156243006

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@250403 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 months agoClang update script: start working on the Python version
hans@chromium.org [Tue, 11 Feb 2014 05:06:02 +0000 (05:06 +0000)]
Clang update script: start working on the Python version

We currently fall back to update.sh for non-Windows, but eventually
we want the python version to be used on all platforms.

BUG=82385

Review URL: https://codereview.chromium.org/145733003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@250356 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 months agoAdd FreeBSD as a supported platform.
r.c.ladan@gmail.com [Fri, 31 Jan 2014 00:39:40 +0000 (00:39 +0000)]
Add FreeBSD as a supported platform.

FreeBSD calls GNU make 'gmake', so use a variable to call 'make' instead
of hardcoding the name.

TEST= run 'tools/clang/scripts/update.sh --force-local-build
--without-android' on a FreeBSD system.

Maybe let the script exclude android on FreeBSD as is done for Darwin?

BUG=

Review URL: https://codereview.chromium.org/148963004

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@248089 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 months agoClang plugin: fix TypeHasNonTrivialDtor
b.kelemen@samsung.com [Sat, 25 Jan 2014 07:21:32 +0000 (07:21 +0000)]
Clang plugin: fix TypeHasNonTrivialDtor

It was telling the opposite.

Review URL: https://codereview.chromium.org/132463005

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@247085 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 months agoClang roll script: fix the fix
hans@chromium.org [Wed, 22 Jan 2014 17:32:36 +0000 (17:32 +0000)]
Clang roll script: fix the fix

BUG=none
TBR=thakis

Review URL: https://codereview.chromium.org/140323013

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@246355 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 months agoClang roll script: fix error when GYP_DEFINES isn't defined
hans@chromium.org [Wed, 22 Jan 2014 17:27:50 +0000 (17:27 +0000)]
Clang roll script: fix error when GYP_DEFINES isn't defined

This should fix the Android WebView AOSP bot which was failing with:

src/tools/clang/scripts/update.sh: line 113: GYP_DEFINES: unbound variable

BUG=none
TBR=thakis

Review URL: https://codereview.chromium.org/145083002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@246353 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 months agoClang roll script: support building with non-default GCC and bundle libstdc++.so
hans@chromium.org [Wed, 22 Jan 2014 16:56:08 +0000 (16:56 +0000)]
Clang roll script: support building with non-default GCC and bundle libstdc++.so

After Clang started using C++11, we can no longer build it with GCC 4.6, which
is the default version on our buildbots and most workstations. This patch adds
the --gcc-toolchain command-line flag which will make us bootstrap clang using
that specific toolchain, and also bundle that GCC's libstdc++.so.

BUG=333968
NOTRY=true

Review URL: https://codereview.chromium.org/132233035

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@246340 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

2 months agoStub clang plugin to check consistency of the Blink GC infrastructure.
zerny@chromium.org [Mon, 20 Jan 2014 10:55:58 +0000 (10:55 +0000)]
Stub clang plugin to check consistency of the Blink GC infrastructure.

R=ager@chromium.org, thakis@chromium.org
BUG=334149

Review URL: https://codereview.chromium.org/133463002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@245897 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 months agoLet MSan and LSan bots download Clang despite of the --mac-only flag.
glider@chromium.org [Tue, 14 Jan 2014 14:51:35 +0000 (14:51 +0000)]
Let MSan and LSan bots download Clang despite of the --mac-only flag.

BUG=178409
TBR=thakis@chromium.org

Review URL: https://codereview.chromium.org/134833003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@244707 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 months agoRoll Clang 193323:198389
hans@chromium.org [Mon, 13 Jan 2014 18:34:22 +0000 (18:34 +0000)]
Roll Clang 193323:198389

BUG=323668

Review URL: https://codereview.chromium.org/132203010

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@244540 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

3 months agoRevert 164972 "Add WebTestRunner namespace to the list of "bad n..."
jochen@chromium.org [Fri, 3 Jan 2014 15:18:29 +0000 (15:18 +0000)]
Revert 164972 "Add WebTestRunner namespace to the list of "bad n..."

> Add WebTestRunner namespace to the list of "bad namespaces" so we don't warn about not putting OVERRIDE on virtual methods.
>
> The WebTestRunner namespace is similar to the WebKit namespace in that its classes change often and are upstream in WebKit
>
> Review URL: https://codereview.chromium.org/11339049

TBR=erg@chromium.org
BUG=331342

Review URL: https://codereview.chromium.org/123903002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@242886 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

4 months agoAdd UBSan Linux runtime to the packaged Clang build.
glider@chromium.org [Tue, 10 Dec 2013 09:47:36 +0000 (09:47 +0000)]
Add UBSan Linux runtime to the packaged Clang build.

BUG=174801
R=pbos@chromium.org, thakis@chromium.org

Review URL: https://codereview.chromium.org/108083003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@239745 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 months agoRoll Clang 192869:193323
hans@chromium.org [Wed, 6 Nov 2013 23:44:03 +0000 (23:44 +0000)]
Roll Clang 192869:193323

BUG=313468, 313823

Review URL: https://codereview.chromium.org/49983003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@233418 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 months agoRevert 232260 "Roll Clang 192869:193323"
thakis@chromium.org [Fri, 1 Nov 2013 16:30:34 +0000 (16:30 +0000)]
Revert 232260 "Roll Clang 192869:193323"

Temporary, until http://crbug.com/314109 is resolved.

> Roll Clang 192869:193323
>
> BUG=313468, 313823
>
> Review URL: https://codereview.chromium.org/49983003

TBR=hans@chromium.org

Review URL: https://codereview.chromium.org/55773004

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@232409 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 months agoRoll Clang 192869:193323
hans@chromium.org [Fri, 1 Nov 2013 01:11:35 +0000 (01:11 +0000)]
Roll Clang 192869:193323

BUG=313468, 313823

Review URL: https://codereview.chromium.org/49983003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@232260 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

5 months agoRoll Clang 192635:192869.
hans@chromium.org [Tue, 22 Oct 2013 18:07:03 +0000 (18:07 +0000)]
Roll Clang 192635:192869.

BUG=309830

Review URL: https://codereview.chromium.org/33853002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@230162 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 months agoRoll Clang 191856:192635.
hans@chromium.org [Wed, 16 Oct 2013 05:59:10 +0000 (05:59 +0000)]
Roll Clang 191856:192635.

BUG=307339

Review URL: https://codereview.chromium.org/26789005

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@228875 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 months agoRevert 227219 "Revert 226920 "Roll Clang 188423:191856.""
thakis@chromium.org [Sat, 12 Oct 2013 06:02:42 +0000 (06:02 +0000)]
Revert 227219 "Revert 226920 "Roll Clang 188423:191856.""

This relands the clang roll from r226920. The symbol issue
(http://crbug.com/304846) should be fixed by now, on the crash server side.

> Revert 226920 "Roll Clang 188423:191856."
>
> Possibly broke crash symbolication on mac.
>
> > Roll Clang 188423:191856.
> >
> > Remove libprofile_rt from package.sh, it doesn't exist after LLVM r191835
> >
> > BUG=290204,303886
> > R=thakis@chromium.org
> > TBR=net owner
> > NOTRY=true
> >
> > Review URL: https://codereview.chromium.org/25875004
>
> TBR=thakis@chromium.org
>
> Review URL: https://codereview.chromium.org/26145004

TBR=thakis@chromium.org

Review URL: https://codereview.chromium.org/27092002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@228318 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 months agoClang update script: simplify code for file clobbering
hans@chromium.org [Thu, 10 Oct 2013 01:02:43 +0000 (01:02 +0000)]
Clang update script: simplify code for file clobbering

This makes the code a lot simpler.

BUG=none

Review URL: https://codereview.chromium.org/26736002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@227848 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 months agoclang update script: clobber .dylibs
hans@chromium.org [Tue, 8 Oct 2013 18:09:38 +0000 (18:09 +0000)]
clang update script: clobber .dylibs

For Mac/ASan builds, a .dylib file containing ASan runtime functions is
copied into the build directory from LLVM. To make sure that the .dylib
file is updated when Clang is updated, we clobber all .dylib files in
the build directory, similarly to how we clobber .o files.

BUG=304125

Review URL: https://codereview.chromium.org/26424002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@227545 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 months agoAdd Clang plugin check for WeakPtrFactory member order
dmichael@chromium.org [Tue, 8 Oct 2013 16:47:18 +0000 (16:47 +0000)]
Add Clang plugin check for WeakPtrFactory member order

Also consolidates some of the FindBadConstruct options in to a small struct for readability.

The WeakPtrFactory member order is behind a flag, because
there are many violations in Chromium right now. Also, there
might need to be exceptions in the checker. For example,
we might want to allow more than one WeakPtrFactory to refer
to the outer class, as long as all such factories appear
after all other members. That's TBD.

BUG=303818
R=erg@chromium.org

Review URL: https://codereview.chromium.org/26303002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@227528 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 months agoRevert 226920 "Roll Clang 188423:191856."
thakis@chromium.org [Sun, 6 Oct 2013 02:38:04 +0000 (02:38 +0000)]
Revert 226920 "Roll Clang 188423:191856."

Possibly broke crash symbolication on mac.

> Roll Clang 188423:191856.
>
> Remove libprofile_rt from package.sh, it doesn't exist after LLVM r191835
>
> BUG=290204,303886
> R=thakis@chromium.org
> TBR=net owner
> NOTRY=true
>
> Review URL: https://codereview.chromium.org/25875004

TBR=thakis@chromium.org

Review URL: https://codereview.chromium.org/26145004

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@227219 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 months agoRevert 226978 "Revert 226920 "Roll Clang 188423:191856.""
jochen@chromium.org [Fri, 4 Oct 2013 12:54:37 +0000 (12:54 +0000)]
Revert 226978 "Revert 226920 "Roll Clang 188423:191856.""

> Revert 226920 "Roll Clang 188423:191856."
>
> I suspect this caused a 25% sizes regression on Mac: http://build.chromium.org/f/chromium/perf/mac-release/sizes/report.html?history=150&rev=-1&graph=Chromium.app
>
> > Roll Clang 188423:191856.
> >
> > Remove libprofile_rt from package.sh, it doesn't exist after LLVM r191835
> >
> > BUG=290204,303886
> > R=thakis@chromium.org
> > TBR=net owner
> > NOTRY=true
> >
> > Review URL: https://codereview.chromium.org/25875004
>
> TBR=thakis@chromium.org
>
> Review URL: https://codereview.chromium.org/25988002

TBR=jochen@chromium.org

Review URL: https://codereview.chromium.org/25999003

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@226994 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 months agoRevert 226920 "Roll Clang 188423:191856."
jochen@chromium.org [Fri, 4 Oct 2013 09:10:30 +0000 (09:10 +0000)]
Revert 226920 "Roll Clang 188423:191856."

I suspect this caused a 25% sizes regression on Mac: http://build.chromium.org/f/chromium/perf/mac-release/sizes/report.html?history=150&rev=-1&graph=Chromium.app

> Roll Clang 188423:191856.
>
> Remove libprofile_rt from package.sh, it doesn't exist after LLVM r191835
>
> BUG=290204,303886
> R=thakis@chromium.org
> TBR=net owner
> NOTRY=true
>
> Review URL: https://codereview.chromium.org/25875004

TBR=thakis@chromium.org

Review URL: https://codereview.chromium.org/25988002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@226978 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 months agoRoll Clang 188423:191856.
thakis@chromium.org [Fri, 4 Oct 2013 01:11:37 +0000 (01:11 +0000)]
Roll Clang 188423:191856.

Remove libprofile_rt from package.sh, it doesn't exist after LLVM r191835

BUG=290204,303886
R=thakis@chromium.org
TBR=net owner
NOTRY=true

Review URL: https://codereview.chromium.org/25875004

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@226920 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 months agoAdd more support for FreeBSD
Geo.Liaskos@gmail.com [Sat, 21 Sep 2013 03:47:44 +0000 (03:47 +0000)]
Add more support for FreeBSD

BUG=

Review URL: https://chromiumcodereview.appspot.com/16206002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@224546 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

6 months agoTeach Clang plugin about blink namespace
abarth@chromium.org [Fri, 20 Sep 2013 00:28:04 +0000 (00:28 +0000)]
Teach Clang plugin about blink namespace

We're in the process of renaming the WebKit namespace to blink. The Clang
plugin has special logic for the WebKit namespace, so we need to teach it about
the new name.

R=thakis
BUG=295096

Review URL: https://chromiumcodereview.appspot.com/24020005

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@224255 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 months agoRevert 220466 "Revert 219657 "Roll Clang r186332:r188423.""
vitalybuka@chromium.org [Fri, 30 Aug 2013 01:21:36 +0000 (01:21 +0000)]
Revert 220466 "Revert 219657 "Roll Clang r186332:r188423.""

> Revert 219657 "Roll Clang r186332:r188423."
>
> BUG=266815
>
> > Roll Clang r186332:r188423.
> >
> > BUG=none
> >
> > Review URL: https://chromiumcodereview.appspot.com/23172018
>
> TBR=hans@chromium.org
>
> Review URL: https://codereview.chromium.org/23801002

TBR=vitalybuka@chromium.org

Review URL: https://codereview.chromium.org/23559013

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@220469 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 months agoRevert 219657 "Roll Clang r186332:r188423."
vitalybuka@chromium.org [Fri, 30 Aug 2013 01:18:54 +0000 (01:18 +0000)]
Revert 219657 "Roll Clang r186332:r188423."

BUG=266815

> Roll Clang r186332:r188423.
>
> BUG=none
>
> Review URL: https://chromiumcodereview.appspot.com/23172018

TBR=hans@chromium.org

Review URL: https://codereview.chromium.org/23801002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@220466 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 months agoInclude libclang_rt.profile in Clang packaging
mcgrathr@chromium.org [Tue, 27 Aug 2013 23:37:23 +0000 (23:37 +0000)]
Include libclang_rt.profile in Clang packaging

The --coverage switch to Clang requires the libclang_rt.profile
runtime libraries.  The Mac native_client coverage bot uses this.

BUG= none
TEST= run locally on linux and mac
R=thakis@chromium.org

Review URL: https://codereview.chromium.org/23202012

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@219857 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

7 months agoRoll Clang r186332:r188423.
hans@chromium.org [Tue, 27 Aug 2013 01:09:22 +0000 (01:09 +0000)]
Roll Clang r186332:r188423.

BUG=none

Review URL: https://chromiumcodereview.appspot.com/23172018

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@219657 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

8 months agoStop pulling googleurl through DEPS.
tfarina@chromium.org [Mon, 12 Aug 2013 05:01:49 +0000 (05:01 +0000)]
Stop pulling googleurl through DEPS.

This is the final patch in this series of merging the external googleurl repo
into Chromium source code base.

BUG=229660
R=brettw@chromium.org,joth@chromium.org,blundell@chromium.org,thakis@chromium.org,thestig@chromium.org
TBR=brettw

Review URL: https://chromiumcodereview.appspot.com/20349002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@216922 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

8 months agoroll clang 184830:186332
thakis@chromium.org [Mon, 22 Jul 2013 21:46:50 +0000 (21:46 +0000)]
roll clang 184830:186332

* more precise -Wlogical-not-parentheses
* fixes codegen issue encountered by webrtc

BUG=262248
R=hans@chromium.org, mark@chromium.org

Review URL: https://codereview.chromium.org/19871002

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@212975 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

9 months agoclang update script: In bootstrap mode, don't skip building if configure has run...
thakis@chromium.org [Thu, 18 Jul 2013 22:32:56 +0000 (22:32 +0000)]
clang update script: In bootstrap mode, don't skip building if configure has run already.

No real effect in practice since the package.sh script always does full
clobbers, so configure has never run if update.sh is called by that.  Only
changes things for people who do local bootstrap builds without the intent to
upload the generated clang binaries.

BUG=none
R=hans@chromium.org

Review URL: https://codereview.chromium.org/19775005

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@212456 4ff67af0-8c30-449e-8e8b-ad334ec8d88c

9 months agoStrip clang binaries.
thakis@chromium.org [Mon, 8 Jul 2013 23:26:08 +0000 (23:26 +0000)]
Strip clang binaries.

BUG=256342

Review URL: https://chromiumcodereview.appspot.com/18420022

git-svn-id: http://src.chromium.org/svn/trunk/src/tools/clang@210445 4ff67af0-8c30-449e-8e8b-ad334ec8d88c