91 lines · cpp
1// RUN: rm -rf %t2 3// PR35939: MicrosoftMangle.cpp triggers an assertion failure on this test.4// UNSUPPORTED: system-windows5 6// RUN: %clang_cc1 \7// RUN: -I %S/Inputs/odr_hash-Friend \8// RUN: -emit-obj -o /dev/null \9// RUN: -fmodules \10// RUN: -fimplicit-module-maps \11// RUN: -fmodules-cache-path=%t/modules.cache \12// RUN: -std=c++11 -x c++ %s -verify -DTEST113 14// RUN: %clang_cc1 \15// RUN: -I %S/Inputs/odr_hash-Friend \16// RUN: -emit-obj -o /dev/null \17// RUN: -fmodules \18// RUN: -fimplicit-module-maps \19// RUN: -fmodules-cache-path=%t/modules.cache \20// RUN: -std=c++11 -x c++ %s -verify -DTEST221 22// RUN: %clang_cc1 \23// RUN: -I %S/Inputs/odr_hash-Friend \24// RUN: -emit-obj -o /dev/null \25// RUN: -fmodules \26// RUN: -fimplicit-module-maps \27// RUN: -fmodules-cache-path=%t/modules.cache \28// RUN: -std=c++11 -x c++ %s -verify -DTEST329 30// RUN: %clang_cc1 \31// RUN: -I %S/Inputs/odr_hash-Friend \32// RUN: -emit-obj -o /dev/null \33// RUN: -fmodules \34// RUN: -fimplicit-module-maps \35// RUN: -fmodules-cache-path=%t/modules.cache \36// RUN: -std=c++11 -x c++ %s -verify -DTEST337 38// RUN: %clang_cc1 \39// RUN: -I %S/Inputs/odr_hash-Friend \40// RUN: -emit-obj -o /dev/null \41// RUN: -fmodules \42// RUN: -fimplicit-module-maps \43// RUN: -fmodules-cache-path=%t/modules.cache \44// RUN: -std=c++11 -x c++ %s -verify -DTEST345 46#if defined(TEST1)47#include "Box.h"48#include "M1.h"49#include "M3.h"50// expected-no-diagnostics51#endif52 53#if defined(TEST2)54#include "Box.h"55#include "M1.h"56#include "M3.h"57#include "Good.h"58// expected-no-diagnostics59#endif60 61#if defined(TEST3)62#include "Good.h"63#include "Box.h"64#include "M1.h"65#include "M3.h"66// expected-no-diagnostics67#endif68 69#if defined(TEST4)70#include "Box.h"71#include "M1.h"72#include "M3.h"73#include "Bad.h"74// expected-error@Bad.h:* {{'Check' has different definitions in different modules; definition in module 'Bad' first difference is function body}}75// expected-note@Box.h:* {{but in 'Box' found a different body}}76#endif77 78#if defined(TEST5)79#include "Bad.h"80#include "Box.h"81#include "M1.h"82#include "M3.h"83// expected-error@Bad.h:* {{'Check' has different definitions in different modules; definition in module 'Bad' first difference is function body}}84// expected-note@Box.h:* {{but in 'Box' found a different body}}85#endif86 87 88void Run() {89 Box<> Present;90}91