1ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// Test that unprofiled files are recognized. Here, we have two functions in the 2ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// profile, main() and function_in_header, but we use the profile on a file that 3ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// has the profile-less some_unprofiled_function so that the only profiled code 4ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// in #included in a header. 5ef8225444452a1486bd721f3285301fe84643b00Stephen Hines 6ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// FIXME: It would be nice to use -verify here instead of FileCheck, but -verify 7ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// doesn't play well with warnings that have no line number. 8ef8225444452a1486bd721f3285301fe84643b00Stephen Hines 9ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// RUN: llvm-profdata merge %S/Inputs/c-unprofiled.proftext -o %t.profdata 10ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// RUN: %clang_cc1 -triple x86_64-apple-macosx10.9 -main-file-name c-unprofiled.c -I %S/Inputs/ %s -o /dev/null -emit-llvm -fprofile-instr-use=%t.profdata -Wprofile-instr-unprofiled 2>&1 | FileCheck %s 11ef8225444452a1486bd721f3285301fe84643b00Stephen Hines 12ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// CHECK: warning: no profile data available for file "c-unprofiled.c" 13ef8225444452a1486bd721f3285301fe84643b00Stephen Hines 14ef8225444452a1486bd721f3285301fe84643b00Stephen Hines#include "profiled_header.h" 15ef8225444452a1486bd721f3285301fe84643b00Stephen Hines 16ef8225444452a1486bd721f3285301fe84643b00Stephen Hines#ifdef GENERATE_OUTDATED_DATA 17ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesint main(int argc, const char *argv[]) { 18ef8225444452a1486bd721f3285301fe84643b00Stephen Hines function_in_header(0); 19ef8225444452a1486bd721f3285301fe84643b00Stephen Hines return 0; 20ef8225444452a1486bd721f3285301fe84643b00Stephen Hines} 21ef8225444452a1486bd721f3285301fe84643b00Stephen Hines#else 22ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesvoid some_unprofiled_function(int i) { 23ef8225444452a1486bd721f3285301fe84643b00Stephen Hines if (i) 24ef8225444452a1486bd721f3285301fe84643b00Stephen Hines function_in_header(i); 25ef8225444452a1486bd721f3285301fe84643b00Stephen Hines} 26ef8225444452a1486bd721f3285301fe84643b00Stephen Hines#endif 27