Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Side by Side Diff: tools/clang/blink_gc_plugin/DiagnosticsReporter.cpp

Issue 2681753002: blink_gc_plugin: report illegal on-heap iterators as warnings/errors. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | tools/clang/blink_gc_plugin/tests/fields_illegal_tracing.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "DiagnosticsReporter.h" 5 #include "DiagnosticsReporter.h"
6 6
7 using namespace clang; 7 using namespace clang;
8 8
9 namespace { 9 namespace {
10 10
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 diag_stack_allocated_derives_gc_ = diagnostic_.getCustomDiagID( 203 diag_stack_allocated_derives_gc_ = diagnostic_.getCustomDiagID(
204 getErrorLevel(), kStackAllocatedDerivesGarbageCollected); 204 getErrorLevel(), kStackAllocatedDerivesGarbageCollected);
205 diag_class_overrides_new_ = 205 diag_class_overrides_new_ =
206 diagnostic_.getCustomDiagID(getErrorLevel(), kClassOverridesNew); 206 diagnostic_.getCustomDiagID(getErrorLevel(), kClassOverridesNew);
207 diag_class_declares_pure_virtual_trace_ = diagnostic_.getCustomDiagID( 207 diag_class_declares_pure_virtual_trace_ = diagnostic_.getCustomDiagID(
208 getErrorLevel(), kClassDeclaresPureVirtualTrace); 208 getErrorLevel(), kClassDeclaresPureVirtualTrace);
209 diag_left_most_base_must_be_polymorphic_ = diagnostic_.getCustomDiagID( 209 diag_left_most_base_must_be_polymorphic_ = diagnostic_.getCustomDiagID(
210 getErrorLevel(), kLeftMostBaseMustBePolymorphic); 210 getErrorLevel(), kLeftMostBaseMustBePolymorphic);
211 diag_base_class_must_declare_virtual_trace_ = diagnostic_.getCustomDiagID( 211 diag_base_class_must_declare_virtual_trace_ = diagnostic_.getCustomDiagID(
212 getErrorLevel(), kBaseClassMustDeclareVirtualTrace); 212 getErrorLevel(), kBaseClassMustDeclareVirtualTrace);
213 diag_iterator_to_gc_managed_collection_note_ = diagnostic_.getCustomDiagID(
214 getErrorLevel(), kIteratorToGCManagedCollectionNote);
213 215
214 // Register note messages. 216 // Register note messages.
215 diag_base_requires_tracing_note_ = diagnostic_.getCustomDiagID( 217 diag_base_requires_tracing_note_ = diagnostic_.getCustomDiagID(
216 DiagnosticsEngine::Note, kBaseRequiresTracingNote); 218 DiagnosticsEngine::Note, kBaseRequiresTracingNote);
217 diag_field_requires_tracing_note_ = diagnostic_.getCustomDiagID( 219 diag_field_requires_tracing_note_ = diagnostic_.getCustomDiagID(
218 DiagnosticsEngine::Note, kFieldRequiresTracingNote); 220 DiagnosticsEngine::Note, kFieldRequiresTracingNote);
219 diag_field_should_not_be_traced_note_ = diagnostic_.getCustomDiagID( 221 diag_field_should_not_be_traced_note_ = diagnostic_.getCustomDiagID(
220 DiagnosticsEngine::Note, kFieldShouldNotBeTracedNote); 222 DiagnosticsEngine::Note, kFieldShouldNotBeTracedNote);
221 diag_raw_ptr_to_gc_managed_class_note_ = diagnostic_.getCustomDiagID( 223 diag_raw_ptr_to_gc_managed_class_note_ = diagnostic_.getCustomDiagID(
222 DiagnosticsEngine::Note, kRawPtrToGCManagedClassNote); 224 DiagnosticsEngine::Note, kRawPtrToGCManagedClassNote);
(...skipping 26 matching lines...) Expand all
249 diag_user_declared_finalizer_note_ = diagnostic_.getCustomDiagID( 251 diag_user_declared_finalizer_note_ = diagnostic_.getCustomDiagID(
250 DiagnosticsEngine::Note, kUserDeclaredFinalizerNote); 252 DiagnosticsEngine::Note, kUserDeclaredFinalizerNote);
251 diag_base_requires_finalization_note_ = diagnostic_.getCustomDiagID( 253 diag_base_requires_finalization_note_ = diagnostic_.getCustomDiagID(
252 DiagnosticsEngine::Note, kBaseRequiresFinalizationNote); 254 DiagnosticsEngine::Note, kBaseRequiresFinalizationNote);
253 diag_field_requires_finalization_note_ = diagnostic_.getCustomDiagID( 255 diag_field_requires_finalization_note_ = diagnostic_.getCustomDiagID(
254 DiagnosticsEngine::Note, kFieldRequiresFinalizationNote); 256 DiagnosticsEngine::Note, kFieldRequiresFinalizationNote);
255 diag_overridden_non_virtual_trace_note_ = diagnostic_.getCustomDiagID( 257 diag_overridden_non_virtual_trace_note_ = diagnostic_.getCustomDiagID(
256 DiagnosticsEngine::Note, kOverriddenNonVirtualTraceNote); 258 DiagnosticsEngine::Note, kOverriddenNonVirtualTraceNote);
257 diag_manual_dispatch_method_note_ = diagnostic_.getCustomDiagID( 259 diag_manual_dispatch_method_note_ = diagnostic_.getCustomDiagID(
258 DiagnosticsEngine::Note, kManualDispatchMethodNote); 260 DiagnosticsEngine::Note, kManualDispatchMethodNote);
259 diag_iterator_to_gc_managed_collection_note_ = diagnostic_.getCustomDiagID(
260 DiagnosticsEngine::Note, kIteratorToGCManagedCollectionNote);
261 } 261 }
262 262
263 bool DiagnosticsReporter::hasErrorOccurred() const 263 bool DiagnosticsReporter::hasErrorOccurred() const
264 { 264 {
265 return diagnostic_.hasErrorOccurred(); 265 return diagnostic_.hasErrorOccurred();
266 } 266 }
267 267
268 DiagnosticsEngine::Level DiagnosticsReporter::getErrorLevel() const { 268 DiagnosticsEngine::Level DiagnosticsReporter::getErrorLevel() const {
269 return diagnostic_.getWarningsAsErrors() ? DiagnosticsEngine::Error 269 return diagnostic_.getWarningsAsErrors() ? DiagnosticsEngine::Error
270 : DiagnosticsEngine::Warning; 270 : DiagnosticsEngine::Warning;
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 void DiagnosticsReporter::NoteField(FieldDecl* field, unsigned note) { 559 void DiagnosticsReporter::NoteField(FieldDecl* field, unsigned note) {
560 ReportDiagnostic(field->getLocStart(), note) << field; 560 ReportDiagnostic(field->getLocStart(), note) << field;
561 } 561 }
562 562
563 void DiagnosticsReporter::NoteOverriddenNonVirtualTrace( 563 void DiagnosticsReporter::NoteOverriddenNonVirtualTrace(
564 CXXMethodDecl* overridden) { 564 CXXMethodDecl* overridden) {
565 ReportDiagnostic(overridden->getLocStart(), 565 ReportDiagnostic(overridden->getLocStart(),
566 diag_overridden_non_virtual_trace_note_) 566 diag_overridden_non_virtual_trace_note_)
567 << overridden; 567 << overridden;
568 } 568 }
OLDNEW
« no previous file with comments | « no previous file | tools/clang/blink_gc_plugin/tests/fields_illegal_tracing.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698