]> granicus.if.org Git - clang/commit
[OPENMP]Initial fix PR42392: Improve -Wuninitialized warnings for OpenMP programs.
authorAlexey Bataev <a.bataev@hotmail.com>
Thu, 11 Jul 2019 14:54:17 +0000 (14:54 +0000)
committerAlexey Bataev <a.bataev@hotmail.com>
Thu, 11 Jul 2019 14:54:17 +0000 (14:54 +0000)
commit9a620ab4b651305b643dd81923423e513ede9461
treef0024a187f59fd473eb779c43417c0e526e4aefa
parentbc548e7f331856bb324b8ee6e1a22f34004beb58
[OPENMP]Initial fix PR42392: Improve -Wuninitialized warnings for OpenMP programs.

Summary:
Some OpenMP clauses rely on the values of the variables. If the variable
is not initialized and used in OpenMP clauses that depend on the
variables values, it should be reported that the uninitialized variable
is used in the OpenMP clause expression.
This patch adds initial processing for uninitialized variables in OpenMP
constructs. Currently, it checks for use of the uninitialized variables
in the structured blocks.

Reviewers: NoQ, Szelethus, dcoughlin, xazax.hun, a.sidorin, george.karpenkov, szepet

Subscribers: rnkovacs, guansong, jfb, jdoerfert, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64356

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@365786 91177308-0d34-0410-b5e6-96231b3b80d8
41 files changed:
include/clang/AST/OpenMPClause.h
include/clang/AST/StmtOpenMP.h
lib/AST/OpenMPClause.cpp
lib/Analysis/CFG.cpp
lib/Analysis/UninitializedValues.cpp
test/Analysis/cfg-openmp.cpp [new file with mode: 0644]
test/OpenMP/atomic_messages.c
test/OpenMP/critical_messages.cpp
test/OpenMP/distribute_parallel_for_messages.cpp
test/OpenMP/distribute_parallel_for_simd_misc_messages.c
test/OpenMP/distribute_simd_misc_messages.c
test/OpenMP/for_misc_messages.c
test/OpenMP/for_simd_misc_messages.c
test/OpenMP/master_messages.cpp
test/OpenMP/ordered_messages.cpp
test/OpenMP/parallel_for_messages.cpp
test/OpenMP/parallel_for_simd_messages.cpp
test/OpenMP/parallel_messages.cpp
test/OpenMP/parallel_sections_messages.cpp
test/OpenMP/sections_misc_messages.c
test/OpenMP/simd_misc_messages.c
test/OpenMP/single_misc_messages.c
test/OpenMP/target_depend_messages.cpp
test/OpenMP/target_parallel_for_messages.cpp
test/OpenMP/target_parallel_for_simd_messages.cpp
test/OpenMP/target_parallel_messages.cpp
test/OpenMP/target_simd_messages.cpp
test/OpenMP/target_teams_distribute_messages.cpp
test/OpenMP/target_teams_distribute_parallel_for_messages.cpp
test/OpenMP/target_teams_distribute_parallel_for_simd_messages.cpp
test/OpenMP/target_teams_distribute_simd_messages.cpp
test/OpenMP/target_teams_messages.cpp
test/OpenMP/target_update_messages.cpp
test/OpenMP/task_messages.cpp
test/OpenMP/taskgroup_messages.cpp
test/OpenMP/taskloop_misc_messages.c
test/OpenMP/taskloop_simd_misc_messages.c
test/OpenMP/teams_distribute_parallel_for_messages.cpp
test/OpenMP/teams_distribute_parallel_for_simd_messages.cpp
test/OpenMP/teams_distribute_simd_messages.cpp
test/OpenMP/teams_messages.cpp