// Test returning a single element aggregate value containing a double. // RUN: %clang_cc1 -triple i686-linux %s -emit-llvm -o - | FileCheck %s --check-prefix=X86_32 // RUN: %clang_cc1 %s -emit-llvm -o - struct X { double D; }; struct Y { struct X x; }; struct Y bar(); void foo(struct Y *P) { *P = bar(); } struct Y bar() { struct Y a; a.x.D = 0; return a; } // X86_32: define void @foo(%struct.Y* %P) // X86_32: call void @bar(%struct.Y* sret %{{[^),]*}}) // X86_32: define void @bar(%struct.Y* noalias sret %{{[^,)]*}}) // X86_32: ret void