34 lines
1.1 KiB
C++
34 lines
1.1 KiB
C++
// RUN: %clang_cc1 -std=c++20 -Wunsafe-buffer-usage \
|
|
// RUN: -fsafe-buffer-usage-suggestions -verify %s
|
|
|
|
void beginUnclosed(int * x) {
|
|
#pragma clang unsafe_buffer_usage begin
|
|
|
|
#pragma clang unsafe_buffer_usage begin // expected-error{{already inside '#pragma unsafe_buffer_usage'}}
|
|
x++;
|
|
#pragma clang unsafe_buffer_usage end
|
|
}
|
|
|
|
void endUnopened(int *x) {
|
|
#pragma clang unsafe_buffer_usage end // expected-error{{not currently inside '#pragma unsafe_buffer_usage'}}
|
|
|
|
#pragma clang unsafe_buffer_usage begin
|
|
x++;
|
|
#pragma clang unsafe_buffer_usage end
|
|
}
|
|
|
|
void wrongOption() {
|
|
#pragma clang unsafe_buffer_usage start // expected-error{{Expected 'begin' or 'end'}}
|
|
#pragma clang unsafe_buffer_usage close // expected-error{{Expected 'begin' or 'end'}}
|
|
}
|
|
|
|
void unclosed(int * p1) {
|
|
#pragma clang unsafe_buffer_usage begin
|
|
// End of the included file will not raise the unclosed region warning:
|
|
#define _INCLUDE_NO_WARN
|
|
#include "warn-unsafe-buffer-usage-pragma.h"
|
|
#pragma clang unsafe_buffer_usage end
|
|
|
|
// End of this file raises the warning:
|
|
#pragma clang unsafe_buffer_usage begin // expected-error{{'#pragma unsafe_buffer_usage' was not ended}}
|
|
}
|